Author: | Sebastian J. Bronner <[email protected]> |
---|---|
Date: | 2019-10-30 |
URL: | https://aur.archlinux.org/packages/st |
Most Linux-based distributions will have the bulk of their terminfo entries in
the ncurses
package. These live in /usr/share/terminfo
. There you will
find several entries for st
. These, however, do not work well with current
versions of st
. You need the terminfo entries supplied with st
.
Specifically, I have observed the following issues when using the terminfo
entries supplied with ncurses
:
Start
st
.Run
tmux
in thest
window.Run
nvim
intmux
.tmux
will crash immediately with the following message:[lost server] %
Run
w3m
with any URL intmux
.w3m
will not react to any key presses (most notably the arrow keys andq
) and must be terminated withkillall w3m
.- The command line returned where
w3m
was running will show all the missing keypresses.
For reference, I performed these tests using the following software versions:
st
0.8.2, tmux
2.9_a, neovim
0.4.2, and w3m
0.5.3.git20190105-1.
The ncurses
package should stop shipping terminfo entries for st
. These
should then be provided in /usr/share/terminfo
by this (and other) st
packages. The conflicting terminfo entries are
st
andst-256color
.
Additional entries that could be considered for removal from ncurses
are
st-0.6
,st-0.7
,st-16color
,st-direct
,stterm
(for distributions that renamest
tostterm
),stterm-16color
, andstterm-256color
.
This solution cannot be implemented without the cooperation of ncurses
since many distributions (including Arch Linux) do not allow for two packages
that provide files with identical paths to be installed side-by-side.
Therefore, I am bringing this to the attention of the ncurses
team.
A somewhat painful, albeit pragmatic, workaround is as follows: A user that encounters issues that are due to mismatched terminfo entries, such as those above, can symlink the terminfo entries included in this package into her user-level terminfo database using the following commands:
mkdir ~/.terminfo/s
ln -s /usr/share/st/terminfo/s/* ~/.terminfo/s