# foot **foot** is a fast Wayland terminal emulator. ## 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 ## 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/page down Scroll up/down in history * ctrl+shift+c Copy selected text to the _clipboard_ * ctrl+shift+v Paste from _clipboard_ * ctrl+shift+r Start a scrollback search While doing a scrollback search, the following shortcuts are available: * ctrl+r Search for next match * escape Cancel the search * ctrl+g Cancel the search (same as escape) * 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 holding shift. * left - **double-click** Selects the _word_ (separated by spaces, period, comma, parenthesis etc) under the pointer. Hold ctrl to select everything under the pointer up to, and until, the next space characters. * left - **triple-click** Selects the entire row * middle Paste from _primary_ selection