Conversation
6901e89 to
534391c
Compare
b6a2f46 to
444309f
Compare
I suppose there can be a |
bfdfe56 to
d61484e
Compare
Good point. Thinking about it the only real advantage of a colordepth variable would be the addition of new backends existing plugins don't know about. But I would suspect that any new backend, be it in GUI or some new terminal protocol, would likely support 24 bit colors. So knowing what backend is used would be enough for plugin authors to special case SIXELs. |
|
I've decided to switch to using the libsixel library for the sixel support. Sixel is honestly really complex and has a bunch of edge cases that does not seem right for a text editor to have to implement. Additionally libsixel seems to be very well known and well distributed, and supported on all relevant platforms. This makes maintainance in the future easier |
73df265 to
79572c1
Compare
|
I'm going to put off creating the tests in this PR. I've thought of several solutions, but I think the most suitable one would to literally implement sixel in the builtin terminal (libvterm). Then there could be a The initial sixel support can be very rudimentary, possibly without scrollback support or sixel scrolling (DECSDM). This all sounds a bit overkill for just a test suite, but it looks like a fun challenge for me 😄 |
a6a50c5 to
fb74b04
Compare
|
I have done a big refactor, now pixman is a dependency for the image feature. This is because I need to handle having some parts of the image being under some text (e.g. border). For sixel this is simply a matter of ordering how you draw everything to the screen. However for the kitty graphics protocol and GTK4, images are actual "objects", not just pixels blit to the screen, meaning there has to be a way to figure out what rectangles in an image are visible. Pixman does that, its very fast (SIMD optimized) and well tested, and has no dependencies. Additionally pixman has some image manipulation features that can we possibly expose to the user (e.g. cropping, scaling). Before: recording_2026-09-08_23-14-49.mp4After: recording_2026-09-08_23-15-23.mp4 |
fb5acb6 to
43d0efc
Compare
c34bccd to
792c283
Compare
e89c823 to
df8b39d
Compare
df8b39d to
b41fb44
Compare






Refactor the popup image feature to fix various issues. I've separated the image logic from the popup window logic, which is more maintainable in my opinion. This should also allow for other possible uses of images (graphical icons in the statusbar?)
I plan on this to be fully backwards compatible, except now instead of automatically detecting the image protocol to use (for terminal), to use
imageprotocoloption instead (yet to be implemented), similar tokeyprotocol.Additionally, images can be added with the
image_add()function (to be implemented), which can then be used by multiple popup windows/sources. Images are separated from their placements (visible sources of the image), which decreases memory usage when needing to use the same image multiple times.I plan on adding tests in this PR, TODO how
Sixel (terminal)
GDI (MS-Windows GUI)
Cairo (GTK2/3)
GDK (GTK4)
Kitty (terminal)
Other unrelated bugs I've noticed:
clipwindowdoes not seem to work correctly withnowrapin general