foot
Foot is a minimalist terminal emulator for Wayland written in C.
Installation
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) |
Emerge
root #
emerge --ask gui-apps/foot
Configuration
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.
font=Inconsolata:size=8
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.
workers=32
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:
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:
[scrollback]
lines=16384
[scrollback]
indicator-format=percentage
Foot will automatically round the
lines
value up to the nearest power of 2Color 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
.
[colors]
foreground=cccccc
background=1e1e1e
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
font=Source Code Pro:size=10
initial-window-size-chars=190x60
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]
Removal
Unmerge
root #
emerge --ask --depclean --verbose gui-apps/foot
Troubleshooting
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
- List of software for Wayland — 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