Terminal GuideTerminal Guide
foot icon

Foot

Terminal Emulators
Linux
C

Lightweight and fast Wayland-native terminal emulator.

Official Website

Features

Wayland NativeFastLightweightSixel SupportServer Mode

Installation

APT (Debian/Ubuntu)
apt install foot
Pacman (Arch)
pacman -S foot
DNF (Fedora)
dnf install foot

Why 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.

Server Mode
# 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.service

Sixel Image Display

The Sixel graphics protocol allows you to display images in the terminal. Works with tools like imgcat, lsix, and viu.

Sixel Image Display
# 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 *.png

URL Detection and Opening

Foot automatically detects URLs in terminal output and can open them in a browser via click or keyboard shortcut.

URL Configuration
# 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 hints

Build from Source

Debian/Ubuntu

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 install

openSUSE

openSUSE
# Install with zypper
sudo zypper install foot

Official Repository

Check https://codeberg.org/dnkl/foot for source code and documentation.

Configuration and Customization

Configuration File Location

Configuration File
# 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

~/.config/foot/foot.ini (Basic)
# 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=10000

Color Scheme

Color Scheme (Tokyo Night)
# 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 white

Keybinding Configuration

Keybinding 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+s

Mouse Configuration

Mouse 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-3

Keyboard Shortcuts

ShortcutFunction
Ctrl+Shift+CCopy to clipboard
Ctrl+Shift+VPaste from clipboard
Ctrl+Shift+RStart search mode
Ctrl+Shift+UOpen URL mode
Ctrl+Shift+NOpen new window
Ctrl++ / Ctrl+=Increase font size
Ctrl+-Decrease font size
Ctrl+0Reset font size
Shift+Page Up/DownScroll by page
Middle ClickPaste primary selection

Tips

  • *Use Server Mode: When opening many terminals, usingfootserver significantly reduces memory consumption. Setting up auto-start with systemd is convenient.
  • *High-DPI Display: Setting dpi-aware=yes automatically 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. Callingfootclient via 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.
Written by Dai AokiPublished: 2026-01-20

Related Articles

Explore More