Commit graph

6836 commits

Author SHA1 Message Date
Piotr Kocia
a163484f25 restore cursor position inbetween consecutive searches 2025-12-02 11:25:03 +01:00
Piotr Kocia
19e8dad788 fix crash on cursor refresh 2025-12-02 11:25:03 +01:00
Piotr Kocia
4a0c7d6f0b fix pgo not compiling 2025-12-02 11:25:03 +01:00
Piotr Kocia
01d26270f6 fix incorrect counts in tests 2025-12-02 11:25:03 +01:00
Piotr Kocia
f41558fc80 add movement and deletion search keybinds 2025-12-02 11:25:03 +01:00
Piotr Kocia
7b3d7bf1f1 add unicode-input to search 2025-12-02 11:25:03 +01:00
Piotr Kocia
9f9c1e11e2 implement paste 2025-12-02 11:25:03 +01:00
Piotr Kocia
c1eee29fbe fix highlights being cleared on confirm 2025-12-02 11:25:03 +01:00
Piotr Kocia
ae09b12501 fix vimode not working in alt grid 2025-12-02 11:25:03 +01:00
Piotr Kocia
210325d8aa reformat 2025-12-02 11:25:03 +01:00
Piotr Kocia
41987537cf comment fixes 2025-12-02 11:25:03 +01:00
Piotr Kocia
68685fdf13 highlight colors 2025-12-02 11:25:03 +01:00
Piotr Kocia
2609206c98 add vimode cursor as tracking point to reflow 2025-12-02 11:25:03 +01:00
Piotr Kocia
a168a78087 resolve todos 2025-12-02 11:25:03 +01:00
Piotr Kocia
602e6c1ebc increment/decrement follow cursor 2025-12-02 11:25:03 +01:00
Piotr Kocia
36784b59fa remove search.c and search.h 2025-12-02 11:25:03 +01:00
Piotr Kocia
02fdc26fcb cleanup 2025-12-02 11:25:03 +01:00
Piotr Kocia
26266dff3b motions 2025-12-02 11:24:53 +01:00
Piotr Kocia
23c95f1dea minor cleanup 2025-12-02 11:00:05 +01:00
Piotr Kocia
2d8e1d7295 render prestring 2025-12-02 11:00:05 +01:00
Piotr Kocia
2033b267d8 rename 2025-12-02 11:00:05 +01:00
Piotr Kocia
66a3e53b31 fix selection 2025-12-02 11:00:05 +01:00
Piotr Kocia
358155ac7d refresh vimode cursor 2025-12-02 11:00:05 +01:00
Piotr Kocia
ada54c7b86 fix FIRST_LINE 2025-12-02 11:00:05 +01:00
Piotr Kocia
4aacf44e8b remove quote-wise selection mode 2025-12-02 11:00:05 +01:00
Piotr Kocia
43dd569afc search highlights 2025-12-02 11:00:05 +01:00
Piotr Kocia
67120e9940 implement search 2025-12-02 11:00:05 +01:00
Piotr Kocia
e2c4ea3535 initial vimode implementation 2025-12-02 11:00:05 +01:00
Daniel Eklöf
be19ca2b20
client: add missing <limits.h> (for CHAR_MAX)
Closes #2221
2025-11-29 09:47:22 +01:00
Daniel Eklöf
fc9625678f
config: add toplevel-tag=TAG
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
2025-11-12 11:04:25 +01:00
Daniel Eklöf
c9abab0807
changelog: triple-click when there's a quote in the last column 2025-11-12 07:46:34 +01:00
Johannes Altmanninger
5cb8ff2e9c
Fix assertion failure triple-clicking line with quote in last column
By default, triple-click tries to select quoted strings within a
logical line.  This also works if the line spans multiple screen lines.

If there is a quote character in the last column:

	printf %"$COLUMNS"s \'; printf wrapped; sleep inf

and I triple-click on the following soft-wrapped line, there's an
assertion failure because the column next to the quote is out of range.

The quote position has been found by walking at least one cell
backwards from "pos". This means that if the quote position is in
the very last column, there must be a row below.

Also move the assertion to be a pre-condition, though that's debatable.
2025-11-12 07:41:35 +01:00
Daniel Eklöf
1fce0e69f5
changelog: case sensitive scrollback search: move to correct release 2025-11-01 08:12:52 +01:00
Daniel Eklöf
9728ada028
csi: focus mode (private mode 1004): send focus event immediate, when enabled
This lets the application now the current state, without having to
wait for the user to switch focus.

Fixes #2202
2025-11-01 08:12:03 +01:00
Ronan Pigott
143f220527
search: do not emit composing keys
When we are in the composing state for XCompose key sequences, we
should not add the compose component keys to the search buffer.
2025-11-01 08:08:55 +01:00
c4llv07e
5ae4955e83
search: use case insensitive search only if there's no uppercase in search 2025-10-30 06:36:12 +01:00
c4llv07e
71de0c45bc
char32: add helper functions to work with c32 case 2025-10-30 06:35:02 +01:00
Andrei
19466a21d8 doc: foot.ini: fix typo 2025-10-24 11:11:52 -07:00
Daniel Eklöf
5587604469
input: keymap(): use a goto-label on error, to ensure we always close the keymap FD 2025-10-18 08:23:53 +02:00
Daniel Eklöf
82e75851e4
changelog: add new 'unreleased' section 2025-10-16 08:50:31 +02:00
Daniel Eklöf
e114a5f02f
Merge branch 'releases/1.25' 2025-10-16 08:50:13 +02:00
Daniel Eklöf
b44a62724c
meson: bump version to 1.25.0 2025-10-16 08:46:58 +02:00
Daniel Eklöf
dc5a921d2c
changelog: prepare for 1.25.0 2025-10-16 08:46:36 +02:00
Daniel Eklöf
612adda384
render: don't warn about immediate buffer release if pre-apply-damage has been activated 2025-10-16 08:45:07 +02:00
Daniel Eklöf
dbf18ba444
wayland: always render a new frame after a fullscreen change
This is needed, since we disable alpha in fullscreen, and since we use
different image buffer formats (XRGB vs. ARGB) when we have alpha
vs. when we don't (and fullscreen always disables alpha).

Normally, this happens anyway, as the window is resized when going in
or out from fullscreen. But, it's technically possible for a
compositor to change an application's fullscreen state without
resizing the window.
2025-10-15 09:41:52 +02:00
Daniel Eklöf
96605bf52f
extract: number of spaces after the tab shouldn't include the tab cell itself
This fixes an off by one, where we sometimes "ate" an extra space when
extracting contents with tabs. This happened if the tab (and its
subsequent spaces) were followed by an additional space.

Closes #2194
2025-10-11 10:13:10 +02:00
Daniel Eklöf
7ed36c1033
config: add colors.dim-blend-towards=black|white
Before this patch, we always blended towards black when dimming
text. However, with light color themes, it usually looks better if we
dim towards white instead.

This option allows you to choose which color to blend towards.

The default is 'black' in '[colors]', and 'white' in '[colors2]'.

Closes #2187
2025-10-10 11:10:38 +02:00
Daniel Eklöf
371837ef7b
changelog: updated jump label colors in modus-operandi 2025-10-10 10:36:41 +02:00
Matthias Heyman
e308a4733e
fix: jump labels are more readable 2025-10-10 10:35:01 +02:00
Charalampos Mitrodimas
fd88c6c61c
wayland: restore opacity after exiting fullscreen
When exiting fullscreen mode, the window's transparency was not being
restored, leaving it opaque until another window was fullscreened.

This occurred because the Wayland opaque region was set based only on
the configured alpha value, without considering the fullscreen state.

Since commit

  899b768b74 ("render: disable transparency when we're fullscreened")

transparency is disabled during fullscreen to avoid
compositor-mandated black backgrounds affecting the intended colors.
However, the opaque region was not being updated when the fullscreen
state changed.

Fixes: https://codeberg.org/dnkl/foot/issues/2180
Signed-off-by: Charalampos Mitrodimas <charmitro@posteo.net>
2025-10-10 10:30:05 +02:00