Commit graph

6512 commits

Author SHA1 Message Date
Daniel Eklöf
2ff38e86a7
input: kitty: fix alternate codepoint sometimes not being reported
When alternate key reporting is enabled (i.e. when we're supposed to
report the shifted key along with the unshifted key), we try to figure
out whether the key really is shifted or not (and thus which xkb
keysym to use for the unshifted and shifted keys in the escape).

This was done by getting the layout's *all* modifier combinations that
produce the shifted keysym, and if any of of them contained a modifier
that isn't supported by the kitty protocol, the shifted and unshifted
keys are derived from the same keysym. This is to ensure we handle
things like AltGr-combos correctly.

The issue is, since there may be more than one modifier combination
generating the shifted keysym, we may end up using the wrong keysym
just because _another_ combination set contains modifiers not
supported by the kitty protocol. What we're interrested in is whether
the *pressed* set of modifiers contains such modifiers.

Closes #1918
2025-01-20 09:08:47 +01:00
Daniel Eklöf
22e1b1610f
vt: combining chars: ensure 'key' is within range
When there's a key collision, we increment the key and check
again. When doing this, we need to ensure the key is withing range,
and wrap around to 0 if the key value is too large.
2025-01-18 10:22:24 +01:00
Daniel Eklöf
10c4e94e1b
Merge branch 'releases/1.20' 2025-01-18 09:43:57 +01:00
Daniel Eklöf
bb60618941
changelog: move utf8proc entry to correct release 2025-01-18 09:31:05 +01:00
Daniel Eklöf
e1d9b57f83
changelog: add back entry to 1.20.1, removed in de3becef96 2025-01-18 09:31:05 +01:00
Daniel Eklöf
771af699f0
meson: bump version to 1.20.2 2025-01-18 09:25:36 +01:00
Daniel Eklöf
15d9b08307
changelog: prepare for 1.20.2 2025-01-18 09:25:19 +01:00
Daniel Eklöf
077177e8a9
forgejo: bugs: short explanation of what an IME is 2025-01-18 09:24:05 +01:00
Daniel Eklöf
9361596d02
forgejo: bugs: config: uppercase description's first letter 2025-01-18 09:24:04 +01:00
Daniel Eklöf
14cd128992
forgejo: bugs: add required field 'config'
Require all bug submitters to include their foot configs.
2025-01-18 09:24:03 +01:00
Daniel Eklöf
b808eb5162
forgejo: bugs: add required field 'distro' 2025-01-18 09:24:02 +01:00
Daniel Eklöf
c5529808c4
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-18 09:24:00 +01:00
Daniel Eklöf
39061e0422
changelog: colors.flash-alpha=1.0 2025-01-18 09:23:46 +01:00
Alexander Orzechowski
de3becef96
Revert "config: don't allow colors.flash-alpha to be 1.0"
This reverts commit 56d2c3e990.
2025-01-18 09:23:41 +01:00
Alexander Orzechowski
ab5a168dbf
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-18 09:23:40 +01:00
Alexander Orzechowski
881eb28134
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-18 09:23:39 +01:00
Daniel Eklöf
ad1e2d7d05
changelog: 'CSI 21 t' and 'OSC 176 ?' disabled 2025-01-18 09:23:35 +01:00
Daniel Eklöf
ba81480ebb
doc: ctlseqs: remove 'CSI 21 t' 2025-01-18 09:23:34 +01:00
Daniel Eklöf
354ba8dad8
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-18 09:23:33 +01:00
Daniel Eklöf
a62194caee
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-18 09:23:33 +01:00
Daniel Eklöf
87ef869767
ci: "meson [options]" is deprecated (do "meson setup [options]" instead) 2025-01-18 09:23:31 +01:00
Daniel Eklöf
80ef366bde
changelog: utf8proc.h not found 2025-01-18 09:23:31 +01:00
Daniel Eklöf
f7031a2161
meson: fix dependencies (utf8proc missing in lots of places) 2025-01-18 09:23:29 +01:00
Daniel Eklöf
2784ae8793
ci: sr.ht: try to bring up to date, and pull from codeberg 2025-01-18 09:23:29 +01:00
Daniel Eklöf
fc154872c0
ci: sr.ht: disable x64 (rely on codeberg only) 2025-01-18 09:23:28 +01:00
Daniel Eklöf
c854f35579
changelog: add missing issue ref 2025-01-18 09:23:27 +01:00
Daniel Eklöf
45e5a4b024
changelog: add new 'unreleased' section 2025-01-18 09:23:26 +01:00
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