Rio
High-performance Rust terminal with WebGPU rendering.
Official WebsiteFeatures
Installation
brew install --cask riocargo install rioWhy Use Rio?
Rio is a high-speed terminal emulator written in Rust using WebGPU/WGPU. Modern GPU acceleration enables fast rendering with low CPU usage.
WebGPU Rendering
Uses cutting-edge WebGPU/WGPU technology. Smooth rendering even on high-resolution displays.
Fast and Low Resource
Built in Rust for quick startup. GPU offloading keeps CPU usage low even during heavy output.
TOML Configuration
Simple and readable TOML config files. Intuitive customization.
Font Ligatures
Full support for programming font ligatures. Code displays beautifully.
Main Features
Fast Rendering with WebGPU
Rio uses WGPU (Rust implementation of WebGPU) to render text. Compared to traditional CPU-based rendering, this enables faster and smoother display.
# Configure rendering backend
# Can be set in config.toml
[renderer]
# Available backends: "Automatic", "Vulkan", "Metal", "Dx12", "Dx11", "GL"
backend = "Automatic"
# Performance settings
performance = "High" # "Low", "High"
# VSync setting (prevents screen tearing)
disable-unfocused-render = falseTabs and Window Management
Rio provides native tab functionality to manage multiple shell sessions in a single window.
# Navigation Configuration
[navigation]
# Tab mode: "CollapsedTab", "TopTab", "BottomTab", "Breadcrumb", "Plain"
mode = "TopTab"
# Active tab highlight color
color-automation = []
# Window shortcuts
# Cmd+T / Ctrl+Shift+T: New tab
# Cmd+W / Ctrl+Shift+W: Close tab
# Cmd+1-9: Switch tabs
# Cmd+Shift+] / Cmd+Shift+[: Next/previous tabFont Settings and Ligatures
Supports font ligatures for programming fonts, so symbols like==, =>, and-> display beautifully.
# Font Configuration
[fonts]
family = "JetBrains Mono"
size = 16
# Font configuration for each style
[fonts.regular]
family = "JetBrains Mono"
style = "Normal"
weight = 400
[fonts.bold]
family = "JetBrains Mono"
style = "Normal"
weight = 700
[fonts.italic]
family = "JetBrains Mono"
style = "Italic"
weight = 400
[fonts.bold-italic]
family = "JetBrains Mono"
style = "Italic"
weight = 700Installation
macOS
# Install via Homebrew Cask
brew install --cask rio
# Or download dmg from official website
# https://github.com/raphamorim/rio/releasesWindows
# Install via winget
winget install raphamorim.rio
# Or download installer from official website
# https://github.com/raphamorim/rio/releasesLinux
# Arch Linux (AUR)
yay -S rio
# Fedora
sudo dnf copr enable jluttine/rio
sudo dnf install rio
# Build from source (Cargo)
cargo install rio
# or
cargo install --git https://github.com/raphamorim/rio.git rio
# AppImage
# Download AppImage from https://github.com/raphamorim/rio/releasesOfficial Website
Check https://raphamorim.io/rio/ for detailed documentation and download links.
Configuration and Customization
Configuration File Location
# Configuration file path
# macOS: ~/.config/rio/config.toml
# Linux: ~/.config/rio/config.toml
# Windows: %APPDATA%\rio\config.toml
# If config file doesn't exist, runs with default settings
# Create configuration file
mkdir -p ~/.config/rio
touch ~/.config/rio/config.tomlBasic Configuration
# Basic Configuration
[window]
width = 800
height = 600
mode = "Windowed" # "Maximized", "Fullscreen"
opacity = 1.0
blur = false
decorations = "Enabled" # "Disabled", "Transparent", "Buttonless"
[cursor]
shape = "Block" # "Block", "Underline", "Beam"
blinking = true
blinking-interval = 800
[shell]
# Specify shell (uses system default if omitted)
program = "/bin/zsh"
args = ["-l"]
# Working directory
working-dir = "~"Color Scheme
# Color Scheme Configuration
[colors]
background = "#1a1b26"
foreground = "#c0caf5"
cursor = "#c0caf5"
tabs = "#1a1b26"
tabs-active = "#7aa2f7"
selection-background = "#33467c"
selection-foreground = "#c0caf5"
# ANSI Colors
[colors.normal]
black = "#15161e"
red = "#f7768e"
green = "#9ece6a"
yellow = "#e0af68"
blue = "#7aa2f7"
magenta = "#bb9af7"
cyan = "#7dcfff"
white = "#a9b1d6"
[colors.bright]
black = "#414868"
red = "#f7768e"
green = "#9ece6a"
yellow = "#e0af68"
blue = "#7aa2f7"
magenta = "#bb9af7"
cyan = "#7dcfff"
white = "#c0caf5"Keybinding Configuration
# Customize Keybindings
[[bindings]]
key = "v"
mods = "super | shift"
action = "Paste"
[[bindings]]
key = "c"
mods = "super | shift"
action = "Copy"
[[bindings]]
key = "t"
mods = "super"
action = "CreateTab"
[[bindings]]
key = "w"
mods = "super"
action = "CloseTab"
[[bindings]]
key = "="
mods = "super"
action = "IncreaseFontSize"
[[bindings]]
key = "-"
mods = "super"
action = "DecreaseFontSize"Keyboard Shortcuts
| Shortcut | Function |
|---|---|
Cmd+T / Ctrl+Shift+T | Create new tab |
Cmd+W / Ctrl+Shift+W | Close tab |
Cmd+1-9 / Alt+1-9 | Switch to numbered tab |
Cmd+Shift+] | Next tab |
Cmd+Shift+[ | Previous tab |
Cmd+C / Ctrl+Shift+C | Copy |
Cmd+V / Ctrl+Shift+V | Paste |
Cmd++ / Ctrl++ | Increase font size |
Cmd+- / Ctrl+- | Decrease font size |
Cmd+0 / Ctrl+0 | Reset font size |
Tips
- *Performance Optimization: On battery-powered laptops, setting
performance = "Low"reduces power consumption. - *Transparent Background: Set
opacitybelow 1.0 andblur = truefor a translucent window with blurred background (macOS/some Linux). - *Hot Reload: Rio automatically reloads configuration when you edit the config file. No terminal restart needed.
- *Color Scheme Themes: The official repository's
themes/directory contains many preset color schemes. - *GPU Selection: In multi-GPU environments, specify the rendering backend using the
backendsetting.
Related Articles
Alacritty - GPU-Accelerated Terminal
Fast, cross-platform GPU-accelerated terminal emulator
Kitty - GPU-Based Terminal
GPU-based terminal with image display and extensibility
WezTerm - GPU-Accelerated Terminal
GPU-accelerated cross-platform terminal with Lua configuration