Ghostboard pixel

Foot: The Wayland Terminal Emulator Most Linux Users Don’t Know About

Foot is a minimal Wayland-native terminal emulator for Linux that focuses on speed and simplicity. A hidden gem worth exploring.
Warp Terminal

There is simply no shortage of terminals for Linux. And yet we keep on seeing new terminals coming up almost every year.

The regular terminal works but then there are terminals like Kitty and Ghostty that provide modern features and customization.

In the same regard, foot is also a good terminal worth having a look. It is not a new project. It has been an active player for sevaeral years and yet not many Linux user have heard of it.

Foot terminal

Foot is a fast and lightweight Wayland-native terminal emulator. Older terminal emulators were designed around X11 and later gained Wayland support, while Foot is a terminal emulator designed specifically for Wayland from the beginning. Modern GPU terminals like Kitty or Alacritty instead support both X11 and Wayland as first-class backends.

Let me show you some of the features of Foot terminal that provide significant value to the user.

Sixel image support

With the Sixel image support, terminals can display actual images. Foot supports the sixel protocol and thus you can view real images in it without extra effort.

What's the point? Well, if you are using terminal tools like fastfetch, you can display real images in terminal instead of the usual ASCII renderings. Look at the image below for example:

Foot Terminal with Fastfetch logo displayed.
Foot Terminal Image Support

Also, terminal file managers like Yazi can show image file previews in a preview pane with the image support.

Imagine you executed a command and it produced a long output. Normally, you cannot search in the command output displayed on the screen.

Foot supports scrollback search. If you have a huge scrollback of thousands of lines, the ability to search through it is a game changer.

0:00
/0:32

Using the Scrollback search feature.

Press CTRL+SHIFT+R to search a scrollback history. You will get a search prompt at the bottom-right of your screen. Enter search string and you can see that results are live updating.

Keyboard-driven URL detection

Some terminal output may contain URLs. For example, I use hyperlinks in markdown notes and preview them using Glow. In this case, I can press the shortcut CTRL+SHIFT+O to highlight links.

When you press the shortcut, you can see that small alphabetic characters are attached near the links. Press the associated character, and that link is opened in your default web browser.

πŸ—’οΈ
I use Qutebrowser as my main browser. It also follows a similar hyperlink navigation, so everything feels cohesive.

You can press the ESC key to quit the URL mode.

A clip showing opening links using URL mode in Foot terminal emulator.

Server-daemon mode

In server-daemon mode, one process hosts multiple windows. It offers reduced memory footprint, reduced startup time, etc.

But do remember, if the main process crashes, all windows go down with it.

To get server mode in Foot, start the foot server along with desktop login. That is, you need to auto-start the command:

foot --server

We have a dedicated guide on how to auto-start applications and commands at desktop login.

Once done, instead of opening new terminal instances using foot, use footclient.

πŸ’‘
You can assign the terminal opening shortcut to the command footclient.

Fallback font configuration

The user can configure which fallback font to use. If you use a lot of glyphs in the terminal, you can configure the fallback fonts as per need.

Also, it allows you to set one fallback font with a different style and size than another one.

Installing foot terminal

πŸ’‘
Foot should be available in the official repositories of most distributions. Please check your distro's package manager.

On Ubuntu and Debian-based distros, please use this command:

sudo apt install foot

On Fedora-based distros, use:

sudo dnf install foot

On Arch-based distros, use the pacman command:

sudo pacman -Syu foot

Basic foot configuration

Foot expects a configuration file at ~/.config/foot/foot.ini. When you install Foot, a default configuration will be added at /etc/xdg/foot/foot.ini.

So, you don't need to start from scratch but you still need to do a few things to get started with foot. First, create a config directory for Foot:

mkdir -p ~/.config/foot

Now, copy this default configuration to your local config location and start editing.

cp /etc/xdg/foot/foot.ini ~/.config/foot/
nano ~/.config/foot/foot.ini

How to know about modules

You cannot write a configuration if you don't know what modules are available for you to customize. Don't worry! Foot provides a concise description of available modules in a separate man page. Open a terminal and use the command:

man foot.ini

Read the page once before starting to configure.

Options that you may require

In this section, we will see some of the useful configuration keys.

Change the Shell

The shell option sets a different shell to the Foot Terminal without altering the default system shell.

The syntax is shell = /usr/bin/zsh. You can use the which command to find the path to the shell to use.

Change Font

Changing font is one of the most important parts of any customization. And Foot provides the font- variables for the purpose:

  • font = IBM Plex Mono:size=14: Sets the font to IBM Plex Mono and sets the size to 14.
  • font = Ubuntu Mono:wieght=bold:size=14: Sets the bold font to Ubuntu Mono and sets the size to 14.
  • font = JetBrains Mono:weight=bold:slant:italic:size=14: set the bold-italic font to JetBrains Mono and size set to 14.

Include another config

Splitting up the configuration will enable you to maintain and modify it easily in a later stage. And this is the best approach for theme customization.

For example, let's see how you can set a Catppuccin Mocha theme to the foot terminal.

Visit the Catppuccin Foot theme GitHub repository. Go to the themes/catppuccin-mocha.ini file and download it using the download button at the top of the page, as shown in the screenshot below.

Now, create a directory with the command:

mkdir -p ~/.config/foot/themes/

Paste the downloaded catppuccin-mocha.ini file inside this directory. Assuming you have downloaded the file to the ~/Downloads directory, use the command:

cp ~/Downloads/catppuccin-mocha.ini ~/.config/foot/themes/

Now, we need a little troubleshooting. With the latest update, Foot color schemes need a [colors-dark] module, and the Catppuccin comes with [colors]. Just open the file:

nano ~/.config/foot/themes/catppuccin-mocha.ini

And edit the [colors] to [colors-dark] and save it.

One more step. Open the foot.ini config file in your favorite editor:

nano ~/.config/foot/foot.ini

Add the below line to the top of the file:

include ~/.config/foot/themes/catppuccin-mocha.ini

Also, comment out all the blocks, including and under [colors], [colors-dark] inside it the foot.init file.

That's it. Reopen Foot Terminal and enjoy the new themes.

I let you try it and discover more of its features.

About the author
Sreenath

Sreenath

Linux tinkerer by day, Lord of the Rings fanatic by night. When I'm not busy conquering the command line, you can find me kicking back and watching some football while quoting JRR Tolkien

Become a Better Linux User

With the FOSS Weekly Newsletter, you learn useful Linux tips, discover applications, explore new distros and stay updated with the latest from Linux world

itsfoss happy penguin

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to It's FOSS.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.