Foot
Lightweight and fast Wayland-native terminal emulator.
Official WebsiteFeatures
Installation
apt install footpacman -S footdnf install footWhy Use Foot?
Foot is a lightweight and fast terminal emulator designed exclusively for Wayland. It operates with minimal resources while featuring modern capabilities (Sixel images, server mode). As Wayland-native, it has no X11 overhead.
Wayland Native
Direct Wayland protocol support. No XWayland, achieving low latency and memory efficiency.
Ultra-Lightweight
Minimal dependencies. Low memory usage and fast startup. Ideal for embedded environments.
Server Mode
Use footserver to manage multiple terminal windows in a single process. Dramatically improves resource efficiency.
Sixel Support
Supports Sixel graphics protocol. Display images directly in the terminal.
Main Features
Server/Client Mode
Run footserver in the background and open new terminal windows withfootclient to dramatically reduce multi-window overhead.
# Start server mode
footserver &
# Open new window with client
footclient
# Open in specific directory
footclient --working-directory=/path/to/dir
# Execute specific command
footclient -- htop
# Manage server with systemd
systemctl --user enable foot-server.service
systemctl --user start foot-server.serviceSixel Image Display
The Sixel graphics protocol allows you to display images in the terminal. Works with tools like imgcat, lsix, and viu.
# Display image with viu (Sixel support)
# Install
cargo install viu
# Display image
viu image.png
# Thumbnail display with lsix (requires img2sixel)
# Install
sudo apt install libsixel-bin
# Display image
img2sixel image.png
# lsix script
# Install from https://github.com/hackerb9/lsix
lsix *.pngURL Detection and Opening
Foot automatically detects URLs in terminal output and can open them in a browser via click or keyboard shortcut.
# URL Detection Configuration (foot.ini)
[url]
# Enable URL detection
osc8-underline = url-mode
# Style when displaying URLs
[url.colors]
foreground = 1e88e5
background = none
# How to open URLs
launch = xdg-open ${url}
# URL Mode: Start with Ctrl+Shift+U
# Highlights URLs and allows selection via hintsBuild from Source
Debian/Ubuntu
# Build from source if you need the latest version
# Install dependencies
sudo apt install meson ninja-build pkg-config wayland-protocols \
libwayland-dev libfontconfig-dev libfreetype-dev libpixman-1-dev \
libfcft-dev libutf8proc-dev
# Get source and build
git clone https://codeberg.org/dnkl/foot.git
cd foot
meson setup build --buildtype=release
ninja -C build
sudo ninja -C build installopenSUSE
# Install with zypper
sudo zypper install footOfficial Repository
Check https://codeberg.org/dnkl/foot for source code and documentation.
Configuration and Customization
Configuration File Location
# Configuration file path
# ~/.config/foot/foot.ini
# Create configuration file
mkdir -p ~/.config/foot
touch ~/.config/foot/foot.ini
# Copy default configuration (for reference)
cp /usr/share/foot/foot.ini ~/.config/foot/Basic Configuration
# Basic Configuration
[main]
# Font configuration (size can be specified)
font=JetBrains Mono:size=12
# Font fallbacks
font-bold=JetBrains Mono:weight=bold:size=12
font-italic=JetBrains Mono:slant=italic:size=12
# DPI awareness
dpi-aware=yes
# Initial window size (in characters)
initial-window-size-chars=120x35
# Padding
pad=10x10
# Shell (uses system default if omitted)
shell=/bin/zsh
# Working directory
# working-directory=~
# Terminal title
title=foot
# Scrollback lines
scrollback-lines=10000Color Scheme
# Color Scheme Configuration
[colors]
# Foreground and background
foreground=c0caf5
background=1a1b26
# Selection colors
selection-foreground=c0caf5
selection-background=33467c
# Cursor
[cursor]
color=1a1b26 c0caf5
style=block
blink=yes
# Normal 16 colors
[colors]
regular0=15161e # black
regular1=f7768e # red
regular2=9ece6a # green
regular3=e0af68 # yellow
regular4=7aa2f7 # blue
regular5=bb9af7 # magenta
regular6=7dcfff # cyan
regular7=a9b1d6 # white
# Bright 16 colors
bright0=414868 # bright black
bright1=f7768e # bright red
bright2=9ece6a # bright green
bright3=e0af68 # bright yellow
bright4=7aa2f7 # bright blue
bright5=bb9af7 # bright magenta
bright6=7dcfff # bright cyan
bright7=c0caf5 # bright whiteKeybinding Configuration
# Keybinding Configuration
[key-bindings]
# Clipboard operations
clipboard-copy=Control+Shift+c XF86Copy
clipboard-paste=Control+Shift+v XF86Paste
# Scrolling
scrollback-up-page=Shift+Page_Up
scrollback-down-page=Shift+Page_Down
scrollback-up-line=Shift+Up
scrollback-down-line=Shift+Down
scrollback-home=Shift+Home
scrollback-end=Shift+End
# Search
search-start=Control+Shift+r
# Font size
font-increase=Control+plus Control+equal
font-decrease=Control+minus
font-reset=Control+0
# URL mode
show-urls-launch=Control+Shift+u
# New window (when using server mode)
spawn-terminal=Control+Shift+n
[search-bindings]
# Bindings within search mode
cancel=Escape Control+c
commit=Return
find-prev=Control+r
find-next=Control+sMouse Configuration
# Mouse Configuration
[mouse]
# Disable auto-copy on selection
hide-when-typing=yes
alternate-scroll-mode=yes
[mouse-bindings]
# Selection and paste
selection-override-modifiers=Shift
primary-paste=BTN_MIDDLE
select-begin=BTN_LEFT
select-begin-block=Control+BTN_LEFT
select-extend=BTN_RIGHT
select-extend-character-wise=Control+BTN_RIGHT
select-word=BTN_LEFT-2
select-word-whitespace=Control+BTN_LEFT-2
select-row=BTN_LEFT-3Keyboard Shortcuts
| Shortcut | Function |
|---|---|
Ctrl+Shift+C | Copy to clipboard |
Ctrl+Shift+V | Paste from clipboard |
Ctrl+Shift+R | Start search mode |
Ctrl+Shift+U | Open URL mode |
Ctrl+Shift+N | Open new window |
Ctrl++ / Ctrl+= | Increase font size |
Ctrl+- | Decrease font size |
Ctrl+0 | Reset font size |
Shift+Page Up/Down | Scroll by page |
Middle Click | Paste primary selection |
Tips
- *Use Server Mode: When opening many terminals, using
footserversignificantly reduces memory consumption. Setting up auto-start with systemd is convenient. - *High-DPI Display: Setting
dpi-aware=yesautomatically scales for HiDPI displays. - *Font Fallback: Specify multiple fonts separated by commas, and characters that the first font can't display will be shown with the next font.
- *Integration with Sway/i3: Works well with tiling window managers like Sway. Calling
footclientvia keybindings opens terminals quickly. - *X11 Environment: Foot is Wayland-only and won't work in X11 environments. If X11 is needed, consider Alacritty or Kitty.