Warning
This is a personal project, provided as-is.
I maintain this fork for my own use. Expect rough edges and changes driven by my needs, with no guarantees of stability, maintenance, or support.
Most of the changes in this fork were developed with AI assistance.
The design is heavily based on Rex by Superlogical.
Credit to Raphael Amorim, Rio's creator, and the Rio contributors for the terminal this fork builds on, and to the Superlogical team for Rex and its design.
These fixes were adapted from upstream PRs or implemented here in response to upstream issues.
- Return an error for invalid PTY name lookups instead of dereferencing a null pointer. PR #1959, issue #1953.
- Preserve configuration when a theme fails to load, and keep the live configuration after a failed reload. PR #1985, PR #1758, issue #1980.
- Collapse CRLF line endings in bracketed paste to prevent doubled line breaks. PR #1744, issue #1669.
- Resolve unidentified Windows keys before matching custom bindings, including Ctrl+Alt combinations and Unicode input packets. PR #1982, issue #1962.
- Use the configured
vi-cursorcolor in Vi mode while preserving OSC 12 cursor colors outside Vi mode. PR #1932, issue #1904.
- Guard scrolling against zero-sized viewports to avoid unbounded scroll counts and invalid accumulated values. PR #1975.
- Publish completed mouse selections to PRIMARY independently of
copy-on-select, so middle-click and Shift+Insert can paste the selection. PR #1626, issue #1620. - Restore the live viewport and clear the selection before plain paste or bound input. PR #1745, issue #1427.
- Separate default tab and split shortcuts on Linux, BSD, and Windows. Tabs use
Ctrl+Shift+[andCtrl+Shift+]; splits useCtrl+Alt+[andCtrl+Alt+]. Fork fix for issue #914. - Expand
~in Unix working directories, honor the configured directory in the fork launch path, and warn before falling back for missing or invalid directories. PR #1747, issue #1088, issue #890.
- Preserve complete OSC 7, OSC 8, and OSC 9;9 payloads, including semicolons beyond the parser's parameter limit. PR #1983, covering the shorter-payload fix in PR #1978.
- Keep explicit OSC 8 targets intact in mouse and keyboard hints, prefer them over guessed URLs, and retain configured actions. Includes the action and empty-cell handling from PR #1903, while preserving literal URI targets as in PR #1983.
- Recognize Windows drive and UNC path hints, and resolve explicit MSYS, Cygwin, and WSL drive paths. PR #1951, issue #1943.
Rio is a modern terminal built to run everywhere.
About
·
Install
·
Config
·
Changelog
·
Sponsor
Documentation: rioterm.com.
If you use and like Rio, please consider sponsoring it: your support helps to cover the fees required to maintain the project and to validate the time spent working on it!
Demo with split and CRT on MacOS
Demo with blurred background on Linux
Demo of Rio running on a Steam Deck
Rio's MSRV is 1.96.1.



