Support Kitty graphics via files #8

Closed
opened 2026-03-04 08:40:59 -08:00 by eschnett · 4 comments
eschnett commented 2026-03-04 08:40:59 -08:00 (Migrated from github.com)

Unfortunately, using Kitty graphics via shared memory does not work with WezTerm on macOS (https://github.com/wezterm/wezterm/issues/7631). It does work when using files to transfer the data (I tested this). I believe that using a file is still much faster than inline encoding, and it would be nice to support this as fallback when kitty-shmem is disabled.

Unfortunately, using Kitty graphics via shared memory does not work with WezTerm on macOS (https://github.com/wezterm/wezterm/issues/7631). It does work when using files to transfer the data (I tested this). I believe that using a file is still much faster than inline encoding, and it would be nice to support this as fallback when kitty-shmem is disabled.
eschnett commented 2026-03-04 08:43:12 -08:00 (Migrated from github.com)

For reference I attach a Python (sorry!) script that displays a PNG image using the kitty-file protocol:
kitty3.py.

For reference I attach a Python (sorry!) script that displays a PNG image using the kitty-file protocol: [kitty3.py](https://github.com/user-attachments/files/25746124/kitty3.py).
kahliburke commented 2026-03-04 10:23:53 -08:00 (Migrated from github.com)

@eschnett, I had tried the file based approach and it was so much slower, I'd kind of like your other issue to get resolved instead of this. (https://github.com/wezterm/wezterm/issues/7631). :) But that being said it's probably a small lift to support it.

As an aside, curious about what WezTerm offers that makes it a compelling choice for you?

@eschnett, I had tried the file based approach and it was so much slower, I'd kind of like your other issue to get resolved instead of this. (https://github.com/wezterm/wezterm/issues/7631). :) But that being said it's probably a small lift to support it. As an aside, curious about what WezTerm offers that makes it a compelling choice for you?
eschnett commented 2026-03-04 10:37:35 -08:00 (Migrated from github.com)

WezTerm has a mode where it combines ssh and tmux. I can connect to a remote system and open a terminal there, and it appears as a window on my screen where I can add additional tabs without logging in again. If the connection dies I can reconnect and all shells and all tabs are preserved.

I know how to make most of this work with ssh and tmux, but then opening a new tab in a terminal requires me to reconnect. There are some systems where every new ssh connection requires MFA, and that's tedious. I know about ssh tunnels and control masters etc. in ssh, but that has never worked for me (connections go stale, control masters stop working and need to be restarted manually if something happens on the network). With WezTerm it's just a click to open a new tab.

Before WezTerm I was in iTerm2 land.

Happy about ideas, suggestions, or alternatives!

WezTerm has a mode where it combines ssh and tmux. I can connect to a remote system and open a terminal there, and it appears as a window on my screen where I can add additional tabs without logging in again. If the connection dies I can reconnect and all shells and all tabs are preserved. I know how to make most of this work with ssh and tmux, but then opening a new tab in a terminal requires me to reconnect. There are some systems where every new ssh connection requires MFA, and that's tedious. I know about ssh tunnels and control masters etc. in ssh, but that has never worked for me (connections go stale, control masters stop working and need to be restarted manually if something happens on the network). With WezTerm it's just a click to open a new tab. Before WezTerm I was in iTerm2 land. Happy about ideas, suggestions, or alternatives!
kahliburke commented 2026-03-04 12:57:34 -08:00 (Migrated from github.com)

@eschnett, cool I can see how that would be a nice convenience.

@eschnett, cool I can see how that would be a nice convenience.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kahliburke/Tachikoma.jl#8
No description provided.