The old baseline calculation was copy-pasted to a couple of places, and also assumed that the font's height was equal to ascent+descent. While this is typically true, it isn't necessarily so. Now, we assume that height >= ascent+descent, and then position the baseline in "center" (but adjusted for the descent). |
||
|---|---|---|
| doc | ||
| scripts | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| base64.c | ||
| base64.h | ||
| commands.c | ||
| commands.h | ||
| config.c | ||
| config.h | ||
| csi.c | ||
| csi.h | ||
| font.c | ||
| font.h | ||
| foot.desktop | ||
| foot.info | ||
| footrc | ||
| grid.c | ||
| grid.h | ||
| input.c | ||
| input.h | ||
| keymap.h | ||
| LICENSE | ||
| log.c | ||
| log.h | ||
| main.c | ||
| meson.build | ||
| osc.c | ||
| osc.h | ||
| PKGBUILD | ||
| README.md | ||
| render.c | ||
| render.h | ||
| search.c | ||
| search.h | ||
| selection.c | ||
| selection.h | ||
| shm.c | ||
| shm.h | ||
| slave.c | ||
| slave.h | ||
| stride.h | ||
| terminal.c | ||
| terminal.h | ||
| tllist.h | ||
| tokenize.c | ||
| tokenize.h | ||
| vt.c | ||
| vt.h | ||
foot
foot is a fast Wayland terminal emulator.
Requirements
Running
- fontconfig
- freetype
- pixman
- wayland (client and cursor libraries)
- xkbcommon
Building
In addition to the dev variant of the packages above, you need:
- meson
- ninja
- wayland protocols
- ncurses
- scdoc
Fonts
foot supports all fonts that can be loaded by freetype, including bitmap fonts and color emoji fonts.
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).
If a glyph cannot be found in any of the user configured fallback fonts, then fontconfig's list is used.
Shortcuts
At the moment, all shortcuts are hard coded and cannot be changed. It is not possible to define new key bindings.
Keyboard
shift+page up/down- scroll up/down in historyctrl+shift+c- copy selected text to the clipboardctrl+shift+v- paste from clipboardctrl+shift+r- start a scrollback search
While doing a scrollback search, the following shortcuts are available:
ctrl+r- search for next matchesc- cancel the searchctrl+g- cancel the search (same asesc)return- finish the search and put the current match to the primary selection
Mouse
left- single-click: drag to select; when released, the selected text is copied to the primary selection. Note that this feature is normally disabled whenever the client has enabled mouse tracking, but can be forced by holdingshift.left- double-click: selects the word (separated by spaces, period, comma, parenthesis etc) under the pointer. Holdctrlto select everything under the pointer up to, and until, the next space characters.left- triple-click: selects the entire rowmiddle- paste from primary selection