mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-05-30 21:38:03 -04:00
This change introduces a new `scrollback` Meson build option (enabled by default) that lets foot be compiled without scrollback history. When the option is off, `FOOT_HAVE_SCROLLBACK` is left undefined and the relevant code is excluded from the build, producing a slimmer terminal for use cases that do not need it. With scrollback disabled: - The `[scrollback]` section in `foot.ini` and its key bindings become no-ops. - In-terminal search is removed, along with the "pipe scrollback" action, the scrollback indicator, and their colors/overlays. - IME hooks for the search box, mouse-wheel scrollback handling, and related `terminal` state are compiled out. - Selection auto-scroll (the timer that scrolls the viewport while a drag-selection extends past the visible area) is removed, since with no scrollback there is nowhere to scroll to. The associated function declarations, `enum selection_scroll_direction`, the `auto_scroll` field on `terminal::selection`, and their init/teardown sites are all excluded from the build. To keep action enumerations stable across build configurations, two range markers (`BIND_ACTION_PIPE_FIRST` / `BIND_ACTION_PIPE_LAST`) are introduced so that pipe-action handling does not depend on `PIPE_SCROLLBACK` being present. The build summary and `foot --version` now report `+scrollback` or `-scrollback`, and the config tests have been updated to account for optional section.
34 lines
2.1 KiB
Meson
34 lines
2.1 KiB
Meson
option('docs', type: 'feature',
|
|
description: 'Build and install documentation (man pages, example foot.ini, readme, changelog, license etc).')
|
|
|
|
option('themes', type: 'boolean', value: true,
|
|
description: 'Install themes (predefined color schemes)')
|
|
|
|
option('ime', type: 'boolean', value: true,
|
|
description: 'IME (Input Method Editor) support')
|
|
|
|
option('scrollback', type: 'boolean', value: true,
|
|
description: 'Enable scrollback history. When disabled, the [scrollback] section in foot.ini and the corresponding key bindings become no-ops.')
|
|
|
|
option('grapheme-clustering', type: 'feature',
|
|
description: 'Enables grapheme clustering using libutf8proc. Requires fcft with harfbuzz support to be useful.')
|
|
|
|
option('tests', type: 'boolean', value: true, description: 'Build tests')
|
|
|
|
option('terminfo', type: 'feature', value: 'enabled', description: 'Build and install foot\'s terminfo files.')
|
|
option('default-terminfo', type: 'string', value: 'foot',
|
|
description: 'Default value of the "term" option in foot.ini.')
|
|
option('terminfo-base-name', type: 'string',
|
|
description: 'Base name of the generated terminfo files. Defaults to the value of the \'default-terminfo\' meson option')
|
|
option('custom-terminfo-install-location', type: 'string', value: '',
|
|
description: 'Path to foot\'s terminfo, relative to ${prefix}. If set, foot will set $TERMINFO to this value in the client process.')
|
|
|
|
option('systemd-units-dir', type: 'string', value: '',
|
|
description: 'Where to install the systemd service files (absolute path). Default: ${systemduserunitdir}')
|
|
|
|
option('utmp-backend', type: 'combo', value: 'auto', choices: ['none', 'libutempter', 'ulog', 'auto'],
|
|
description: 'Which utmp logging backend to use. This affects how (with what arguments) the utmp helper binary (see \'utmp-default-helper-path\')is called. Default: auto (linux=libutempter, freebsd=ulog, others=none)')
|
|
option('utmp-default-helper-path', type: 'string', value: 'auto',
|
|
description: 'Default path to the utmp helper binary. Default: auto-detect')
|
|
|
|
option('fanalyzer', type: 'boolean', value: false, description: 'enable GCC static analyzer')
|