Releases: raphamorim/rio
Releases · raphamorim/rio
nightly
Changelog
- dcab051 update code
- 9e08c51 remove unused things
- 1760544 add \0 as word boundary
- b8194a0 drop simd optimization for content
- 3c57ee2 noop damage
- dd898da change run cache
- 08a3dc9 exploring ideas to perf
- e182eb4 flush into rect the spaces
- e6e9c3b accumulate
- b47d861 update lock
- 9861885 update tests
- 9ce911c update behaviour
- b178b2e format code
- 53f3e52 fix forcefull line_y inc for other ui elements
- 9897b9f add for full paint
- 3895ab4 increase line_y for empty runs
- 5fd81be scale_constraint
- b9798af constraint width
- 720fc92 update docs closes #1478
- c318e55 remove resources folder
- d6af41f update misc/com.rioterm.Rio.metainfo.xml
v0.3.1
v0.3.0
Rio 0.3.0 is a major release with a ground-up rewrite of the rendering architecture, including a new GPU-accelerated Metal backend on macOS, a completely new tab and split panel system powered by Taffy layout, and features like Kitty/Sixel graphics, command palette, and trail cursor effects. With this level of change, rough edges are expected — if you run into bugs, please report them at https://github.com/raphamorim/rio/issues and they'll be addressed as quickly as possible.
For Windows users, feel free to use 0.3.0 but I'd recommend waiting for the next release, which will include significant improvements and stability
fixes for the platform.
Happy Easter!
Changelog
- Quit Confirmation Dialog: New in-window quit screen with Rio logo, triggered by Cmd+Q / confirm-before-quit
- Respond with
yto quit ornto cancel - Optional native macOS quit dialog via
window.macos-use-quit-dialogconfig
- Respond with
- Kitty Graphics Protocol: Display images directly in your terminal
- Direct placements (U=0)
- Virtual placements (U=1)
- Diacritic-based row/column encoding (283 combining characters)
- RGB color encoding for image/placement IDs (24+8 bit support)
- Virtual placement rendering (infrastructure complete, rendering pending)
- Sixel Graphics: Full support with proper scrolling and positioning
- Graphics Rendering Improvements:
- Fixed vertical positioning alignment
- Fixed scrolling (images persist when origin scrolls off-screen)
- Fixed duplicate rendering with per-frame deduplication
- LRU cache with automatic eviction
- Native Metal Support (macOS): Hardware-accelerated rendering with Metal
- New GPU-Rendered Navigation: Faster, smoother tab interface
- Command Palette: Quick access to terminal functions
- Toggle Appearance Theme: Switch between dark and light themes at runtime via key binding (
ToggleAppearanceTheme) or command palette (only available when adaptive theme is configured) - Custom Mouse Cursor: Configurable mouse cursor effects via
effects.custom-mouse-cursor - Trail Cursor: Smooth spring-animated cursor trail using neovide-style physics (enabled by default via
effects.trail-cursor) - Desktop Notifications: Support for OSC 9 (iTerm2) and OSC 777 (rxvt) terminal notifications using native platform APIs (macOS
UNUserNotificationCenter, Linux D-Bus, Windows Toast) - Force Theme: New
force-themeconfiguration property to override the system theme when using adaptive themes - macOS Traffic Light Positioning: Customize position of window control buttons
- Configure via
macos-traffic-light-position-xandmacos-traffic-light-position-y - Defaults to standard macOS positioning (11.4, 16.1)
- Not available in Tab navigation mode
- Configure via
- OSC 9;4 Progress Bar Support: Terminal progress indicator (ConEmu/Windows Terminal compatible)
- Scroll Bar: Overlay scroll bar that appears on scroll and fades out after 2s
- Works per-panel in split views
- Draggable thumb with click-on-track jump scrolling
- Configure via
enable-scroll-bar(enabled by default)
- Tab Title
RELATIVE_PATHvariable: New template variable that shows a home-relative shortened path (e.g.~/Documents/a/rioor…/a/psone/starpsx). Default tab title on macOS/Linux changed to{{ TITLE || RELATIVE_PATH }}. - Wgpu now is always f32.
- This fixes non arm chip macos use cases.
Breaking Changes
- Navigation modes simplified - if you use
TopTab,BottomTab, orBookmark, change to:[navigation] mode = "Tab"
- Default
Decorationschanged toTransparenton macOS (wasEnabled) - Removed:
TopTab,BottomTab, andBookmarknavigation modes - Available modes:
Plain,Tab,NativeTab(macOS only) - Tab color configuration simplified: Removed
tabs-foreground,tabs-active-foreground, andtabs-active-highlight- Use
tabsfor inactive tab text and border color (default:#cccccc) - Use
tabs-activefor active tab text color (default:#ffffff)
- Use
- The old padding api became margin:
# It will apply margin rules to the main container # CSS-Like margin = [10] # (10px to all) margin = [10, 5] # (top and bottom margin are 10px, right and left margin are 5px) margin = [10, 5, 15, 20] # (top margin is 10px, right margin is 5px, bottom margin is 15px, left margin is 20px) # It will apply margin rules to panels [panel] margin = [5] # (5px to all) row-gap = 0 # (0px) column-gap = 0 # (0px)
Technical Details
- Complete rendering architecture rewrite for GPU-based UI
- Parser now supports APC sequences for Kitty graphics protocol
- Removed legacy layer/quad rendering system
- Added Metal backend for macOS, split WebGPU backend for cross-platform
- New
kitty_virtualmodule for placeholder encoding - Graphics cleanup with LRU eviction strategy (evicts up to 5 oldest when atlas full)
- Added 5 unit tests for graphics rendering (positioning, LRU, deduplication)
v0.2.37
- Support window bg color via OSC.
- Fix vi cursor not displayed when moving.
- Fix font loader for fallbacks and extra.
- Fix font size updating through config.
Commits
- d8a9919 update vi cursor fix
- bf5ae3b fix: Fix vi cursor updates, can be improved
- 489c1e8 allow ununsed on bg_color
- d4352c4 set windows title bar
- 1924db3 few updates to it work correctly
- 54610a5 set screen and window background color when changed via OSC
- 34b2ddd fix lint
- 0db0a2a use memmap2 and check all faces
- 17e3f99 simplify comments
- 2eeeb7b fix decode names manually with utf-16
- e691825 Merge branch 'main' into fix-font-fallback
- facb362 Fix changelog URL (#1388)
- 6330dcf fix font size updating through config
- 22bc971 attempt to load path on memory retrival
- 5366fe6 flake.lock: Update (#1384)
- 88d9f67 flake.lock: Update (#1372)
- 0b0265b update lockfile
- 20a3378 update deps
- faadea0 flake.lock: Update (#1367)
- ee3545e Avoid allocating in
pre_execclosure (#1366) - e54ceed update com.rioterm.Rio.metainfo.xml (0.2.36)
v0.2.36
Changelog
- 5027ae5 fix lint for atlas.rs
- 6ba19b4 prepare 0.2.36
- b4d5007 flake.lock: Update (#1364)
- c0d687a fix: handler should process two intermediate bytes in CSI sequences (#1363)
- ab26ffd flake.lock: Update (#1356)
- 1b65c18 update changelog
- ad9eb8c flake.lock: Update (#1353)
- 2c6b11b fix DECSCUSR
- dc57083 update xml for flatpak
- 14e9f6e actually update changelog to declare it's only macos for now
v0.2.35
v0.2.34
- Fix issue for finding fonts introduced with the v0.2.33 new font loader.
Changelog
v0.2.33
- Platform-specific configuration improvements #1341:
- Added support for platform-specific environment variables via
env-varsfield in platform config - Platform-specific env-vars are now appended to global env-vars instead of replacing them
- Fixed configuration inheritance: platform overrides now use field-level merging instead of replacing entire sections
- Window, Navigation, and Renderer settings can now be partially overridden per platform without duplicating all fields
- Added
themefield to platform config for per-platform theme selection - Shell configuration continues to use complete replacement for simplicity
- Added support for platform-specific environment variables via
- Fix
ScrollPageUpandScrollPageDownactions not working in custom keybindings #1275. - Fix Noticeably slower startup compared to wezterm, foot #1346.
- Fix Font loader taking a LOT of time to load fonts #1339.
- Fix Rio panics on launch on a Raspberry Pi 5 #1332.
- Fix kitty keyboard protocol.
- Support reporting terminal version via XTVERSION.
Changelog
- 303e1a1 update linux deps
- caa8646 format the code
- 841137b update lockfile
- 32b34a2 update changelog
- f26aa6d add ScrollPageUp & ScrollPageDown actions (closes #1275)
- ac7d9d1 platform: support env-vars for platform and better merge (closes #1341)
- db807b2 update changelog
- 4191f5c improve get_optimal_texture_sample_type
- f54333e let's make things easier
- 6cf7609 prepare 0.2.33
- 6d5e092 update changelog
- d91b3ee todo fix wasm32 on loader
- 1722cd3 remove comment
- d884977 lock versions on toml;2C
- 1aa1905 fix lint
- 3628142 migrate loader
- 66e685a fix keyboard protocol
- d0e1fd5 format XTVERSION test
- 9eb0f6f test xtversion report
- d9f5a84 feat: add XTVERSION support (#1347)
- 9cfe704 flake.lock: Update (#1344)
- 6873bf7 in fact TEXTURE_FORMAT_16BIT_NORM should be available for f16 otherwise is too misleading
- c1498c9 try full f16 features at first
- d3194f5 remove .helix/languages.toml as this repo avoids try to setup configuration for multi editors
- 0bb5b7f Update nix files (#1319)
- f91340a flake.lock: Update (#1336)
- 87d93e4 oopsie
- 2807f05 fix docs md
- b26b841 changelog moved from /docs/changelog to /changelog
- 066d100 address 'Dimension X value 4096 exceeds the limit of 2048'
v0.2.32
- Updated WGPU to v27.0.1.
- Fix No backend are enabled on FreeBSD #1235.
Changelog
- 8d6e12a prepare 0.2.32
- b7a9d93 update changelog
- 2d5a909 update wgpu to latest
- 480b6d8 docs: 'split' color option (#1330)
- 3a33266 flake.lock: Update (#1329)
- 1aa7c06 flake.lock: Update (#1326)
- 21aa7a9 update examples on dividers movement
- 34c0a31 docs(website): fix capitalization in the top banner (#1318)
- 39edcd5 flake.lock: Update (#1313)
- 4a38b3a update deps
- 55e038c update rio metainfo xml
v0.2.31
- Update Rust to v1.90.
- Fix kitty keyboard recognition.
- Breaking: Simplified key binding escape sequences
- Replaced separate
textandbytesfields with a singleescfield - Escape sequences are now sent directly to the PTY without text manipulation
- Migration: Replace
bytes = [27, 91, 72]withesc = "\u001b[H" - Migration: Replace
text = "some text"withesc = "some text" - Example:
{ key = "l", with = "control", esc = "\u001b[2J\u001b[H" }to clear screen
- Replaced separate
- Fix key binding conflicts: Resolved issues where keys like
PageUp,PageDown, andAlt+Enterrequired explicit"None"bindings before they could be reassigned- Simplified binding conflict resolution logic to automatically remove conflicting default bindings
- User-defined bindings now always take precedence without requiring placeholder "None" entries
Changelog
- 02dc881 prepare 0.2.31
- 3bd2bf3 upadte persy https://gitlab.com/persy/persy/-/issues/79
- 5f09cd8 tests for keyboard mode
- 7cfd5f7 fix kitty keyboard mode stack logic (#1309)
- df89495 cleanup will_finish_launching
- 530d1ca implement NSAutoFillHeuristicControllerEnabled from ghostty made
- c607449 update skrifa
- 4b671dc update docs to use changelog instead of releases
- b8a4e9c fix theme logic retrival (closes #1039)
- 2a1de13 use get instead of get_mut for UpdatConfig
- 391b3bd fix adaptative theme not being computed on update config (closes #1039)
- 1c9776c Fix theme reloading issue when editing configuration
- b2bcf48 update dependencies
- de80726 update the releases.md
- 80930c5 use trigger_match to ensure user bindings always take precedence
- 368368e flake.lock: Update (#1305)
- 0806f31 clone only action per binding for
- c632f04 update docs
- 2f5eeb7 refactor to send_write
- 0c71bf6 fix send_write
- a3630d7 wip allow esc
- 02a14c3 update makefile to use cargo publish --workspace, perk of rust 1.90
- 773f12e update rust to v1.90
- af14ba6 flake.lock: Update (#1299)
- 9da31e2 update flatpak xml file
- 3ea4350 update release.md