mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-04 04:06:06 -05:00
slave: set TERMINFO instead of TERMINFO_DIRS
This seems to be slightly better supported than TERMINFO_DIRS. It also simplifies our code, since it’s no longer an issue of whether to append or not - we just set TERMINFO, and ignore whatever it was set to before. Also closes #687
This commit is contained in:
parent
ee68a3fe95
commit
8a7264e905
3 changed files with 20 additions and 28 deletions
36
INSTALL.md
36
INSTALL.md
|
|
@ -158,14 +158,14 @@ mkdir -p bld/release && cd bld/release
|
|||
|
||||
Available compile-time options:
|
||||
|
||||
| Option | Type | Default | Description | Extra dependencies |
|
||||
|--------------------------------------|---------|----------------------------|---------------------------------------|--------------------|
|
||||
| `-Ddocs` | feature | `auto` | Builds and install documentation | scdoc |
|
||||
| `-Dime` | bool | `true` | Enables IME support | None |
|
||||
| `-Dgrapheme-clustering` | feature | `auto` | Enables grapheme clustering | libutf8proc |
|
||||
| `-Dterminfo` | feature | `enabled` | Build and install terminfo files | tic (ncurses) |
|
||||
| `-Ddefault-terminfo` | string | `foot` | Default value of `TERM` | none |
|
||||
| `-Dcustom-terminfo-install-location` | string | `${datadir}/foot/terminfo` | Value to append to `TERMINFO_DIRS` | None |
|
||||
| Option | Type | Default | Description | Extra dependencies |
|
||||
|--------------------------------------|---------|----------------------------|----------------------------------|--------------------|
|
||||
| `-Ddocs` | feature | `auto` | Builds and install documentation | scdoc |
|
||||
| `-Dime` | bool | `true` | Enables IME support | None |
|
||||
| `-Dgrapheme-clustering` | feature | `auto` | Enables grapheme clustering | libutf8proc |
|
||||
| `-Dterminfo` | feature | `enabled` | Build and install terminfo files | tic (ncurses) |
|
||||
| `-Ddefault-terminfo` | string | `foot` | Default value of `TERM` | none |
|
||||
| `-Dcustom-terminfo-install-location` | string | `${datadir}/foot/terminfo` | Value to set `TERMINFO` to | None |
|
||||
|
||||
Documentation includes the man pages, the example `foot.ini`, readme,
|
||||
changelog and license files.
|
||||
|
|
@ -178,24 +178,24 @@ where individual terminfo files cannot easily be installed.
|
|||
co-exist with ncurses’ version. The idea is that you install foot’s
|
||||
terminfo to a non-standard location, for example
|
||||
`/usr/share/foot/terminfo`. Use `-Dcustom-terminfo-install-location`
|
||||
to tell foot where the terminfo is. Foot will append this path to the
|
||||
`TERMINFO_DIRS` environment variable in the client application’s
|
||||
process. The value is **relative to ${prefix}**.
|
||||
to tell foot where the terminfo is. Foot will set the environment
|
||||
variable `TERMINFO` to this value (with `${prefix}` added). The value
|
||||
is **relative to ${prefix}**.
|
||||
|
||||
Conforming applications _should_ look in `TERMINFO_DIRS` first, and
|
||||
Conforming applications _should_ look in `TERMINFO` first, and
|
||||
fallback to the builtin default (e.g. `/usr/share/terminfo`) if not
|
||||
found. Thus, it will prefer foot’s version, if it exists (which it
|
||||
typically will on localhost), and fallback to ncurses’ version if not
|
||||
(e.g. on remote systems, where foot’s terminfo package has not been
|
||||
installed).
|
||||
|
||||
If set to `no`, foot will **not** set or modify `TERMINFO_DIRS` at
|
||||
all. Use this if you do not intend to use/support foot’s terminfo
|
||||
definitions at all.
|
||||
If set to `no`, foot will **not** set or modify `TERMINFO` at all. Use
|
||||
this if you do not intend to use/support foot’s terminfo definitions
|
||||
at all.
|
||||
|
||||
`-Dterminfo` can be used to disable building the terminfo definitions
|
||||
in the meson build. It does **not** change the default value of
|
||||
`TERM`, and it does **not** disable `TERMINFO_DIRS`.
|
||||
`TERM`, and it does **not** disable `TERMINFO`.
|
||||
|
||||
Example:
|
||||
|
||||
|
|
@ -204,8 +204,8 @@ meson --prefix=/usr -Dcustom-terminfo-install-location=lib/foot/terminfo
|
|||
```
|
||||
|
||||
The above tells foot its terminfo definitions will be installed to
|
||||
`/usr/lib/foot/terminfo`. This is the value foot will append to the
|
||||
`TERMINFO_DIRS` environment variable.
|
||||
`/usr/lib/foot/terminfo`. This is the value foot will set the
|
||||
`TERMINFO` environment variable to.
|
||||
|
||||
If `-Dterminfo` is enabled (the default), then the terminfo files will
|
||||
be built as part of the regular build process, and installed to the
|
||||
|
|
|
|||
|
|
@ -12,4 +12,4 @@ option('default-terminfo', type: 'string', value: 'foot',
|
|||
description: 'Default value of the "term" option in foot.ini.')
|
||||
|
||||
option('custom-terminfo-install-location', type: 'string',
|
||||
description: 'Path to foot\'s terminfo, relative to ${prefix}. If set to anything but “no“, foot will append this value to TERMINFO_DIRS in the client process.')
|
||||
description: 'Path to foot\'s terminfo, relative to ${prefix}. If set to anything but “no“, foot will set TERMINFO to this value in the client process.')
|
||||
|
|
|
|||
10
slave.c
10
slave.c
|
|
@ -290,15 +290,7 @@ slave_spawn(int ptmx, int argc, const char *cwd, char *const *argv,
|
|||
setenv("COLORTERM", "truecolor", 1);
|
||||
|
||||
#if defined(FOOT_TERMINFO_PATH)
|
||||
const char *terminfo_dirs = getenv("TERMINFO_DIRS");
|
||||
if (terminfo_dirs != NULL) {
|
||||
char *updated_terminfo_dirs =
|
||||
xasprintf("%s:%s", terminfo_dirs, FOOT_TERMINFO_PATH);
|
||||
|
||||
setenv("TERMINFO_DIRS", updated_terminfo_dirs, 1);
|
||||
free(updated_terminfo_dirs);
|
||||
} else
|
||||
setenv("TERMINFO_DIRS", FOOT_TERMINFO_PATH, 1);
|
||||
setenv("TERMINFO", FOOT_TERMINFO_PATH, 1);
|
||||
#endif
|
||||
|
||||
char **_shell_argv = NULL;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue