Since I use st I ideally want to have my
TERM environment variable set correctly as
st-256color and not have to lie that it’s
xterm-color (even if that is the easiest option). St comes with easy to follow instructions for setting terminfo:
tic -s st.info
On linux this works as intended and creates a
~/.terminfo directory if it doesn’t already exist and creates the necessary entries under that. On NetBSD this “works”, but doesn’t actually do what you’d hoped: it just creates a
st.info.cdb file in the same directory. This is because NetBSD uses some form of a constant database format as opposed to Linux’s directory approach. I have absolutely no idea how to append to NetBSD’s system wide
/usr/share/misc/terminfo.cdb because I can’t find any tools that can read or write to it beyond the low-level C functions. However, you can do the following (as suggested in NetBSD’s
tic man page).
cp /path/to/st.info ~/.terminfo tic ~/.terminfo
which will create a
~/.terminfo.cdb file. I then also copied this to
/root/.terminfo.cdb so I don’t have problems with
Then I just needed a few moments of confusion before I remembered that I’d set the default terminal in Tmux to
xterm-color quite some time back and that’s why
$TERM was still incorrect!
So far, the only thing that doesn’t like
st-256color is Snownews, where I get display glitches. So for that I’ve aliased
export TERM=xterm-color;snownews;export TERM=st-256color and it’s all hunky-dory again.
[EDIT: 2015-10-29] Gerard Lally wrote to me to let me know there is a better way to do this:
It dawned on me earlier that there’s a very obvious way to append the rxvt-unicode terminfo to the NetBSD system-wide database: just cat it to the end of terminfo in /usr/share/misc and create a new database with tic!
In other words:
cd /usr/share/misc # backup existing database mv terminfo.cdb terminfo.cdb-bak # append rxvt unicode terminfo to system terminfo cat ~/rxvt-unicode.terminfo >> terminfo # create new database tic -s terminfo
This creates a new database and there’s no need for .terminfo.cdb in either root or user’s home.