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.
This patch adds a new config option: colors{,2}.blur=no|yes. When
enabled, transparent background are also blurred.
Note that this requires the brand new ext-background-effect-v1
protocol, and specifically, that the compositor implements the blur
effect.
Add support for the new xdg-toplevel-tag-v1 Wayland protocol, by
exposing a new config option, `toplevel-tag`, and a corresponding
command option, `--toplevel-tag` (in both `foot` and `footclient`).
This can help the compositor with session management, or custom window
rules.
Closes#2212