Commit graph

592 commits

Author SHA1 Message Date
Daniel Eklöf
2d1ded183a
config: change default ‘pad’ to 0x0 (i.e. no padding) 2022-09-03 12:17:46 +02:00
Daniel Eklöf
3cf11bfea9
theme: change default color theme to solarized-dark-normal-brights
This is my variant of the solarized theme, were only the first eight
colors (i.e. the "normal") colors are from the solarized theme. The
remaining eight (the "bright" colors) are brightened versions of the
"normal" colors. This results in a theme that is usually in all
applications, not just those that are "aware" that the terminal color
theme is "solarized".
2022-08-22 13:37:12 +02:00
Yorick Peterse
a0942f950d
config: add setting for underline thickness
This adds an "underline-thickness" setting to the "main" section,
similar to the existing "underline-offset" setting. This setting is used
to specify a custom height for regular (= non-cursor) underlines.

Fixes #1136
2022-08-20 22:16:32 +02:00
Daniel Eklöf
0cbd99710b
unicode-mode: ‘q’ aborts Unicode input mode 2022-07-29 11:56:41 +02:00
Daniel Eklöf
8967dd9cfe
input: add new Unicode input mode
This mode is activated through the new key-bindings.unicode-input and
search-bindings.unicode-input key bindings.

When active, the user can “build” a Unicode codepoint by typing its
hexadecimal value.

Note that there’s no visual feedback in this mode. This is
intentional. This mode is intended to be a fallback for users that
don’t use an IME.

Closes #1116
2022-07-29 09:26:31 +02:00
Daniel Eklöf
d79a3b9350
config: add colors.search-box-{no-,}match
Closes #1112
2022-07-28 19:02:56 +02:00
Daniel Eklöf
bdb79e8b9f
osc: add support for OSC 133;A (prompt markers)
This patch adds support for the OSC-133;A sequence, introduced by
FinalTerm and implemented by iTerm2, Kitty and more. See
https://iterm2.com/documentation-one-page.html#documentation-escape-codes.html.

The shell emits the OSC just before printing the prompt. This lets the
terminal know where, in the scrollback, there are prompts.

We implement this using a simple boolean in the row struct ("this row
has a prompt"). The prompt marker must be reflowed along with the text
on window resizes.

In an ideal world, erasing, or overwriting the cell where the OSC was
emitted, would remove the prompt mark. Since we don't store this
information in the cell struct, we can't do that. The best we can do
is reset it in erase_line(). This works well enough in the "normal"
screen, when used with a "normal" shell. It doesn't really work in
fullscreen apps, on the alt screen. But that doesn't matter since we
don't support jumping between prompts on the alt screen anyway.

To be able to jump between prompts, two new key bindings have been
added: prompt-prev and prompt-next, bound to ctrl+shift+z and
ctrl+shift+x respectively.

prompt-prev will jump to the previous, not currently visible, prompt,
by moving the viewport, ensuring the prompt is at the top of the
screen.

prompt-next jumps to the next prompt, visible or not. Again, by moving
the viewport to ensure the prompt is at the top of the screen. If
we're at the bottom of the scrollback, the viewport is instead moved
as far down as possible.

Closes #30
2022-06-16 19:02:10 +02:00
Daniel Eklöf
5760bcb3bf
doc: document the new ‘environment’ config section 2022-06-13 11:55:23 +02:00
Daniel Eklöf
bc7214cd88
config: use $HOME instead of getpwuid() to retrieve users’s home dir
When searching for foot.ini, use $HOME instead of getpwuid() to
retrieve the user’s home directory.
2022-05-25 17:02:41 +02:00
Daniel Eklöf
56e5855fff
doc: benchmarks: update with desktop results for 1.12.1 (r9) 2022-05-12 13:10:24 +02:00
Daniel Eklöf
834beb966e
doc: benchmarks: update with laptop results for 1.12.1 (r9) 2022-05-12 11:53:08 +02:00
Daniel Eklöf
aa4c7c5a30
config: add ctrl+shift+v and XF86 paste to SEARCH_CLIPBOARD_PASTE
We now bind ctrl+v, ctrl+shift+v, ctrl+y and XF86Paste to pasting from
the clipboard into the scrollback search buffer.

Why all these? Because we can, and because all are common shortcuts
for pasting:

* ctrl+v: “normal” apps use this by default
* ctrl+shift+v: used in terminals (including foot)
* ctrl+y: Emacs
* XF86Paste: special keyboard key, for pasting
2022-04-26 20:37:30 +02:00
Daniel Eklöf
f0f0fac77f
doc: foot.ini: drop empty line after *show-urls-launch* 2022-04-23 20:08:09 +02:00
Merlin Büge
e6f884a9e1
doc + meson.build: update information about foot.ini, small cleanup
- foot.ini.5: mention location of example config file
- foot.1: replace outdated (or incomplete) information about the
  location of the config file with references to foot.ini.5
- foot.1 and foot.ini.5: conform to scdoc specification, thus surround each
  header with (at least) one blank line. additionally consistently use exactly
  one line before/after each header (was sometimes two before)
- foot.1: some parts of the keybindings had their own section, move into
  KEYBOARD SHORTCUTS section
- foot.1: move EXIT STATUS section to the end where it is commonly found
- foot.1: copy information about config file handling from the beginning of
  foot.ini.5 into the CONFIGURATION section of foot.1
- INSTALL.md: foot.ini is no longer included in the documentation
- meson.build: do not bundle foot.ini with documentation anymore, see also
  https://codeberg.org/dnkl/foot/pulls/1015

Closes #1002
2022-04-22 17:00:04 +02:00
Daniel Eklöf
8485cdaaaa
csi: implement CSI > 4n (reset modifyOtherKeys) 2022-04-19 17:25:06 +02:00
Daniel Eklöf
501a9fbb5e
url-mode: add a key binding that enables “persistent” URL mode
This is an alternative to ‘show-urls-launch’, where we stay in URL
mode after activating an URL.

Closes #964
2022-04-17 11:24:27 +02:00
Daniel Eklöf
fbcebd4f1c
config: add [csd].hide-when-maximized=yes|no
When enabled, the CSD titlebar will be hidden when the window is
maximized.

Closes #1019
2022-04-16 11:45:50 +02:00
Merlin Büge
5539eac590
fix some small typos 2022-04-13 09:41:10 +02:00
Daniel Eklöf
3c6836e32d
doc: footclient: codespell 2022-04-12 15:07:41 +02:00
Daniel Eklöf
fd1e5feda4
doc: footclient: add -E,--client-environment 2022-04-12 15:07:41 +02:00
Daniel Eklöf
6792f5fce0
doc: ctlseq: document XTMODKEYS 2022-04-10 18:36:04 +02:00
Daniel Eklöf
20608c987b
config: fallback to /etc/xdg if XDG_CONFIG_DIRS is unset
Closes #1008
2022-04-07 13:06:01 +02:00
jvoisin
58a1ffe724
config: add tweak option to allow disabling sixels
Closes #950
2022-04-06 19:25:43 +02:00
Merlin Büge
49ba16da25
Small clarification/rewording of default color values
This makes the example config `foot.ini` and its man page slightly more
coherent regarding the specification of default values.

Note that the cursor color is not hardcoded like e.g. foreground or
background, thus in the example config, `<inverse foreground/background>`
makes more sense.
2022-04-06 18:16:40 +02:00
Merlin Büge
ee6007aa07 doc: fix some small typos 2022-04-06 15:46:59 +02:00
Daniel Eklöf
f2870bf56c
doc: foot.ini: escape ‘-’ and ‘*’ 2022-04-05 20:20:55 +02:00
Daniel Eklöf
ea9d38a6ac
doc: foot.ini: align documented default value of uri-characters with reality
Fixes #1000
2022-04-05 19:42:42 +02:00
Craig Barnes
8d4d22218e csi: add support for DECNKM private mode
This is equivalent to DECKPAM/DECKPNM when enabled/disabled, but can
also be saved/restored/queried with XTSAVE/XTRESTORE/DECRQM.

See also:

* https://vt100.net/docs/vt510-rm/DECNKM.html
* https://vt100.net/docs/vt510-rm/DECKPAM.html
* https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-PC-Style-Function-Keys
2022-03-19 13:44:14 +00:00
Daniel Eklöf
9b343fd9fb
meson: stop using deprecated functions, require meson >= 0.58
* get_pkgconfig_variable() -> get_variable()
* prog.path() -> prog.full_path()
* meson.build_root() -> meson.global_build_root()
2022-02-27 11:28:11 +01:00
Max Gautier
4ec172a4ad Document socket activation feature
- Particular mention to included systemd user units
2022-02-26 16:09:30 +01:00
Daniel Eklöf
f869ca4546
config/input: add scrollback-home|end key bindings (unbound by default) 2022-02-23 19:03:54 +01:00
Daniel Eklöf
bd9041fdb5
doc: foot.ini: document the new [text-bindings] section 2022-02-16 23:02:27 +01:00
Craig Barnes
f8262f2125 doc: ctlseq: recommend using DECSET 2026 for synchronized updates
Instead of the somewhat problematic[1] DCS-based equivalent.

[1]: https://codeberg.org/dnkl/foot/issues/459
2022-02-16 14:48:10 +00:00
Craig Barnes
9db416ccdc doc: ctlseq: tweak formatting of OSC 22 sequence slightly, for clarity
Having 3 separately underlined words made it look a bit like 3 separate
parameters, at a glance.
2022-02-15 15:39:35 +00:00
Craig Barnes
3d3ee2274f doc: ctlseq: make OSC 8 formatting consistent with other sequences 2022-02-15 15:35:04 +00:00
Daniel Eklöf
f718af4c1b
doc: ctlseq: OSC-22 2022-02-07 17:28:38 +01:00
Daniel Eklöf
1537fd02bd
doc: foot.1: describe how to search for the previous search string 2022-01-29 17:50:43 +01:00
Daniel Eklöf
749d4c0766
doc: foot.1: shortcuts: mention that there are more actions than listed here 2022-01-29 17:50:43 +01:00
Daniel Eklöf
2cc0a450b4
doc: foot.1: add missing ‘*’ 2022-01-27 18:54:48 +01:00
Daniel Eklöf
034f4171a4
doc: foot.1: use tab for indentation 2022-01-27 18:54:38 +01:00
Daniel Eklöf
49a2f4a9e6
Merge branch 'document-ansi-colors' 2022-01-27 18:49:54 +01:00
Daniel Eklöf
90b906d159
doc: foot.1: add URL mode bindings to the list of default keyboard shortcuts 2022-01-27 18:45:53 +01:00
Daniel Eklöf
701d5fe5a4
doc: foot.1: add “enter URL mode” shortcut 2022-01-27 18:45:41 +01:00
Daniel Eklöf
ef855aa132
doc: foot.1: add the new XF86{Copy,Paste} key bindings 2022-01-27 18:45:22 +01:00
Daniel Eklöf
27017cf0b3
Merge branch 'support-copy-paste-keybindings-by-default' 2022-01-25 21:41:07 +01:00
Mark Stosberg
6d76bb0f32 config: support Copy and Paste keycodes by default
These work as expected and don't interfere with anything else.

They are useful on the increasing number of keyboards with custom
firmware. The keycodes enable using the same key combination
for terminals as other apps.

For example: by holding down a layer-switching key with a thumb, the
Copy and Paste key codes can be assigned to the C and V keys on a secondary
layer, making for a natural universal copy/paste key combination.
2022-01-25 15:27:58 -05:00
Felix Lechner
f5bb885978 Fix typo in manual page for foot.ini(5). 2022-01-20 10:41:27 -08:00
Mark Stosberg
0777d3b35f doc: document the 8 ANSI escape codes. 2022-01-15 14:36:45 -05:00
Daniel Eklöf
add530e66d
dcs: implement DECRQSS
This patch adds support for DECRQSS (request Selection or Setting),
for the following sub-queries:

* DECSTBM   Set Top and Bottom Margins
* SGR       Set Graphic Rendition
* DECSCUSR  Set Cursor Style

Closes #798
2022-01-14 13:52:41 +01:00
Daniel Eklöf
49a8c7fc76
doc: foot.1: XTGETTCAP 2022-01-14 13:45:23 +01:00