Commit graph

6485 commits

Author SHA1 Message Date
Daniel Eklöf
aeb28e33fa
features: add +/-system-bell to version output 2025-01-17 11:22:23 +01:00
Daniel Eklöf
2a07a2e6b9
Add support for the new Wayland protocol xdg-system-bell
From the release notes:

    system bell - allowing e.g. terminal emulators to hand off system
    bell alerts to the compositor for among other things accessibility
    purposes

The new protocol is used when the new config option
bell.system=yes (and the compositor implements the protocol,
obviously).

The system bell is rung independent of whether the foot window has
keyboard focus or not (thus relying on compositor configuration to
determine whether anything should be done or not in response to the
bell).

The new option is enabled by default.
2025-01-17 10:21:50 +01:00
Daniel Eklöf
7e7fd0468d
forgejo: bugs: short explanation of what an IME is 2025-01-10 13:15:02 +01:00
Daniel Eklöf
3b96de2aa4
forgejo: bugs: config: uppercase description's first letter 2025-01-10 13:14:02 +01:00
Daniel Eklöf
b5835cbd58
forgejo: bugs: add required field 'config'
Require all bug submitters to include their foot configs.
2025-01-10 13:13:05 +01:00
Daniel Eklöf
feb4dd102b
forgejo: bugs: add required field 'distro' 2025-01-10 13:05:35 +01:00
Daniel Eklöf
2c309227f1
term: cursor_refresh(): don't try to dirty the grid if we don't have one
If the compositor sends a keyboard enter event before our window has
been mapped, foot crashes; the enter event triggers a cursor
refresh (hollow -> non-hollow block cursor), which crashes since we
haven't yet allocated a grid.

Fix by no-op:ing the refresh if the window hasn't been configured yet.

Closes #1910
2025-01-09 07:56:57 +01:00
Daniel Eklöf
e136abf1ef
changelog: colors.flash-alpha=1.0 2025-01-09 07:56:10 +01:00
Daniel Eklöf
20466e7fa4
Merge branch 'opaque-flash' 2025-01-09 07:55:29 +01:00
Alexander Orzechowski
301101e7d9
Revert "config: don't allow colors.flash-alpha to be 1.0"
This reverts commit 56d2c3e990.
2025-01-09 07:53:50 +01:00
Alexander Orzechowski
c2add346ad
terminal: Refresh only overlay when flash expires
If we call render_refresh, that will wait for a callback to the main
surface. In the case of a flash, the main surface might not get callbacks
if the compositor implements fancy culling optimizations like wlroots
wlr_scene compositors such as sway version >=1.10.
2025-01-09 07:53:50 +01:00
Alexander Orzechowski
f0253633d3
render: Expose render_overlay
This function updates the overlay that foot uses. It will be used to
update the overlay when the flash effect ends.
2025-01-09 07:53:50 +01:00
Daniel Eklöf
25cd5dae26
Merge branch 'ignore-title-and-app-id-report-queries'
Related to #1894
2025-01-07 13:12:54 +01:00
Daniel Eklöf
bcc176cdf1
changelog: 'CSI 21 t' and 'OSC 176 ?' disabled 2025-01-07 13:01:25 +01:00
Daniel Eklöf
d9bd9b7ffa
doc: ctlseqs: remove 'CSI 21 t' 2025-01-07 13:01:25 +01:00
Daniel Eklöf
06a32d553e
osc: ignore 'OSC 176 ?' - report app ID
It's not widely used (don't know _any_ application that uses it), and
can be used to trick users to run unwanted commands.
2025-01-07 13:01:21 +01:00
Daniel Eklöf
8e425c4e97
csi: ignore 'CSI 21 t' - report window title
It's not widely used (don't know _any_ application that uses it), and
can be used to trick users to run unwanted commands.
2025-01-07 13:01:15 +01:00
Daniel Eklöf
42f78b7f9c
ci: "meson [options]" is deprecated (do "meson setup [options]" instead) 2025-01-04 12:06:49 +01:00
Daniel Eklöf
6999968ee5
changelog: utf8proc.h not found 2025-01-04 10:33:23 +01:00
Daniel Eklöf
a2960aa457
meson: fix dependencies (utf8proc missing in lots of places) 2025-01-04 10:22:29 +01:00
Daniel Eklöf
169471cf23
ci: sr.ht: try to bring up to date, and pull from codeberg 2025-01-04 09:50:30 +01:00
Daniel Eklöf
77e30c8b45
ci: sr.ht: disable x64 (rely on codeberg only) 2025-01-04 09:50:06 +01:00
Daniel Eklöf
9667fe2b26
changelog: add missing issue ref 2025-01-03 08:08:52 +01:00
Daniel Eklöf
8414966013
changelog: add new 'unreleased' section 2025-01-03 08:03:06 +01:00
Daniel Eklöf
bdc821c488
Merge branch 'releases/1.20' 2025-01-03 08:02:48 +01:00
Daniel Eklöf
b0e6645395
meson: bump version to 1.20.1 2025-01-03 08:01:35 +01:00
Daniel Eklöf
4ed0361b97
changelog: prepare for 1.20.1 2025-01-03 08:01:22 +01:00
Daniel Eklöf
b66a076bf1
Merge branch 'master' into releases/1.20 2025-01-03 08:00:53 +01:00
Daniel Eklöf
f5c10a2452
render: fix order we're checking custom codepoints
Fixes a crash when trying to print a "Legacy Computing"
symbol (U+1FB00-U+1FB9B).

Closes #1901
2025-01-03 07:33:14 +01:00
evplus
9cde179034 themes: add iterm theme from alacritty 2025-01-02 11:53:49 +01:00
Daniel Eklöf
9f5be55d1c
osc: disable debug logging 2025-01-02 09:12:11 +01:00
Daniel Eklöf
7c1cee0373
notify: disable debug logging 2025-01-02 09:12:06 +01:00
Daniel Eklöf
56d2c3e990
config: don't allow colors.flash-alpha to be 1.0
A compositor will not send a frame callback for our main window if it
is fully occluded (for example, by a fully opaque overlay...). This
causes the overlay to stuck.

For regular buffers, it _should_ be enough to *not* hint the
compositor it's opaque. But at least some compositor special cases
single-pixel buffers, and actually look at their pixel value.

Thus, we have two options: implement frame callback handling for the
overlay sub-surface, or ensure we don't use a fully opaque
surface. Since no overlays are fully opaque by default, and the flash
surface is the only one that can be configured to be
opaque (colors.flash-alpha), and since adding frame callback handling
adds a lot of boilerplate code... let's go with the simpler solution
of
2025-01-02 09:10:51 +01:00
Daniel Eklöf
c7ab7b3539
term: limit app-id to 2048 characters
Unsure if the protocol imposes a limit (haven't found any
documentation), or if the issue is in the libwayland implementation,
or wlroots (triggers in at least sway+river).

The issue is that setting a too long app-id causes the
compositor (river at least) to peg the CPU at 100%, and stop sending
e.g. frame callbacks to foot.

Closes #1897
2025-01-02 08:58:48 +01:00
Daniel Eklöf
f8ebe985a8
changelog: add missing issue ref 2025-01-01 09:29:11 +01:00
Daniel Eklöf
1dc922e5a4
changelog: add new 'unreleased' section 2025-01-01 09:23:33 +01:00
Daniel Eklöf
5048cb0c33
Merge branch 'releases/1.20' 2025-01-01 09:23:08 +01:00
Daniel Eklöf
9b1c31ebcb
meson: bump version to 1.20.0 2025-01-01 09:21:51 +01:00
Daniel Eklöf
ded55b7276
changelog: prepare for 1.20.0 2025-01-01 09:21:26 +01:00
Daniel Eklöf
e851d44ac9
kitty kbd: don't generate release events for plain Enter+Tab+Backspace
From the specification:

    The Enter, Tab and Backspace keys will not have release events
    unless Report all keys as escape codes is also set, so that the
    user can still type reset at a shell prompt when a program that
    sets this mode ends without resetting it.

Closes #1892
2025-01-01 08:06:52 +01:00
Daniel Eklöf
e38ec79be1
osc: add option to disable OSC-52, partially or fully
Closes #1867
2024-12-22 07:16:12 +01:00
Daniel Eklöf
67bd5dd460
selection: fix crash when tripple clicking in a region containing NUL characters
If a cell contains a NUL character, it was incorrectly treated as a
quote, later triggering an assertion.

Patch by Johannes Altmanninger
2024-12-22 07:09:37 +01:00
Daniel Eklöf
3b0c2a3543
misc: add missing include stdlib.h (for free())
Closes #1887
2024-12-20 15:22:14 +01:00
Daniel Eklöf
d523e7a676
term: set_app_id() + set_window_title(): only allow printable characters 2024-12-17 11:01:17 +01:00
Daniel Eklöf
9a1b59adae
box-drawings: implement octants 2024-12-08 12:55:57 +01:00
heather7283
768f254286 pgo: prefer full-headless-sway over full-headless-cage 2024-12-08 14:02:11 +04:00
cy
5034209087
quit should be in key-bindings 2024-12-08 09:16:15 +01:00
Denis Zharikov
ca13c7b4f5
Update rose-pine, add theme variants 2024-12-08 09:15:19 +01:00
heather7283
7e88e0bfdc
pgo: explicitly set LLVM_PROFILE_FILE envvar
When building foot with pgo under gentoo's portage, LLVM tried to
generate profile data files directly under system root, triggering
sandbox violation and causing build to fail. Setting this envvar fixes
the issue by explicitly specifying profiling data location.

Reference: https://clang.llvm.org/docs/UsersManual.html#profiling-with-instrumentation
2024-12-08 09:10:43 +01:00
heather7283
de305a7e58
pgo: run sway with --unsupported-gpu flag
Sway refuses to run if it detects an nvidia GPU on the system,
causing pgo build to fail. Adding --unsupported-gpu flag disables
this behaviour.
2024-12-08 09:10:43 +01:00