From Gentoo Wiki
Jump to:navigation Jump to:search
This page contains changes which are not marked for translation.
This article is a stub. Please help out by expanding it - how to get started.

Foot is a minimalist terminal emulator for Wayland written in C.


As of the time of writing, the Gentoo package for foot doesn't support pgo because of inconsistent/poor results, see bug #873625, in contrast with the upstream benchmarks. [1]

USE flags

USE flags for gui-apps/foot Fast, lightweight and minimalistic Wayland terminal emulator

grapheme-clustering Enable grapheme clustering support
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)


root #emerge --ask gui-apps/foot


Foot's user configuration is found at ~/.config/foot/foot.ini. The file and directory won't be created by default. A template can be found in /etc/xdg/foot/foot.ini or from the upstream repository.

Detailed information about all config parameters can be viewed with man foot.ini

To create the directory for the foot config and copy the example:

user $mkdir ~/.config/foot
user $cp /etc/xdg/foot/foot.ini .config/foot/foot.ini

Font/text configuration

Foot has several font configuration options, the font parameter can be used to set the terminal font. font-bold, font-italic, and font-bold-italic will automatically try to use variants of the primary font, but can be overridden. letter-spacing, horizontal-letter-offset, vertical-letter-offset, underline-offset, box-drawings-uses-font-glyphs, and dpi-aware options are also available.

FILE ~/.config/foot/foot.iniSet the font to 8pt Inconsolata

Server mode configuration

Foot supports the operation of a daemon which can be used to reduce overhead. The server handles all wayland communication, VT parsing, and rendering. Additionally, fonts are cached in a single thread, reducing overall memory usage.

When using the daemon, all clients input and output are multiplexed on a single thread. If a single terminal is very busy, that could cause the rest of slow down as well, this can be mitigated by adding more worker threads. Additionally, if the server crashes all clients will crash.
FILE ~/.config/foot/foot.iniIncrease the number of worker threads to use for rendering

Foot can be started as a server by running foot -s, this can be added to a window manager startup script to enable it upon login:

FILE ~/.config/sway/configStart Foot server with Sway if foot-client is the chosen terminal
set $term footclient
exec foot -s

Once the server has been started, clients can be started with footclient.

If the configuration file has been updated, the server must be restarted before the configuration is reloaded, this will end all client sessions.

Scrollback configuration

The number of lines saved in the scrollback can be adjusted with:

FILE ~/.config/foot/configIncrease the scrollback length to 16384
FILE ~/.config/foot/configShow scrollback positions as a percentage
Foot will automatically round the lines value up to the nearest power of 2

Color configuration

Colors can be specified with the foreground, background, regular{0-7}, and bright{0-7} parameters.

The order is Black, Red, Green, Yellow, Blue, Magenta, Cyan, White.

FILE ~/.config/foot/foot.iniDark+

regular0=000000 # black
regular1=cd3131 # red
regular2=0dbc79 # green
regular3=e5e510 # yellow
regular4=2472c8 # blue
regular5=bc3fbc # magenta
regular6=11a8cd # cyan
regular7=e5e5e5 # white

bright0=666666 # bright black
bright1=f14c4c # bright red
bright2=23d18b # bright green
bright3=f5f543 # bright yellow
bright4=3b8eea # bright blue
bright5=d670d6 # bright magenta
bright6=29b8db # bright cyan
bright7=e5e5e5 # bright white

Example Configuration

Minimal Configuration

FILE ~/.config/foot/foot.iniFoot minimal configuration
font=Source Code Pro:size=10

This minimal configuration sets the font to Source Code Pro with a size of 10. The window will open with 60, 190 character long, lines. All configuration options can be found on foot's source repository.[2]



root #emerge --ask --depclean --verbose gui-apps/foot


Terminal break after SSHing

If a SSH connection is made to a destination that does not have the foot terminfo files [1]. This can be corrected in more than one way.

SSH with TERM set

This can be done multiple ways, by running export TERM=xterm-256color once logged in, or starting the SSH session like TERM=xterm-256color ssh

user $TERM=xterm-256color ssh larry@server

Install terminfo files on destination

This is very distro-dependent, but this info should be part of the sys-libs/ncurses:

root #emerge --ask sys-libs/ncurses

See also

  • Wayland Desktop Landscape — various desktop related packages for Wayland
  • Terminal emulator — emulates a video terminal within another display architecture (e.g. in X).
  • Wayland — a replacement for the X11 window system protocol and architecture with the aim to be easier to develop, extend, and maintain

External resources