README.terminfo.rst (2008B)
1 Terminfo Entries 2 ================ 3 4 :Author: Sebastian J. Bronner <waschtl@sbronner.com> 5 :Date: 2023-02-12 6 :URL: https://aur.archlinux.org/packages/st 7 8 The Problem 9 ----------- 10 11 Most Linux-based distributions will have their terminfo entries in the 12 ``ncurses`` package. These live in ``/usr/share/terminfo``. There you will find 13 several entries for ``st``. Up until ``ncurses-6.1`` as packaged in ArchLinux, 14 these, did not work well with then-current versions of ``st``. 15 16 Specifically, I have observed the following issues when using the terminfo 17 entries supplied with those versions of ``ncurses``: 18 19 * Start ``st``. 20 * Run ``tmux`` in the ``st`` window. 21 * Run ``nvim`` in ``tmux``. 22 23 * ``tmux`` will crash immediately with the following message: 24 25 .. code:: console 26 27 [lost server] 28 % 29 30 * Run ``w3m`` with any URL in ``tmux``. 31 32 * ``w3m`` will not react to any key presses (most notably the arrow keys and 33 ``q``) and must be terminated with ``killall w3m``. 34 * The command line returned where ``w3m`` was running will show all the 35 missing keypresses. 36 37 For reference, I performed these tests using the following software versions: 38 ``st`` 0.8.2, ``tmux`` 2.9_a, ``neovim`` 0.4.2, and ``w3m`` 39 0.5.3.git20190105-1. 40 41 The Workaround 42 -------------- 43 44 The affected versions of all software packages have since been updated and the 45 issue has been resolved. However, when connecting to older remote systems using 46 ``ssh`` in ``st``, those remote systems may still be affected. In those cases, 47 it would help to copy over ``st``'s terminfo file and generate user-level 48 terminfo entries: 49 50 .. code:: shell 51 52 rsync /usr/share/st/st.info <remote>: 53 ssh <remote> tic -sx st.info 54 55 The generated terminfo database will most likely be placed in ``~/.terminfo``. 56 The command will print the actual location used. Unfortunately, these files 57 need to be kept up to date by hand. Actually they should probably be removed as 58 soon as a new version of ``ncurses`` is installed on the remote system.