mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-06-13 14:33:17 -04:00
Add educational note
This commit is contained in:
parent
4bf60d0fbc
commit
383a7a550b
1 changed files with 87 additions and 114 deletions
201
README.md
201
README.md
|
|
@ -6,7 +6,6 @@ The fast, lightweight and minimalistic Wayland terminal emulator.
|
||||||
|
|
||||||
[](https://repology.org/project/foot/versions)
|
[](https://repology.org/project/foot/versions)
|
||||||
|
|
||||||
|
|
||||||
## Index
|
## Index
|
||||||
|
|
||||||
1. [Features](#features)
|
1. [Features](#features)
|
||||||
|
|
@ -16,17 +15,17 @@ The fast, lightweight and minimalistic Wayland terminal emulator.
|
||||||
1. [Why the name 'foot'?](#why-the-name-foot)
|
1. [Why the name 'foot'?](#why-the-name-foot)
|
||||||
1. [Fonts](#fonts)
|
1. [Fonts](#fonts)
|
||||||
1. [Shortcuts](#shortcuts)
|
1. [Shortcuts](#shortcuts)
|
||||||
1. [Keyboard](#keyboard)
|
1. [Keyboard](#keyboard)
|
||||||
1. [Normal mode](#normal-mode)
|
1. [Normal mode](#normal-mode)
|
||||||
1. [Scrollback search](#scrollback-search)
|
1. [Scrollback search](#scrollback-search)
|
||||||
1. [Mouse](#mouse)
|
1. [Mouse](#mouse)
|
||||||
1. [Touchscreen](#touchscreen)
|
1. [Touchscreen](#touchscreen)
|
||||||
1. [Server (daemon) mode](#server-daemon-mode)
|
1. [Server (daemon) mode](#server-daemon-mode)
|
||||||
1. [URLs](#urls)
|
1. [URLs](#urls)
|
||||||
1. [Shell integration](#shell-integration)
|
1. [Shell integration](#shell-integration)
|
||||||
1. [Current working directory](#current-working-directory)
|
1. [Current working directory](#current-working-directory)
|
||||||
1. [Jumping between prompts](#jumping-between-prompts)
|
1. [Jumping between prompts](#jumping-between-prompts)
|
||||||
1. [Piping last command's output](#piping-last-command-s-output)
|
1. [Piping last command's output](#piping-last-command-s-output)
|
||||||
1. [Alt/meta](#alt-meta)
|
1. [Alt/meta](#alt-meta)
|
||||||
1. [Backspace](#backspace)
|
1. [Backspace](#backspace)
|
||||||
1. [Keypad](#keypad)
|
1. [Keypad](#keypad)
|
||||||
|
|
@ -38,57 +37,52 @@ The fast, lightweight and minimalistic Wayland terminal emulator.
|
||||||
1. [Code of Conduct](#code-of-conduct)
|
1. [Code of Conduct](#code-of-conduct)
|
||||||
1. [Bugs](#bugs)
|
1. [Bugs](#bugs)
|
||||||
1. [Contact](#contact)
|
1. [Contact](#contact)
|
||||||
1. [IRC](#irc)
|
1. [IRC](#irc)
|
||||||
1. [Mastodon](#mastodon)
|
1. [Mastodon](#mastodon)
|
||||||
1. [Sponsoring/donations](#sponsoring-donations)
|
1. [Sponsoring/donations](#sponsoring-donations)
|
||||||
1. [License](#license)
|
1. [License](#license)
|
||||||
|
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
* Fast (see [benchmarks](doc/benchmark.md), and
|
- Fast (see [benchmarks](doc/benchmark.md), and
|
||||||
[performance](https://codeberg.org/dnkl/foot/wiki/Performance))
|
[performance](https://codeberg.org/dnkl/foot/wiki/Performance))
|
||||||
* Lightweight, in dependencies, on-disk and in-memory
|
- Lightweight, in dependencies, on-disk and in-memory
|
||||||
* Wayland native
|
- Wayland native
|
||||||
* DE agnostic
|
- DE agnostic
|
||||||
* Server/daemon mode
|
- Server/daemon mode
|
||||||
* User configurable font fallback
|
- User configurable font fallback
|
||||||
* On-the-fly font resize
|
- On-the-fly font resize
|
||||||
* On-the-fly DPI font size adjustment
|
- On-the-fly DPI font size adjustment
|
||||||
* Scrollback search
|
- Scrollback search
|
||||||
* Keyboard driven URL detection
|
- Keyboard driven URL detection
|
||||||
* Color emoji support
|
- Color emoji support
|
||||||
* IME (via `text-input-v3`)
|
- IME (via `text-input-v3`)
|
||||||
* Multi-seat
|
- Multi-seat
|
||||||
* True Color (24bpp)
|
- True Color (24bpp)
|
||||||
* [Styled and colored underlines](https://sw.kovidgoyal.net/kitty/underlines/)
|
- [Styled and colored underlines](https://sw.kovidgoyal.net/kitty/underlines/)
|
||||||
* [Synchronized Updates](https://gitlab.freedesktop.org/terminal-wg/specifications/-/merge_requests/2) support
|
- [Synchronized Updates](https://gitlab.freedesktop.org/terminal-wg/specifications/-/merge_requests/2) support
|
||||||
* [Sixel image support](https://en.wikipedia.org/wiki/Sixel)
|
- [Sixel image support](https://en.wikipedia.org/wiki/Sixel)
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
# Installing
|
# Installing
|
||||||
|
|
||||||
See [INSTALL.md](INSTALL.md).
|
See [INSTALL.md](INSTALL.md).
|
||||||
|
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
**foot** can be configured by creating a file
|
**foot** can be configured by creating a file
|
||||||
`$XDG_CONFIG_HOME/foot/foot.ini` (defaulting to
|
`$XDG_CONFIG_HOME/foot/foot.ini` (defaulting to
|
||||||
`~/.config/foot/foot.ini`). A template for that can usually be found
|
`~/.config/foot/foot.ini`). A template for that can usually be found
|
||||||
in `/etc/xdg/foot/foot.ini` or
|
in `/etc/xdg/foot/foot.ini` or
|
||||||
[here](https://codeberg.org/dnkl/foot/src/branch/master/foot.ini).
|
[here](https://codeberg.org/dnkl/foot/src/branch/master/foot.ini).
|
||||||
|
|
||||||
Further information can be found in foot's man page `foot.ini(5)`.
|
Further information can be found in foot's man page `foot.ini(5)`.
|
||||||
|
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
See the [wiki](https://codeberg.org/dnkl/foot/wiki#user-content-troubleshooting)
|
See the [wiki](https://codeberg.org/dnkl/foot/wiki#user-content-troubleshooting)
|
||||||
|
|
||||||
|
|
||||||
## Why the name 'foot'?
|
## Why the name 'foot'?
|
||||||
|
|
||||||
I'm bad at names. Most of my projects usually start out as _foo
|
I'm bad at names. Most of my projects usually start out as _foo
|
||||||
|
|
@ -105,7 +99,6 @@ As a side note, if you pronounce the _foo_ part of _foot_ the same way
|
||||||
you pronounce _foobar_, then _foot_ sounds a lot like the Swedish word
|
you pronounce _foobar_, then _foot_ sounds a lot like the Swedish word
|
||||||
_fot_, which incidentally means (you guessed it) _foot_.
|
_fot_, which incidentally means (you guessed it) _foot_.
|
||||||
|
|
||||||
|
|
||||||
## Fonts
|
## Fonts
|
||||||
|
|
||||||
**foot** supports all fonts that can be loaded by _freetype_,
|
**foot** supports all fonts that can be loaded by _freetype_,
|
||||||
|
|
@ -119,18 +112,16 @@ fallback fonts to use.
|
||||||
|
|
||||||
This also means you can configure _each_ fallback font individually;
|
This also means you can configure _each_ fallback font individually;
|
||||||
you want _that_ fallback font to use _this_ size, and you want that
|
you want _that_ fallback font to use _this_ size, and you want that
|
||||||
_other_ fallback font to be _italic_? No problem!
|
_other_ fallback font to be _italic_? No problem!
|
||||||
|
|
||||||
If a glyph cannot be found in _any_ of the user configured fallback
|
If a glyph cannot be found in _any_ of the user configured fallback
|
||||||
fonts, _then_ fontconfig's list is used.
|
fonts, _then_ fontconfig's list is used.
|
||||||
|
|
||||||
|
|
||||||
## Shortcuts
|
## Shortcuts
|
||||||
|
|
||||||
These are the default shortcuts. See `man foot.ini` and the example
|
These are the default shortcuts. See `man foot.ini` and the example
|
||||||
`foot.ini` to see how these can be changed.
|
`foot.ini` to see how these can be changed.
|
||||||
|
|
||||||
|
|
||||||
### Keyboard
|
### Keyboard
|
||||||
|
|
||||||
#### Normal mode
|
#### Normal mode
|
||||||
|
|
@ -161,25 +152,24 @@ These are the default shortcuts. See `man foot.ini` and the example
|
||||||
|
|
||||||
<kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>n</kbd>
|
<kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>n</kbd>
|
||||||
: Spawn a new terminal. If the shell has been [configured to emit the
|
: Spawn a new terminal. If the shell has been [configured to emit the
|
||||||
OSC 7 escape
|
OSC 7 escape
|
||||||
sequence](https://codeberg.org/dnkl/foot/wiki#user-content-spawning-new-terminal-instances-in-the-current-working-directory),
|
sequence](https://codeberg.org/dnkl/foot/wiki#user-content-spawning-new-terminal-instances-in-the-current-working-directory),
|
||||||
the new terminal will start in the current working directory.
|
the new terminal will start in the current working directory.
|
||||||
|
|
||||||
<kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>o</kbd>
|
<kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>o</kbd>
|
||||||
: Enter URL mode, where all currently visible URLs are tagged with a
|
: Enter URL mode, where all currently visible URLs are tagged with a
|
||||||
jump label with a key sequence that will open the URL.
|
jump label with a key sequence that will open the URL.
|
||||||
|
|
||||||
<kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>u</kbd>
|
<kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>u</kbd>
|
||||||
: Enter Unicode input mode.
|
: Enter Unicode input mode.
|
||||||
|
|
||||||
<kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>z</kbd>
|
<kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>z</kbd>
|
||||||
: Jump to the previous, currently not visible, prompt. Requires [shell
|
: Jump to the previous, currently not visible, prompt. Requires [shell
|
||||||
integration](https://codeberg.org/dnkl/foot/wiki#user-content-jumping-between-prompts).
|
integration](https://codeberg.org/dnkl/foot/wiki#user-content-jumping-between-prompts).
|
||||||
|
|
||||||
<kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>x</kbd>
|
<kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>x</kbd>
|
||||||
: Jump to the next prompt. Requires [shell
|
: Jump to the next prompt. Requires [shell
|
||||||
integration](https://codeberg.org/dnkl/foot/wiki#user-content-jumping-between-prompts).
|
integration](https://codeberg.org/dnkl/foot/wiki#user-content-jumping-between-prompts).
|
||||||
|
|
||||||
|
|
||||||
#### Scrollback search
|
#### Scrollback search
|
||||||
|
|
||||||
|
|
@ -191,12 +181,12 @@ These are the default shortcuts. See `man foot.ini` and the example
|
||||||
|
|
||||||
<kbd>ctrl</kbd>+<kbd>w</kbd>
|
<kbd>ctrl</kbd>+<kbd>w</kbd>
|
||||||
: Extend current selection (and thus the search criteria) to the end
|
: Extend current selection (and thus the search criteria) to the end
|
||||||
of the word, or the next word if currently at a word separating
|
of the word, or the next word if currently at a word separating
|
||||||
character.
|
character.
|
||||||
|
|
||||||
<kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>w</kbd>
|
<kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>w</kbd>
|
||||||
: Same as <kbd>ctrl</kbd>+<kbd>w</kbd>, except that the only word
|
: Same as <kbd>ctrl</kbd>+<kbd>w</kbd>, except that the only word
|
||||||
separating characters are whitespace characters.
|
separating characters are whitespace characters.
|
||||||
|
|
||||||
<kbd>ctrl</kbd>+<kbd>v</kbd>, <kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>v</kbd>, <kbd>ctrl</kbd>+<kbd>y</kbd>, <kbd>XF86Paste</kbd>
|
<kbd>ctrl</kbd>+<kbd>v</kbd>, <kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>v</kbd>, <kbd>ctrl</kbd>+<kbd>y</kbd>, <kbd>XF86Paste</kbd>
|
||||||
: Paste from clipboard into the search buffer.
|
: Paste from clipboard into the search buffer.
|
||||||
|
|
@ -209,8 +199,7 @@ These are the default shortcuts. See `man foot.ini` and the example
|
||||||
|
|
||||||
<kbd>return</kbd>
|
<kbd>return</kbd>
|
||||||
: Finish the search and copy the current match to the primary
|
: Finish the search and copy the current match to the primary
|
||||||
selection
|
selection
|
||||||
|
|
||||||
|
|
||||||
### URL mode
|
### URL mode
|
||||||
|
|
||||||
|
|
@ -220,25 +209,24 @@ These are the default shortcuts. See `man foot.ini` and the example
|
||||||
<kbd>escape</kbd>, <kbd>ctrl</kbd>+<kbd>c</kbd>, <kbd>ctrl</kbd>+<kbd>g</kbd>, <kbd>ctrl</kbd>+<kbd>d</kbd>
|
<kbd>escape</kbd>, <kbd>ctrl</kbd>+<kbd>c</kbd>, <kbd>ctrl</kbd>+<kbd>g</kbd>, <kbd>ctrl</kbd>+<kbd>d</kbd>
|
||||||
: Exit URL mode without launching any URLs
|
: Exit URL mode without launching any URLs
|
||||||
|
|
||||||
|
|
||||||
### Mouse
|
### Mouse
|
||||||
|
|
||||||
<kbd>left</kbd> - **single-click**
|
<kbd>left</kbd> - **single-click**
|
||||||
: Drag to select; when released, the selected text is copied to the
|
: Drag to select; when released, the selected text is copied to the
|
||||||
_primary_ selection. This feature is **disabled** when client has
|
_primary_ selection. This feature is **disabled** when client has
|
||||||
enabled _mouse tracking_.
|
enabled _mouse tracking_.
|
||||||
: Holding <kbd>shift</kbd> enables selection in mouse tracking enabled
|
: Holding <kbd>shift</kbd> enables selection in mouse tracking enabled
|
||||||
clients.
|
clients.
|
||||||
: Holding <kbd>ctrl</kbd> will create a block selection.
|
: Holding <kbd>ctrl</kbd> will create a block selection.
|
||||||
|
|
||||||
<kbd>left</kbd> - **double-click**
|
<kbd>left</kbd> - **double-click**
|
||||||
: Selects the _word_ (separated by spaces, period, comma, parenthesis
|
: Selects the _word_ (separated by spaces, period, comma, parenthesis
|
||||||
etc) under the pointer. Hold <kbd>ctrl</kbd> to select everything
|
etc) under the pointer. Hold <kbd>ctrl</kbd> to select everything
|
||||||
under the pointer up to, and until, the next space characters.
|
under the pointer up to, and until, the next space characters.
|
||||||
|
|
||||||
<kbd>left</kbd> - **triple-click**
|
<kbd>left</kbd> - **triple-click**
|
||||||
: Selects the everything between enclosing quotes, or the entire row
|
: Selects the everything between enclosing quotes, or the entire row
|
||||||
if not inside a quote.
|
if not inside a quote.
|
||||||
|
|
||||||
<kbd>left</kbd> - **quad-click**
|
<kbd>left</kbd> - **quad-click**
|
||||||
: Selects the entire row.
|
: Selects the entire row.
|
||||||
|
|
@ -248,12 +236,12 @@ These are the default shortcuts. See `man foot.ini` and the example
|
||||||
|
|
||||||
<kbd>right</kbd>
|
<kbd>right</kbd>
|
||||||
: Extend current selection. Clicking immediately extends the
|
: Extend current selection. Clicking immediately extends the
|
||||||
selection, while hold-and-drag allows you to interactively resize
|
selection, while hold-and-drag allows you to interactively resize
|
||||||
the selection.
|
the selection.
|
||||||
|
|
||||||
<kbd>ctrl</kbd>+<kbd>right</kbd>
|
<kbd>ctrl</kbd>+<kbd>right</kbd>
|
||||||
: Extend the current selection, but force it to be character wise,
|
: Extend the current selection, but force it to be character wise,
|
||||||
rather than depending on the original selection mode.
|
rather than depending on the original selection mode.
|
||||||
|
|
||||||
<kbd>wheel</kbd>
|
<kbd>wheel</kbd>
|
||||||
: Scroll up/down in history
|
: Scroll up/down in history
|
||||||
|
|
@ -261,7 +249,6 @@ These are the default shortcuts. See `man foot.ini` and the example
|
||||||
<kbd>ctrl</kbd>+<kbd>wheel</kbd>
|
<kbd>ctrl</kbd>+<kbd>wheel</kbd>
|
||||||
: Increase/decrease font size
|
: Increase/decrease font size
|
||||||
|
|
||||||
|
|
||||||
### Touchscreen
|
### Touchscreen
|
||||||
|
|
||||||
<kbd>tap</kbd>
|
<kbd>tap</kbd>
|
||||||
|
|
@ -270,8 +257,7 @@ These are the default shortcuts. See `man foot.ini` and the example
|
||||||
<kbd>drag</kbd>
|
<kbd>drag</kbd>
|
||||||
: Scrolls up/down in history.
|
: Scrolls up/down in history.
|
||||||
: Holding for a while before dragging (time delay can be configured)
|
: Holding for a while before dragging (time delay can be configured)
|
||||||
emulates mouse dragging with left button held.
|
emulates mouse dragging with left button held.
|
||||||
|
|
||||||
|
|
||||||
## Server (daemon) mode
|
## Server (daemon) mode
|
||||||
|
|
||||||
|
|
@ -333,7 +319,6 @@ the clipboard. It is unbound by default.
|
||||||
Jump label colors, the URL underline color, and the letters used in
|
Jump label colors, the URL underline color, and the letters used in
|
||||||
the jump label key sequences can be configured.
|
the jump label key sequences can be configured.
|
||||||
|
|
||||||
|
|
||||||
## Shell integration
|
## Shell integration
|
||||||
|
|
||||||
### Current working directory
|
### Current working directory
|
||||||
|
|
@ -348,7 +333,6 @@ scripted to do this, if they do not support it natively. See the
|
||||||
[wiki](https://codeberg.org/dnkl/foot/wiki#user-content-spawning-new-terminal-instances-in-the-current-working-directory)
|
[wiki](https://codeberg.org/dnkl/foot/wiki#user-content-spawning-new-terminal-instances-in-the-current-working-directory)
|
||||||
for details.
|
for details.
|
||||||
|
|
||||||
|
|
||||||
### Jumping between prompts
|
### Jumping between prompts
|
||||||
|
|
||||||
Foot can move the current viewport to focus prompts of already
|
Foot can move the current viewport to focus prompts of already
|
||||||
|
|
@ -407,7 +391,6 @@ See the
|
||||||
[wiki](https://codeberg.org/dnkl/foot/wiki#user-content-piping-last-command-s-output)
|
[wiki](https://codeberg.org/dnkl/foot/wiki#user-content-piping-last-command-s-output)
|
||||||
for details, and examples for other shells
|
for details, and examples for other shells
|
||||||
|
|
||||||
|
|
||||||
## Alt/meta
|
## Alt/meta
|
||||||
|
|
||||||
By default, foot prefixes _Meta characters_ with ESC. This corresponds
|
By default, foot prefixes _Meta characters_ with ESC. This corresponds
|
||||||
|
|
@ -424,7 +407,6 @@ This can also be disabled programmatically with `rmm` (_reset meta
|
||||||
mode_, `\E[?1034l`), and enabled again with `smm` (_set meta mode_,
|
mode_, `\E[?1034l`), and enabled again with `smm` (_set meta mode_,
|
||||||
`\E[?1034h`).
|
`\E[?1034h`).
|
||||||
|
|
||||||
|
|
||||||
## Backspace
|
## Backspace
|
||||||
|
|
||||||
Foot transmits DEL (`^?`) on <kbd>backspace</kbd>. This corresponds to
|
Foot transmits DEL (`^?`) on <kbd>backspace</kbd>. This corresponds to
|
||||||
|
|
@ -440,7 +422,6 @@ described above **cannot** be changed.
|
||||||
Finally, pressing <kbd>alt</kbd> will prefix the transmitted byte with
|
Finally, pressing <kbd>alt</kbd> will prefix the transmitted byte with
|
||||||
ESC.
|
ESC.
|
||||||
|
|
||||||
|
|
||||||
## Keypad
|
## Keypad
|
||||||
|
|
||||||
By default, <kbd>Num Lock</kbd> overrides the run-time configuration
|
By default, <kbd>Num Lock</kbd> overrides the run-time configuration
|
||||||
|
|
@ -459,7 +440,6 @@ again with `\E[?1035h`).
|
||||||
When disabled, the keypad sends custom escape sequences instead of
|
When disabled, the keypad sends custom escape sequences instead of
|
||||||
numbers, when in _application_ mode.
|
numbers, when in _application_ mode.
|
||||||
|
|
||||||
|
|
||||||
## DPI and font size
|
## DPI and font size
|
||||||
|
|
||||||
Font sizes are apparently a complex thing. Many applications use a
|
Font sizes are apparently a complex thing. Many applications use a
|
||||||
|
|
@ -503,7 +483,6 @@ distance**, the font size will appear to be the same, at all times.
|
||||||
_Note_: if you configure **pixelsize**, rather than **size**, then DPI
|
_Note_: if you configure **pixelsize**, rather than **size**, then DPI
|
||||||
changes will **not** change the font size. Pixels are always pixels.
|
changes will **not** change the font size. Pixels are always pixels.
|
||||||
|
|
||||||
|
|
||||||
### Fractional scaling on Wayland
|
### Fractional scaling on Wayland
|
||||||
|
|
||||||
For a long time, there was no **true** support for _fractional
|
For a long time, there was no **true** support for _fractional
|
||||||
|
|
@ -520,42 +499,40 @@ allows compositors to tell applications the _actual_ scaling
|
||||||
factor. Applications can then scale the image using a _viewport_
|
factor. Applications can then scale the image using a _viewport_
|
||||||
object, instead of setting a scale factor on the raw pixel buffer.
|
object, instead of setting a scale factor on the raw pixel buffer.
|
||||||
|
|
||||||
|
|
||||||
## Supported OSCs
|
## Supported OSCs
|
||||||
|
|
||||||
OSC, _Operating System Command_, are escape sequences that interacts
|
OSC, _Operating System Command_, are escape sequences that interacts
|
||||||
with the terminal emulator itself. Foot implements the following OSCs:
|
with the terminal emulator itself. Foot implements the following OSCs:
|
||||||
|
|
||||||
* `OSC 0` - change window icon + title (but only title is actually
|
- `OSC 0` - change window icon + title (but only title is actually
|
||||||
supported)
|
supported)
|
||||||
* `OSC 2` - change window title
|
- `OSC 2` - change window title
|
||||||
* `OSC 4` - change color palette
|
- `OSC 4` - change color palette
|
||||||
* `OSC 7` - report CWD (see [shell integration](#shell-integration))
|
- `OSC 7` - report CWD (see [shell integration](#shell-integration))
|
||||||
* `OSC 8` - hyperlink
|
- `OSC 8` - hyperlink
|
||||||
* `OSC 9` - desktop notification
|
- `OSC 9` - desktop notification
|
||||||
* `OSC 10` - change (default) foreground color
|
- `OSC 10` - change (default) foreground color
|
||||||
* `OSC 11` - change (default) background color
|
- `OSC 11` - change (default) background color
|
||||||
* `OSC 12` - change cursor color
|
- `OSC 12` - change cursor color
|
||||||
* `OSC 17` - change highlight (selection) background color
|
- `OSC 17` - change highlight (selection) background color
|
||||||
* `OSC 19` - change highlight (selection) foreground color
|
- `OSC 19` - change highlight (selection) foreground color
|
||||||
* `OSC 22` - set the xcursor (mouse) pointer
|
- `OSC 22` - set the xcursor (mouse) pointer
|
||||||
* `OSC 52` - copy/paste clipboard data
|
- `OSC 52` - copy/paste clipboard data
|
||||||
* `OSC 104` - reset color palette
|
- `OSC 104` - reset color palette
|
||||||
* `OSC 110` - reset default foreground color
|
- `OSC 110` - reset default foreground color
|
||||||
* `OSC 111` - reset default background color
|
- `OSC 111` - reset default background color
|
||||||
* `OSC 112` - reset cursor color
|
- `OSC 112` - reset cursor color
|
||||||
* `OSC 117` - reset highlight background color
|
- `OSC 117` - reset highlight background color
|
||||||
* `OSC 119` - reset highlight foreground color
|
- `OSC 119` - reset highlight foreground color
|
||||||
* `OSC 133` - [shell integration](#shell-integration)
|
- `OSC 133` - [shell integration](#shell-integration)
|
||||||
* `OSC 176` - set app ID
|
- `OSC 176` - set app ID
|
||||||
* `OSC 555` - flash screen (**foot specific**)
|
- `OSC 555` - flash screen (**foot specific**)
|
||||||
* `OSC 777` - desktop notification (only the `;notify` sub-command of
|
- `OSC 777` - desktop notification (only the `;notify` sub-command of
|
||||||
OSC 777 is supported.)
|
OSC 777 is supported.)
|
||||||
|
|
||||||
See the **foot-ctlseqs**(7) man page for a complete list of supported
|
See the **foot-ctlseqs**(7) man page for a complete list of supported
|
||||||
control sequences.
|
control sequences.
|
||||||
|
|
||||||
|
|
||||||
## Programmatically checking if running in foot
|
## Programmatically checking if running in foot
|
||||||
|
|
||||||
Foot does **not** set any environment variables that can be used to
|
Foot does **not** set any environment variables that can be used to
|
||||||
|
|
@ -589,7 +566,6 @@ which it will reply with `\EP>|foot(version)\E\\`. Version is
|
||||||
e.g. "1.8.2" for a regular release, or "1.8.2-36-g7db8e06f" for a git
|
e.g. "1.8.2" for a regular release, or "1.8.2-36-g7db8e06f" for a git
|
||||||
build.
|
build.
|
||||||
|
|
||||||
|
|
||||||
# XTGETTCAP
|
# XTGETTCAP
|
||||||
|
|
||||||
`XTGETTCAP` is an escape sequence initially introduced by XTerm, and
|
`XTGETTCAP` is an escape sequence initially introduced by XTerm, and
|
||||||
|
|
@ -604,9 +580,9 @@ foot's terminfo on remote hosts you SSH into.
|
||||||
XTerm's implementation (as of XTerm-370) only supports querying key
|
XTerm's implementation (as of XTerm-370) only supports querying key
|
||||||
(as in keyboard keys) capabilities, and three custom capabilities:
|
(as in keyboard keys) capabilities, and three custom capabilities:
|
||||||
|
|
||||||
* `TN` - terminal name
|
- `TN` - terminal name
|
||||||
* `Co` - number of colors (alias for the `colors` capability)
|
- `Co` - number of colors (alias for the `colors` capability)
|
||||||
* `RGB` - number of bits per color channel (different semantics from
|
- `RGB` - number of bits per color channel (different semantics from
|
||||||
the `RGB` capability in file-based terminfo definitions!).
|
the `RGB` capability in file-based terminfo definitions!).
|
||||||
|
|
||||||
Kitty has extended this, and also supports querying all integer and
|
Kitty has extended this, and also supports querying all integer and
|
||||||
|
|
@ -622,11 +598,11 @@ multi-capability queries slightly differently, compared to XTerm.
|
||||||
XTerm will send a single DCS reply, with `;`-separated
|
XTerm will send a single DCS reply, with `;`-separated
|
||||||
capability/value pairs. There are a couple of issues with this:
|
capability/value pairs. There are a couple of issues with this:
|
||||||
|
|
||||||
* The success/fail flag in the beginning of the response is always `1`
|
- The success/fail flag in the beginning of the response is always `1`
|
||||||
(success), unless the very **first** queried capability is invalid.
|
(success), unless the very **first** queried capability is invalid.
|
||||||
* XTerm will not respond **at all** to an invalid capability, unless
|
- XTerm will not respond **at all** to an invalid capability, unless
|
||||||
it's the first one in the `XTGETTCAP` query.
|
it's the first one in the `XTGETTCAP` query.
|
||||||
* XTerm will end the response at the first invalid capability.
|
- XTerm will end the response at the first invalid capability.
|
||||||
|
|
||||||
In other words, if you send a large multi-capability query, you will
|
In other words, if you send a large multi-capability query, you will
|
||||||
only get responses up to, but not including, the first invalid
|
only get responses up to, but not including, the first invalid
|
||||||
|
|
@ -645,18 +621,15 @@ In addition to queries for terminfo entries, the `query-os-name` query
|
||||||
will be answered with a response of the form `uname=$(uname -s)`,
|
will be answered with a response of the form `uname=$(uname -s)`,
|
||||||
where `$(uname -s)` is the name of the OS foot was compiled for.
|
where `$(uname -s)` is the name of the OS foot was compiled for.
|
||||||
|
|
||||||
|
|
||||||
# Credits
|
# Credits
|
||||||
|
|
||||||
* [Ordoviz](https://codeberg.org/Ordoviz), for designing and
|
- [Ordoviz](https://codeberg.org/Ordoviz), for designing and
|
||||||
contributing foot's [logo](icons/hicolor/48x48/apps/foot.png).
|
contributing foot's [logo](icons/hicolor/48x48/apps/foot.png).
|
||||||
|
|
||||||
|
|
||||||
# Code of Conduct
|
# Code of Conduct
|
||||||
|
|
||||||
See [Code of Conduct](CODE_OF_CONDUCT.md)
|
See [Code of Conduct](CODE_OF_CONDUCT.md)
|
||||||
|
|
||||||
|
|
||||||
# Bugs
|
# Bugs
|
||||||
|
|
||||||
Please report bugs to https://codeberg.org/dnkl/foot/issues
|
Please report bugs to https://codeberg.org/dnkl/foot/issues
|
||||||
|
|
@ -674,7 +647,6 @@ The report should contain the following:
|
||||||
with symbols.
|
with symbols.
|
||||||
- Steps to reproduce. The more details the better.
|
- Steps to reproduce. The more details the better.
|
||||||
|
|
||||||
|
|
||||||
# Contact
|
# Contact
|
||||||
|
|
||||||
## IRC
|
## IRC
|
||||||
|
|
@ -684,21 +656,22 @@ channel on
|
||||||
[irc.libera.chat](https://web.libera.chat/?channels=#foot). Logs are
|
[irc.libera.chat](https://web.libera.chat/?channels=#foot). Logs are
|
||||||
available at https://libera.irclog.whitequark.org/foot.
|
available at https://libera.irclog.whitequark.org/foot.
|
||||||
|
|
||||||
|
|
||||||
## Mastodon
|
## Mastodon
|
||||||
|
|
||||||
Every now and then I post foot related updates on
|
Every now and then I post foot related updates on
|
||||||
[@dnkl@social.treehouse.systems](https://social.treehouse.systems/@dnkl)
|
[@dnkl@social.treehouse.systems](https://social.treehouse.systems/@dnkl)
|
||||||
|
|
||||||
|
|
||||||
# Sponsoring/donations
|
# Sponsoring/donations
|
||||||
|
|
||||||
* Liberapay: https://liberapay.com/dnkl
|
- Liberapay: https://liberapay.com/dnkl
|
||||||
* GitHub Sponsors: https://github.com/sponsors/dnkl
|
- GitHub Sponsors: https://github.com/sponsors/dnkl
|
||||||
|
|
||||||
[](https://liberapay.com/dnkl/donate)
|
[](https://liberapay.com/dnkl/donate)
|
||||||
|
|
||||||
|
|
||||||
# License
|
# License
|
||||||
|
|
||||||
Foot is released under the [MIT license](LICENSE).
|
Foot is released under the [MIT license](LICENSE).
|
||||||
|
|
||||||
|
## Educational Note
|
||||||
|
|
||||||
|
This repository is used for learning Git workflow.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue