|foot(1)||General Commands Manual||foot(1)|
foot - Wayland terminal emulator
foot [OPTIONS] <command> [COMMAND OPTIONS]
All trailing (non-option) arguments are treated as a command, and its arguments, to execute (instead of the default shell).
foot is a Wayland terminal emulator. Running it without arguments will start a new terminal window with your default shell.
You can override the default shell by appending a custom command to the foot command line
The first font is the primary font. The remaining fonts are fallback fonts that will be used whenever a glyph cannot be found in the primary font.
The fallback fonts are searched in the order they appear. If a glyph cannot be found in any of the fallback fonts, the dynamic fallback list from fontconfig (for the primary font) is searched.
This saves some memory since for example fonts and glyph caches can be shared between the terminals.
It also saves upstart time since the config has already been loaded and parsed, and most importantly, fonts have already been loaded (and their glyph caches are likely to already have been populated).
Each terminal will have its own rendering threads, but all Wayland communication, as well as input/output to the shell, is multiplexed in the main thread. Thus, this mode might result in slightly worse performance when multiple terminals are under heavy load.
Also be aware that should one terminal crash, it will take all the others with it.
The default path is $XDG_RUNTIME_DIR/foot-$WAYLAND_DISPLAY.sock.
If $XDG_RUNTIME_DIR is not set, the default path is instead /tmp/foot.sock.
If $XDG_RUNTIME_DIR is set, but $WAYLAND_DISPLAY is not, the default path is $XDG_RUNTIME_DIR/foot.sock.
Note that if you change the default, you will also need to use the --server-socket option in footclient(1) and point it to your custom socket path.
This option can only be used in combination with -s,--server.
The following keyboard shortcuts are available.
Note that these are just the defaults; they can be changed in foot.ini(5).
shift+page up/page down
Holding ctrl will create a block selection.
The font is specified in FontConfig syntax. That is, a colon-separated list of font name and font options.
By default, foot prefixes meta characters with ESC. This corresponds to XTerm's metaSendsEscape option set to true.
This can be disabled programmatically with E[?1036l (and enabled again with E[?1036h).
When disabled, foot will instead set the 8:th bit of meta character and then UTF-8 encode it. This corresponds to XTerm's eightBitMeta option set to true.
This can also be disabled programmatically with rmm (Reset Meta Mode, E[?1034l), and enabled again with smm (Set Meta Mode, E[?1034h).
Foot transmits DEL (^?) on backspace. This corresponds to XTerm's backarrowKey option set to false, and to DECBKM being reset.
To instead transmit BS (^H), press ctrl+backspace.
Note that foot does not implement DECBKM, and that the behavior described above cannot be changed.
Finally, pressing alt will prefix the transmitted byte with ESC.
By default, Num Lock overrides the run-time configuration keypad mode; when active, the keypad is always considered to be in numerical mode. This corresponds to XTerm's numLock option set to true.
In this mode, the keypad keys always sends either numbers (Num Lock is active) or cursor movement keys (up, down, left, right, page up, page down etc).
This can be disabled programmatically with E[?1035l (and enabled again with E[?1035h).
When disabled, the keypad sends custom escape sequences instead of numbers, when in application mode.
Please report bugs to https://codeberg.org/dnkl/foot/issues
The report should contain the following:
#foot-terminal on chat.freenode.net