Skip to content

Instantly share code, notes, and snippets.

@xbb
Last active February 15, 2025 23:37
Show Gist options
  • Save xbb/c3eedebe57607bc91833f1a4018c3676 to your computer and use it in GitHub Desktop.
Save xbb/c3eedebe57607bc91833f1a4018c3676 to your computer and use it in GitHub Desktop.
terminfo termcap update linux freebsd
#!/usr/bin/env sh
set -e
NAMES="xterm,xterm-256color,screen,screen-256color,tmux,tmux-256color,xterm-ghostty,ghostty,Ghostty"
if [ "$(uname -s)" = "FreeBSD" ]; then
curl -o /tmp/termcap.src https://raw.githubusercontent.com/freebsd/freebsd-src/main/share/termcap/termcap
# Add ghostty termcap
cat << 'EOF' >> /tmp/termcap.src
xterm-ghostty|ghostty|Ghostty:\
:am:hs:km:mi:ms:xn:\
:co#80:it#8:li#24:\
:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
:LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\
:ae=\E(B:al=\E[L:as=\E(0:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:\
:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=\r:cs=\E[%i%d;%dr:\
:ct=\E[3g:dc=\E[P:dl=\E[M:do=\n:ds=\E]2;\007:ec=\E[%dX:\
:ei=\E[4l:fs=^G:ho=\E[H:ic=\E[@:im=\E[4h:k1=\EOP:k2=\EOQ:\
:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:\
:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:\
:kd=\EOB:ke=\E[?1l\E>:kh=\EOH:kl=\EOD:kr=\EOC:\
:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[0m:\
:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\r\n:rc=\E8:sc=\E7:se=\E[27m:\
:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E[?1049l:\
:ti=\E[?1049h:ts=\E]2;:ue=\E[24m:up=\E[A:us=\E[4m:\
:vb=\E[?5h\E[?5l:ve=\E[?12l\E[?25h:vi=\E[?25l:\
:vs=\E[?12;25h:
EOF
cap_mkdb -vf /usr/share/misc/termcap /tmp/termcap.src
rm /tmp/termcap.src
else
curl -o /tmp/terminfo.src.gz https://invisible-island.net/datafiles/current/terminfo.src.gz
gunzip /tmp/terminfo.src.gz
tic -sx -e "$NAMES" /tmp/terminfo.src
rm /tmp/terminfo.src
fi
echo Done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment