Rio is a GPU-accelerated terminal emulator written in Rust that gives you built-in tabs, splits, and a command palette. So you get most of what people use tmux for, without the extra layer. It also installs on any modern Linux distribution in about a minute.

You’ve probably switched terminal emulators a few times and ended up going back to the default. Not because the new one was bad, but because you SSH into a server, run htop, and get an unknown terminal type error.

That’s usually when the new terminal gets blamed and uninstalled, even though the problem isn’t really the terminal itself.

The issue is a missing terminfo entry, and it can affect modern terminals that use their own terminal type instead of xterm. Rio is one of them. The fix takes just two commands, and it’s worth doing before you run into the problem.

So, in this article, we’ll install Rio and set up the terminfo entry first. Then, we’ll push that same entry to the servers you connect to, so the problem doesn’t follow you around the network.

After that, we’ll look at the parts you actually installed Rio for: the config file, fonts, themes, splits without tmux, and the command palette. We’ll also cover what Rio still can’t do, because it’s useful to know the limitations before deciding whether to switch.

Rio reached version 0.4.5 in May 2026, and the project has been moving quickly, so some older tutorials may no longer match the current version. Everything here was tested with Rio 0.4.5 on Ubuntu 26.04 and RHEL 10, and the commands work on any modern Linux distribution.

TecMint Weekly Newsletter
Get the Learn Linux 7 Days Crash Course free when you join 34,000+ Linux professionals reading every Thursday.
Check your email for a magic link to get started.
Something went wrong. Please try again.

What Rio Terminal Actually Does Differently

Rio draws the terminal grid on your GPU instead of relying on the CPU. On Linux, it uses Vulkan by default, which helps keep scrolling through large log files smooth, even when the system is under load.

The other big difference is that tabs and splits are built directly into Rio. You don’t need a separate session multiplexer running underneath, so a split is simply another pane within the same terminal window instead of a tmux session you have to manage and reattach to.

Rio also includes a command palette. Press Ctrl+Shift+p to open it and search for Rio actions by name. It’s a quick way to find a key binding you’ve forgotten without having to dig through the documentation.

If Rio’s GPU rendering finally fixed your laggy scrollback, share this with someone on your team who’s still dealing with a stuttering terminal.

Install Rio Terminal on Linux

Rio publishes .deb and .rpm packages with each GitHub release, and some Linux distributions also include it in their own repositories. Start by downloading the package that matches your system from the Rio releases page.

Throughout this article, anything inside angle brackets is a placeholder that you replace with your own value. For example, should be replaced with the release number you downloaded, such as 0.4.5.

On Ubuntu/Debian:

sudo apt install ./rio__amd64.deb

On RHEL/Rocky Linux:

sudo dnf install ./rio-.x86_64.rpm

The sudo runs the command with root privileges, which is required because the package needs to install files outside your home directory. Without it, you’ll get a Permission denied error.

If you’re using Arch Linux, Rio is available from the Extra repository:

sudo pacman -S rio

If your distribution doesn’t package Rio, you can also install it through Flatpak:

flatpak install flathub com.rioterm.Rio

Once the installation is complete, verify it with:

rio --version

This should print the version you installed. If you get rio: command not found, the binary may not be in your $PATH. This can happen with manual installations and when using Flatpak from the terminal.

Running Rio on Ubuntu and want the rest of your desktop set up the same way? The Ubuntu Handbook covers Ubuntu system setup from start to finish.

Fix the Terminfo Error Before It Bites You

Rio sets TERM=rio, and programs use that value to look up your terminal’s capabilities in the terminfo database. If the rio entry is missing, commands like clear may stop working, arrow keys can print escape codes, and vim may refuse to open.

Check whether the entry already exists:

infocmp rio

If it works, you’ll see a capability list starting with rio|Rio Terminal. If infocmp reports that it can’t open the terminfo file, the entry isn’t installed and you’ll need to add it yourself.

What you need to do depends on your distribution. Debian 13 and later, along with Ubuntu 24.04 and later, include Rio’s entry in the ncurses-term package.

RPM packages include the terminfo files directly. Ubuntu 22.04 and older Debian releases don’t, because Rio’s .deb package deliberately leaves the terminfo entry out to avoid conflicts with system packages.

Here’s the manual fix:

curl -o rio.terminfo https://raw.githubusercontent.com/raphamorim/rio/main/misc/rio.terminfo sudo tic -xe xterm-rio,rio rio.terminfo rm rio.terminfo

Here’s what the middle command does:

  • tic is the terminfo compiler. It converts the text description into the binary format that ncurses uses.
  • -x preserves user-defined capabilities that aren’t part of the standard terminfo set.
  • -e xterm-rio,rio tells tic to compile only these two entries instead of everything in the file.
  • sudo is needed because the compiled entry is written under /usr/share/terminfo.

Run infocmp rio again to confirm the entry is now available. Then restart Rio, because programs read the TERM value when they start.

If the terminfo fix saved you an hour of confused debugging, pass it along to someone whose new terminal keeps breaking vim.

The SSH Gotcha Nobody Warns You About

Installing the terminfo entry locally fixes your laptop, but it doesn’t fix the servers you SSH into. That’s because TERM=rio is sent with the SSH connection, and those servers may not have a rio entry installed.

You’ll notice it when you log in and htop refuses to start with an unknown terminal type error. As a quick workaround for a single session, you can use:

TERM=xterm-256color ssh @

For a server you use regularly, it’s better to copy the actual Rio terminfo entry to the server once:

infocmp -x rio | ssh @ -- tic -x -

Here, infocmp -x rio outputs your local Rio terminfo description, ssh sends it to the remote host, and the final - tells tic to compile the entry from standard input.

Once that’s done, the server knows what rio means, so your colors, keys, and terminal applications should work normally.

If you regularly work with remote Linux servers, the SSH Course on Pro TecMint is a practical way to learn everything from basic connections to useful SSH commands and real-world server management.

Run Rio From the Command Line

Rio has a small command-line interface that’s useful when you want to launch a terminal already pointed at a specific task. Start by checking the available options:

rio --help

You’ll see output like this:

A hardware-accelerated GPU terminal emulator powered by WebGPU, focusing to run in desktops and browsers

Usage: rio [OPTIONS]

Options:
  -e, --command <COMMAND>...       Command and args to execute (must be last argument)
  -w, --working-dir <WORKING_DIR>  Start the shell in the specified working directory
      --write-config [<PATH>]      Writes the config to a given path or the default location
      --log-file                   Writes the logs to a file inside the config directory
      --title-placeholder <TITLE>  Start window with specified title
  -h, --help                       Print help
  -V, --version                    Print version

Here’s what the main options do:

  • -e or --command runs a command and closes the window when it finishes, so it must be the last argument.
  • -w or --working-dir starts the shell in the directory you specify. This is useful for a desktop launcher for a project you work on regularly.
  • --write-config creates a default configuration file, so you can edit the actual settings instead of remembering the option names.
  • --title-placeholder sets the initial window title, which is useful if you keep multiple Rio windows open for different servers.

Generate the configuration file now, since we’ll edit it in the next section:

rio --write-config

This creates ~/.config/rio/config.toml with the default settings filled in. If rendering ever misbehaves, you can start Rio with debug logging RIO_LOG_LEVEL=debug rio. This prints information about what the renderer is doing as Rio starts.

Configure Rio With config.toml

Rio reads ~/.config/rio/config.toml and automatically re-renders when you save the file. That means you can keep the config open in one split and see your changes take effect immediately.

There’s one easy mistake to avoid. Any setting without a section header must appear before all [section] headers. Otherwise, TOML treats that setting as part of the section above it, and Rio may ignore it.

For example, putting theme = "dracula" under [editor] won’t work.

Here’s a good starting configuration:

theme = "dracula"
line-height = 1.4
scrollback-history-limit = 50000

[fonts]
size = 14

[fonts.regular]
family = "JetBrains Mono"

[window]
opacity = 0.95
blur = true

[navigation]
mode = "Tab"
use-split = true

The theme setting expects a matching dracula.toml file inside ~/.config/rio/themes. You can find more than 250 ready-made themes in the iTerm2-Color-Schemes repository.

Increasing scrollback-history-limit to 50,000 lets you access much more previous terminal output, but it also uses more memory per pane. That’s usually a reasonable trade-off on a workstation, but something to consider on a 1 GB VPS.

If this config saved you a trip through 90 documentation anchors, share it with the next person setting up their terminal.

Splits, Tabs, and the Command Palette

Splits are enabled by default on Linux, and the keyboard shortcuts are simple enough to learn quickly. Ctrl+Shift+r splits the terminal to the right, Ctrl+Shift+d splits it down, and Ctrl+Shift+] and Ctrl+Shift+[ move between panes.

For tabs, use Ctrl+Shift+t to open a new tab and Ctrl+Shift+w to close one. You can jump directly to a numbered tab with Ctrl+Shift+1 through Ctrl+Shift+9. To resize a split, use Ctrl+Shift+Alt together with an arrow key.

If you already use tmux or zellij, set mode = "Plain" under [navigation]. This disables Rio’s own tab-related key bindings, so they don’t conflict with your multiplexer shortcuts.

Where Rio Falls Short

Rio isn’t a drop-in replacement for every setup, so it’s worth knowing where it falls short before you switch. On Linux and BSD, the audio bell requires Rio to be compiled with the audio feature.

Distribution packages leave this feature out, so a standard installation gives you a visual bell or no bell at all.

The RetroArch shader filters shown in many Rio demos also require the Webgpu backend and a build with the wgpu Cargo feature. The native Vulkan backend used by default on Linux doesn’t support the filter chain.

GPU rendering also depends on working graphics drivers. Inside a VM, or on a system with broken GPU drivers, Rio may open with a blank or corrupted window. In that case, you can try use-cpu = true under [renderer]. This uses Rio’s experimental CPU rasterizer, but it drops image overlays and GPU filters.

If the limitations section stopped you from filing a bug that wasn’t a bug, share this with someone about to hit the same wall.
Conclusion

You’ve installed Rio, set up the terminfo entry that keeps vim and htop working, pushed that entry to a remote server over SSH, and configured fonts, themes, scrollback, and splits. That covers most of the setup people often give up on halfway through.

The one thing to do now is run infocmp rio on the server you SSH into most often. If it returns an error, use the infocmp -x rio | ssh command from earlier to copy your local entry to the server. That removes one of the most common problems when using a modern terminal with older systems.

What made you try a new terminal emulator in the first place: better scrollback performance, splits without tmux, or something your default terminal was missing? Let me know in the comments. I read them all.

If this article helped, with someone on your team.
TecMint Weekly Newsletter
Get the Learn Linux 7 Days Crash Course free when you join 34,000+ Linux professionals reading every Thursday.
Check your email for a magic link to get started.
Something went wrong. Please try again.

Similar Posts