-
Has anyone figured out how to get the kitty terminfo working correctly inside a docker container? If I run kitty on my computer and then launch a docker container, the shell inside the container is broken. I am not able to get the keystrokes to register correctly even if I install the |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 5 replies
-
Just set # Debian 11
CONTAINER_ID=$(docker run -d --rm --init debian:bullseye sleep infinity)
infocmp -a xterm-kitty | docker exec -i "$CONTAINER_ID" tic -x -o /root/.terminfo /dev/stdin
docker exec -it -e TERM="$TERM" "$CONTAINER_ID" bash -il Or you can copy the file from the host into it. # Alpine Linux 3.14
CONTAINER_ID=$(docker run -d --rm --init alpine:3.14 sleep infinity)
docker exec "$CONTAINER_ID" mkdir -p /root/.terminfo/x
find "$TERMINFO" -type f -name "xterm-kitty" -exec docker cp "{}" "$CONTAINER_ID:/root/.terminfo/x" \;
docker exec -it -e TERM="$TERM" "$CONTAINER_ID" sh -il |
Beta Was this translation helpful? Give feedback.
-
Ok so I think I figured out what was happening, here is a diff between my host and docker infocmp: » diff host.txt docker.txt
1c1
< # Reconstructed via infocmp from file: /home/subho/.terminfo/x/xterm-kitty
---
> # Reconstructed via infocmp from file: /usr/share/terminfo/x/xterm-kitty
7c7
< clear=\E[H\E[2J, cnorm=\E[?12h\E[?25h, cr=\r,
---
> clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, cr=\r,
42,45c42,44
< rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM,
< rin=\E[%p1%dT, ritm=\E[23m, rmacs=\E(B, rmam=\E[?7l,
< rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l, rmso=\E[27m,
< rmul=\E[24m, rs1=\E]\E\\\Ec, sc=\E7,
---
> rev=\E[7m, ri=\EM, rin=\E[%p1%dT, ritm=\E[23m, rmacs=\E(B,
> rmam=\E[?7l, rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l,
> rmso=\E[27m, rmul=\E[24m, rs1=\E]\E\\\Ec, sc=\E7,
51,70c50,67
< smul=\E[4m, tbc=\E[3g, tsl=\E]2;, u6=\E[%i%d;%dR, u7=\E[6n,
< u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%i%p1%dd,
< Smulx=\E[4\:%p1%dm, Sync=\EP=%p1%ds\E\\, kDC3=\E[3;3~,
< kDC4=\E[3;4~, kDC5=\E[3;5~, kDC6=\E[3;6~, kDC7=\E[3;7~,
< kDN=\E[1;2B, kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B,
< kDN6=\E[1;6B, kDN7=\E[1;7B, kEND3=\E[1;3F, kEND4=\E[1;4F,
< kEND5=\E[1;5F, kEND6=\E[1;6F, kEND7=\E[1;7F,
< kHOM3=\E[1;3H, kHOM4=\E[1;4H, kHOM5=\E[1;5H,
< kHOM6=\E[1;6H, kHOM7=\E[1;7H, kIC3=\E[2;3~, kIC4=\E[2;4~,
< kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~, kLFT3=\E[1;3D,
< kLFT4=\E[1;4D, kLFT5=\E[1;5D, kLFT6=\E[1;6D,
< kLFT7=\E[1;7D, kNXT3=\E[6;3~, kNXT4=\E[6;4~,
< kNXT5=\E[6;5~, kNXT6=\E[6;6~, kNXT7=\E[6;7~,
< kPRV3=\E[5;3~, kPRV4=\E[5;4~, kPRV5=\E[5;5~,
< kPRV6=\E[5;6~, kPRV7=\E[5;7~, kRIT3=\E[1;3C,
< kRIT4=\E[1;4C, kRIT5=\E[1;5C, kRIT6=\E[1;6C,
< kRIT7=\E[1;7C, kUP=\E[1;2A, kUP3=\E[1;3A, kUP4=\E[1;4A,
< kUP5=\E[1;5A, kUP6=\E[1;6A, kUP7=\E[1;7A, rmxx=\E[29m,
< setrgbb=\E[48\:2\:%p1%d\:%p2%d\:%p3%dm,
< setrgbf=\E[38\:2\:%p1%d\:%p2%d\:%p3%dm, smxx=\E[9m,
---
> smul=\E[4m, tbc=\E[3g, tsl=\E]2;, vpa=\E[%i%p1%dd,
> kDC3=\E[3;3~, kDC4=\E[3;4~, kDC5=\E[3;5~, kDC6=\E[3;6~,
> kDC7=\E[3;7~, kDN=\E[1;2B, kDN3=\E[1;3B, kDN4=\E[1;4B,
> kDN5=\E[1;5B, kDN6=\E[1;6B, kDN7=\E[1;7B, kEND3=\E[1;3F,
> kEND4=\E[1;4F, kEND5=\E[1;5F, kEND6=\E[1;6F,
> kEND7=\E[1;7F, kHOM3=\E[1;3H, kHOM4=\E[1;4H,
> kHOM5=\E[1;5H, kHOM6=\E[1;6H, kHOM7=\E[1;7H,
> kIC3=\E[2;3~, kIC4=\E[2;4~, kIC5=\E[2;5~, kIC6=\E[2;6~,
> kIC7=\E[2;7~, kLFT3=\E[1;3D, kLFT4=\E[1;4D,
> kLFT5=\E[1;5D, kLFT6=\E[1;6D, kLFT7=\E[1;7D,
> kNXT3=\E[6;3~, kNXT4=\E[6;4~, kNXT5=\E[6;5~,
> kNXT6=\E[6;6~, kNXT7=\E[6;7~, kPRV3=\E[5;3~,
> kPRV4=\E[5;4~, kPRV5=\E[5;5~, kPRV6=\E[5;6~,
> kPRV7=\E[5;7~, kRIT3=\E[1;3C, kRIT4=\E[1;4C,
> kRIT5=\E[1;5C, kRIT6=\E[1;6C, kRIT7=\E[1;7C, kUP=\E[1;2A,
> kUP3=\E[1;3A, kUP4=\E[1;4A, kUP5=\E[1;5A, kUP6=\E[1;6A,
> kUP7=\E[1;7A, setrgbb=\E[48\:2\:%p1%d\:%p2%d\:%p3%dm,
> setrgbf=\E[38\:2\:%p1%d\:%p2%d\:%p3%dm, The versions of the terminfo package are different:
Are these terminfo packages meant to be backward compatible across kitty versions? |
Beta Was this translation helpful? Give feedback.
Just set
TERM
and make sure the corresponding terminfo file exists, there is nothing special about it. Maybe you need to check your OS and shell inside the container.Or you can copy the file from the host into it.