Ncurses 2021年07月31日 added terminfo definitions for foot. Since they lack several non-standard capabilities (used by e.g. tmux), we still want to be able to use our own terminfo definitions.
The choices were to either rename our definitions, or install them to a custom location. Kitty, for example, calls its terminfo xterm-kitty, while ncurses calls it kitty. urxvt calls its terminfo rxvt-unicode{,-256color}, while ncurses calls it rxvt. Kitty also installs its terminfo to a custom location (/usr/lib/kitty/terminfo on Arch).
I'd rather not rename it. Being able to have the same name also means we can gracefully fallback to ncurses' version on e.g. remote systems where our terminfo hasn't been installed.
To facilitate this, the following changes have been made:
(削除) meson no longer builds or installs the terminfo files. (削除ここまで)
-Dterminfo has been changed to only control whether or not the terminfo definitions are built (and installed) or not. It no longer controls the default value of TERM.
- INSTALL.md has been updated with information describing the terminfo situation, and how to actually build and package the terminfo files.
(削除) -Dterminfo has been removed (it controlled whether or not to build the terminfo definitions) (削除ここまで)
-Dterminfo-install-location has been renamed to -Dcustom-terminfo-install-location, and the custom value disabled is no longer supported.
- When
-Dcustom-terminfo-install-location is set to anything but no, foot will append this value to the TERMINFO_DIRS environment variable in the client application's process. The value is relative ${prefix}. The default is ${datadir}/foot/terminfo.
By appending to TERMINFO_DIRS, applications will search for the foot terminfo there first. If it can't find it there (for example, on remote systems where the foot terminfo definitions haven't been installed), the default location will be searched instead.
Thus, a distro that manually builds and packages (in a separate package) the terminfo files, could configure the foot build with:
meson -Dterminfo=disabled ...
This will result in a build that uses foot as the default TERM, with our terminfo files expected to be in ${prefix}/${datadir}/foot/terminfo (e.g. /usr/share/foot/terminfo).
To actually build the terminfo files you'd:
tic -o $DESTDIR/share/foot/terminfo -x -e foot,foot-direct foot.info
To complete disable "our" terminfo files, and instead rely completely on ncurses', you could do:
meson -Dterminfo=disabled -Dcustom-terminfo-install-location=no
Closes #671
Ncurses 2021年07月31日 added terminfo definitions for foot. Since they lack several non-standard capabilities (used by e.g. tmux), we still want to be able to use our own terminfo definitions.
The choices were to either rename our definitions, or install them to a custom location. Kitty, for example, calls its terminfo `xterm-kitty`, while ncurses calls it `kitty`. urxvt calls its terminfo `rxvt-unicode{,-256color}`, while ncurses calls it `rxvt`. Kitty _also_ installs its terminfo to a custom location (`/usr/lib/kitty/terminfo` on Arch).
I'd rather _not_ rename it. Being able to have the same name also means we can gracefully fallback to ncurses' version on e.g. remote systems where our terminfo hasn't been installed.
To facilitate this, the following changes have been made:
* ~~meson no longer builds or installs the terminfo files.~~
* `-Dterminfo` has been changed to **only** control whether or not the terminfo definitions are built (and installed) or not. It no longer controls the default value of `TERM`.
* INSTALL.md has been updated with information describing the terminfo situation, and how to actually build and package the terminfo files.
* ~~`-Dterminfo` has been removed (it controlled whether or not to build the terminfo definitions)~~
* `-Dterminfo-install-location` has been renamed to `-Dcustom-terminfo-install-location`, and the custom value `disabled` is no longer supported.
* When `-Dcustom-terminfo-install-location` is set to **anything but `no`**, foot will **append** this value to the `TERMINFO_DIRS` environment variable in the client application's process. The value is relative `${prefix}`. The default is `${datadir}/foot/terminfo`.
By appending to `TERMINFO_DIRS`, applications will search for the `foot` terminfo there first. If it can't find it there (for example, on remote systems where the foot terminfo definitions haven't been installed), the default location will be searched instead.
Thus, a distro that manually builds and packages (in a separate package) the terminfo files, could configure the foot build with:
```sh
meson -Dterminfo=disabled ...
```
This will result in a build that uses `foot` as the default `TERM`, with our terminfo files expected to be in `${prefix}/${datadir}/foot/terminfo` (e.g. `/usr/share/foot/terminfo`).
To actually build the terminfo files you'd:
```sh
tic -o $DESTDIR/share/foot/terminfo -x -e foot,foot-direct foot.info
```
To complete disable "our" terminfo files, and instead rely completely on ncurses', you could do:
```sh
meson -Dterminfo=disabled -Dcustom-terminfo-install-location=no
```
Closes #671