# foot

> Lightweight Wayland-native terminal emulator with a server/client mode, Sixel support and few dependencies.

Language: C · License: MIT · Platforms: Linux · Config: ini

Features: inline images, configurable

- Repository: https://codeberg.org/dnkl/foot
- Page: https://www.trmn.sh/terminals/foot

## Overview

foot is a terminal emulator for Wayland on Linux, written in C. It is Wayland-native and not tied to any desktop environment, and it aims to stay lightweight in dependencies, disk use and memory. It suits people running a Wayland compositor who want a small, fast terminal and leave tabs and tiling to the compositor or a multiplexer.

By default each foot process is a single window. In server mode, started with `foot --server` (or through socket activation, with systemd user units included), one process hosts every window and `footclient` opens new ones. Windows then share fonts and the glyph cache, which reduces memory use and startup time. The cost is that all windows' input and output run on one thread, so a busy window slows the others, and a server crash closes every window. Each window still has its own rendering threads. foot does not use GPU rendering.

Configuration is an INI file at `~/.config/foot/foot.ini`, documented in the `foot.ini(5)` man page, and every key binding can be changed there. Fonts are any that FreeType can load, including bitmap and color emoji fonts, with per-font fallback settings and on-the-fly font resizing and DPI-based size adjustment. URL handling is keyboard-driven: Ctrl+Shift+O labels every visible URL with a key sequence that opens it, or copies it if you bind `show-urls-copy`.

Other features include scrollback search, Sixel images, true color, styled and colored underlines, synchronized updates, IME input via `text-input-v3`, and multi-seat support. With shell integration through OSC 7 and OSC 133, new windows open in the current directory, you can jump between prompts, and you can pipe the last command's output to another program. foot shapes individual grapheme clusters but not whole text runs, so programming-font ligatures are not supported.

## Alternatives

- [Windows Terminal](https://www.trmn.sh/terminals/windows-terminal.md): Microsoft's terminal for Windows that hosts PowerShell, cmd and WSL shells in tabs and panes, with GPU text rendering and JSON settings. (Windows, 105.3k stars)
- [Tabby](https://www.trmn.sh/terminals/tabby.md): Cross-platform Electron terminal with a built-in SSH, Telnet and serial client, saved connection profiles and a plugin system. (Linux/macOS/Windows, 75.3k stars)
- [Alacritty](https://www.trmn.sh/terminals/alacritty.md): Cross-platform OpenGL terminal emulator written in Rust, configured with a TOML file and leaving tabs and splits to a multiplexer like tmux. (Linux/macOS/Windows/BSD, 66.1k stars)
- [Warp](https://www.trmn.sh/terminals/warp.md): Terminal written in Rust with an IDE-style command editor, command output grouped into blocks, and built-in AI agents. (macOS/Linux/Windows, 65.8k stars)
- [Termux](https://www.trmn.sh/terminals/termux.md): Android terminal emulator and Linux environment that installs packages through its own apt repository, no root required. (Android, 64.0k stars)
- [Ghostty](https://www.trmn.sh/terminals/ghostty.md): Terminal emulator written in Zig with GPU rendering and a native UI on each platform: Swift/AppKit on macOS, GTK on Linux. (Linux/macOS, 63.3k stars)
- [Hyper](https://www.trmn.sh/terminals/hyper.md): Electron terminal built on HTML, CSS and JavaScript, themed and extended through npm plugins. (Linux/macOS/Windows, 44.8k stars)
- [Kitty](https://www.trmn.sh/terminals/kitty.md): GPU-rendered terminal written in C and Python, with its own graphics protocol, built-in tabs and splits, and scriptable 'kittens'. (Linux/macOS/BSD, 35.5k stars)

## Guides

- [Kitty Alternatives](https://www.trmn.sh/alternatives/kitty): Kitty alternatives: WezTerm, Ghostty, and Alacritty compared by platform, multiplexing, scripting and rendering, plus Rio, Contour, iTerm2 and foot.
- [Best Terminal Emulators for Linux](https://www.trmn.sh/best/terminal-emulators-for-linux): Best terminal emulators for Linux compared: Ghostty, kitty, foot, Alacritty, WezTerm, Konsole and Ptyxis, by rendering, splits and config.
- [Best Terminals with Inline Image Support](https://www.trmn.sh/best/terminals-with-image-support): Terminals that show images inline: kitty, WezTerm and Rio compared by protocol support (kitty graphics, Sixel, iTerm2) and platform.
- [Kitty vs foot](https://www.trmn.sh/compare/kitty-vs-foot): Kitty vs foot: GPU-rendered terminal with tabs, splits and kittens versus a small Wayland-only terminal with a server mode.

---

Canonical: https://www.trmn.sh/terminals/foot
