2019-08-08 22:35:55 +02:00
|
|
|
# foot
|
|
|
|
|
|
2019-08-17 12:42:28 +02:00
|
|
|
**foot** is a fast Wayland terminal emulator.
|
2019-08-08 22:35:55 +02:00
|
|
|
|
|
|
|
|
|
2019-08-29 22:55:49 +02:00
|
|
|
## Features
|
|
|
|
|
|
|
|
|
|
* Fast (**TODO** insert benchmark results here)
|
|
|
|
|
* Wayland native
|
|
|
|
|
* DE agnostic
|
|
|
|
|
* User configurable font fallback
|
|
|
|
|
* Scrollback search
|
|
|
|
|
* Color emoji support
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Non-features
|
|
|
|
|
|
|
|
|
|
This is a non-exhaustive list of things some people might consider
|
|
|
|
|
being important features (i.e. _"must-haves"_), that are unlikely to
|
|
|
|
|
ever be supported by foot.
|
|
|
|
|
|
|
|
|
|
* Tabs
|
|
|
|
|
* Multiple windows
|
|
|
|
|
|
|
|
|
|
|
2019-08-08 22:35:55 +02:00
|
|
|
## Requirements
|
|
|
|
|
|
2019-08-17 12:42:28 +02:00
|
|
|
### Running
|
|
|
|
|
|
2019-08-08 22:35:55 +02:00
|
|
|
* fontconfig
|
|
|
|
|
* freetype
|
2019-08-16 22:11:22 +02:00
|
|
|
* pixman
|
2019-08-08 22:35:55 +02:00
|
|
|
* wayland (_client_ and _cursor_ libraries)
|
|
|
|
|
* xkbcommon
|
|
|
|
|
|
|
|
|
|
|
2019-08-17 12:42:28 +02:00
|
|
|
### Building
|
|
|
|
|
|
|
|
|
|
In addition to the dev variant of the packages above, you need:
|
|
|
|
|
|
|
|
|
|
* meson
|
|
|
|
|
* ninja
|
|
|
|
|
* wayland protocols
|
2019-08-17 12:47:18 +02:00
|
|
|
* ncurses
|
2019-08-17 12:42:28 +02:00
|
|
|
* scdoc
|
|
|
|
|
|
|
|
|
|
|
2019-08-08 22:35:55 +02:00
|
|
|
## Fonts
|
|
|
|
|
|
|
|
|
|
**foot** supports all fonts that can be loaded by freetype, including
|
2019-08-17 12:51:40 +02:00
|
|
|
**bitmap** fonts and **color emoji** fonts.
|
2019-08-08 22:35:55 +02:00
|
|
|
|
|
|
|
|
Foot uses its own font fallback mechanism, rather than relying on
|
|
|
|
|
fontconfig's fallback. This is because fontconfig is quite bad at
|
|
|
|
|
selecting fallback fonts suitable for a terminal (i.e. monospaced
|
|
|
|
|
fonts).
|
|
|
|
|
|
|
|
|
|
Instead, foot allows you to specify a font fallback list, where _each_
|
|
|
|
|
font can be configured independently (for example, you can configure
|
|
|
|
|
the size for each font individually).
|
|
|
|
|
|
2019-08-11 15:55:23 +02:00
|
|
|
If a glyph cannot be found in _any_ of the user configured fallback
|
|
|
|
|
fonts, _then_ fontconfig's list is used.
|
|
|
|
|
|
2019-08-08 22:35:55 +02:00
|
|
|
|
|
|
|
|
## Shortcuts
|
|
|
|
|
|
|
|
|
|
At the moment, all shortcuts are hard coded and cannot be changed. It
|
|
|
|
|
is **not** possible to define new key bindings.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Keyboard
|
|
|
|
|
|
2019-08-29 22:46:26 +02:00
|
|
|
* <kbd>shift</kbd>+<kbd>page up</kbd>/<kbd>page down</kbd>
|
|
|
|
|
|
2019-08-29 22:49:33 +02:00
|
|
|
Scroll up/down in history
|
2019-08-29 22:48:25 +02:00
|
|
|
|
|
|
|
|
* <kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>c</kbd>
|
|
|
|
|
|
2019-08-29 22:49:33 +02:00
|
|
|
Copy selected text to the _clipboard_
|
2019-08-29 22:48:25 +02:00
|
|
|
|
|
|
|
|
* <kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>v</kbd>
|
|
|
|
|
|
2019-08-29 22:49:33 +02:00
|
|
|
Paste from _clipboard_
|
2019-08-29 22:48:25 +02:00
|
|
|
|
|
|
|
|
* <kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>r</kbd>
|
|
|
|
|
|
2019-08-29 22:49:33 +02:00
|
|
|
Start a scrollback search
|
2019-08-27 21:20:24 +02:00
|
|
|
|
|
|
|
|
While doing a scrollback search, the following shortcuts are
|
|
|
|
|
available:
|
|
|
|
|
|
2019-08-29 22:48:25 +02:00
|
|
|
* <kbd>ctrl</kbd>+<kbd>r</kbd>
|
|
|
|
|
|
2019-08-29 22:49:33 +02:00
|
|
|
Search for next match
|
2019-08-29 22:48:25 +02:00
|
|
|
|
|
|
|
|
* <kbd>escape</kbd>
|
|
|
|
|
|
2019-08-29 22:49:33 +02:00
|
|
|
Cancel the search
|
2019-08-29 22:48:25 +02:00
|
|
|
|
|
|
|
|
* <kbd>ctrl</kbd>+<kbd>g</kbd>
|
2019-08-08 22:35:55 +02:00
|
|
|
|
2019-08-29 22:50:35 +02:00
|
|
|
Cancel the search (same as <kbd>escape</kbd>)
|
2019-08-29 22:48:25 +02:00
|
|
|
|
|
|
|
|
* <kbd>return</kbd>
|
|
|
|
|
|
2019-08-29 22:49:33 +02:00
|
|
|
Finish the search and put the current match to the primary selection
|
2019-08-08 22:35:55 +02:00
|
|
|
|
|
|
|
|
### Mouse
|
|
|
|
|
|
2019-08-29 22:48:25 +02:00
|
|
|
* <kbd>left</kbd> - **single-click**
|
|
|
|
|
|
2019-08-29 22:49:33 +02:00
|
|
|
Drag to select; when released, the selected text is copied to the
|
2019-08-29 22:48:25 +02:00
|
|
|
_primary_ selection. Note that this feature is normally disabled
|
|
|
|
|
whenever the client has enabled mouse tracking, but can be forced by
|
2019-08-29 22:50:35 +02:00
|
|
|
holding <kbd>shift</kbd>.
|
2019-08-29 22:48:25 +02:00
|
|
|
|
|
|
|
|
* <kbd>left</kbd> - **double-click**
|
|
|
|
|
|
2019-08-29 22:49:33 +02:00
|
|
|
Selects the _word_ (separated by spaces, period, comma, parenthesis
|
2019-08-29 22:50:35 +02:00
|
|
|
etc) under the pointer. Hold <kbd>ctrl</kbd> to select everything
|
|
|
|
|
under the pointer up to, and until, the next space characters.
|
2019-08-29 22:48:25 +02:00
|
|
|
|
|
|
|
|
* <kbd>left</kbd> - **triple-click**
|
|
|
|
|
|
2019-08-29 22:49:33 +02:00
|
|
|
Selects the entire row
|
2019-08-29 22:48:25 +02:00
|
|
|
|
|
|
|
|
* <kbd>middle</kbd>
|
|
|
|
|
|
2019-08-29 22:49:33 +02:00
|
|
|
Paste from _primary_ selection
|