st

My st fork
git clone https://git.kausban.com/dwm/raw/.git
Log | Files | Refs | README

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.