Releases
0.3.0 (unreleased)
- TBD.
0.2.23
- Fix some rendering regressions introduced by 0.2.21.
- Improve performance by stopping locking on rendering run steps.
- Fix: X11: WM_CLASS has an empty string property.
0.2.22
- Fix some regressions introduced by 0.2.21.
0.2.21
- Breaking:
navigation.use-current-directory
has been renamed tonavigation.current-working-directory
.
Performance Optimizations
- Major: Implemented efficient CVDisplayLink-based VSync synchronization for macOS
- Perfect frame timing aligned with display hardware refresh cycles
- Eliminates screen tearing and stuttering through hardware VSync synchronization
- Adaptive refresh rate support: automatically handles 60Hz, 120Hz, ProMotion displays
- Multi-display support: adapts when windows move between displays with different refresh rates
- Grand Central Dispatch (GCD) integration for thread-safe cross-thread communication
- Smart rendering: Only renders when content actually changes using dirty flag system
- Power efficient: skips unnecessary redraws when content is static, reducing CPU usage
- Professional rendering quality with smooth, tear-free visual updates
- CVDisplayLink runs on dedicated background thread, never blocking UI operations
- macOS VSync Optimization: Disabled redundant software-based vsync calculations on macOS
- CVDisplayLink already provides hardware-synchronized VSync timing
- Eliminates unnecessary frame timing calculations and monitor refresh rate queries
- Reduces CPU overhead and improves rendering performance
- Software vsync logic remains active on other platforms for compatibility
- Major: Implemented a new text run caching system replacing line-based caching
- Up to 96% reduction in text shaping overhead for repeated content
- Individual text runs (words, operators, keywords) cached and reused across frames
- 256-bucket hash table with LRU eviction for optimal memory usage
- Cache Warming: Pre-populate cache with 100+ common terminal patterns on startup
- Programming keywords:
const
,let
,function
,class
,import
,export
, etc. - Indentation patterns: 4/8/12/16 spaces, single/double/triple tabs
- Shell commands:
ls
,cd
,git
,npm
,cargo
,sudo
, etc. - Operators & punctuation:
=
,==
,=>
,();
,{}
,[]
, etc. - File extensions:
.js
,.ts
,.rs
,.py
,.json
,.md
, etc. - Error/log patterns:
Error:
,[INFO]
,FAILED
,SUCCESS
, etc. - Immediate cache hits eliminate cold start shaping delays
- Programming keywords:
- SIMD-Optimized Whitespace Detection: Multi-tier optimization for indentation processing
- AVX2: 32 bytes per instruction (x86-64 with AVX2 support)
- SSE2: 16 bytes per instruction (x86-64 with SSE2 support)
- NEON: 16 bytes per instruction (ARM64/aarch64)
- Optimized scalar: 8-byte chunks (universal fallback)
- Up to 32x performance improvement for long indentation sequences
- Critical for Python, nested JavaScript/TypeScript, YAML, and heavily indented code
- Memory Pool for Vertices: High-performance vertex buffer pooling system
- Size-categorized pools: Small (64), Medium (256), Large (1024), XLarge (4096) vertices
- Zero allocation overhead through buffer reuse across frames
- LRU management with automatic cleanup when pools reach capacity
- Thread-safe concurrent access with performance monitoring
- Eliminates GC pressure and improves frame rate consistency
- Background Font Operations: Non-blocking font management
- Font data release and cleanup in dedicated background thread
- System font scanning and preloading without blocking main thread
- Prevents frame rate drops during font operations
- Occlusion-Based Rendering: Skip rendering for occluded windows/tabs
- Automatically detects when windows are completely hidden by other windows
- Skips rendering for occluded windows to save GPU resources and improve performance
- Renders one frame when window becomes visible again to ensure display is updated
- Configurable via
[renderer] disable-occluded-render = true
(enabled by default) - Significantly improves performance when running multiple tabs or windows
Other Improvements
- Optimize the character cluster cache for wide space characters.
- New font atlas, more efficient.
- Implemented around 75% Memory Reduction: Text glyphs now use R8 (1 byte) instead of RGBA (4 bytes).
- IME Cursor Positioning: Added configurable IME cursor positioning based on terminal cell coordinates
- IME input popups now appear precisely at the cursor position
- Improves input experience for CJK languages (Chinese, Japanese, Korean)
- Configurable via
[keyboard] ime-cursor-positioning = true
(enabled by default)
- Shift+Click Selection: Added Shift+click support for expanding text selections
- Shift+clicking now extends the current selection to the clicked cell
- Provides standard terminal selection behavior expected by users
- Regular clicking without Shift still clears selection and starts new one as before
- CLI accepts relative paths for working directory CLI argument: When invoking rio from other terminals using
rio --working-dir=<path>
, a relative path is now correctly processed
Bug Fixes
- Cursor Damage Tracking: Fixed cursor rendering issues after
clear
command and during rapid typing- Replaced complex point-based damage tracking with simplified line-based approach
- Eliminates edge cases where cursor updates were missed during fast typing sequences
- Improved reliability by always damaging entire lines instead of tracking column ranges
- Aligns with modern terminal design principles for more robust damage calculation
- Selection Rendering: Fixed selection highlight not appearing on first render
- Selection changes now properly trigger damage tracking and rendering
- Optimized selection damage to only redraw affected lines for better performance
- Selection highlights now appear immediately when making selections
- Text Selection: Fixed selection behavior during input and paste operations
- Selection properly clears when typing or pasting text (both bracketed and regular paste)
- Selection coordinates remain stable during viewport scrolling (following Alacritty's approach)
- Prevents selection from being lost unexpectedly during normal terminal usage
- Auto-scroll on Input: Fixed issue where typing after scrolling up wouldn't automatically scroll to bottom
- Now properly scrolls to bottom for both keyboard input and IME/paste operations
- Ensures cursor remains visible when typing new content
- Scroll Performance: Improved scrolling performance by optimizing render event handling
- Moved scroll display offset update before mouse cursor dirty event
- Removed redundant render calls during scroll operations
- Implemented centralized damage-based rendering in event loop for better performance
- macOS IME Improvements: Fixed emoji input and IME stability issues
- Resolved
IMKCFRunLoopWakeUpReliable
errors when using emoji picker - Improved coordinate validation and error handling for IME positioning
- Better handling of direct Unicode input (emoji picker, character viewer)
- Added throttling to prevent excessive IME coordinate updates
- Resolved
- Documentation: Added comprehensive manual pages (man pages) for Unix-like systems
man rio
- Main Rio terminal manual page with command-line optionsman 5 rio
- Complete configuration file format documentationman 5 rio-bindings
- Key bindings reference and customization guide- Available in
extra/man/
directory with build instructions
- Terminfo Compatibility: Improved terminal compatibility by adding
xterm-rio
terminfo entry- Added
xterm-rio
as primary terminfo entry withrio
as alias for better application compatibility - Applications that look for "xterm-" prefixed terminals (like termwiz-based apps) now work correctly
- Maintains
TERM=rio
environment variable for consistency with terminal identity - Fixes crashes with applications like
gitu
and other termwiz-based terminal programs - Follows same pattern as other modern terminals (Alacritty, Ghostty) for maximum compatibility
- Added
Technical Details
The performance optimizations in this release represent a significant architectural improvement to Rio's text rendering pipeline:
- Text Run Caching: Replaces line-based caching with individual text run caching. Each unique text sequence (word, operator, keyword) is shaped once and reused across all occurrences.
- SIMD Implementation: Platform-adaptive SIMD instructions automatically detect and use the best available CPU features (AVX2 > SSE2 > NEON > optimized scalar) for maximum performance across different architectures.
- Memory Management: The vertex pool system uses size-categorized buffers with LRU eviction, eliminating allocation overhead while preventing memory bloat.
- Cache Strategy: Two-level caching (render data + text runs) with 256-bucket hash table using FxHasher for optimal lookup performance.
- Compatibility: All optimizations maintain full backward compatibility with existing Rio APIs and configurations.
These changes are particularly beneficial for:
- Programming workflows with repetitive code patterns
- Terminal sessions with heavy indentation (Python, nested JS/TS, YAML)
- Long-running sessions where cache warming provides sustained performance benefits
- Systems with limited memory where reduced allocation overhead improves overall responsiveness
Bug Fixes
- Backspace Key Compatibility: Fixed backspace key not working properly in vim when
TERM=xterm-256color
- Changed backspace key bindings to send BS (0x08) instead of DEL (0x7F)
- Updated Rio terminfo and termcap entries to match actual key behavior
- Updated XTGETTCAP response to return
^H
forkbs
capability - Ensures compatibility with applications expecting xterm-256color backspace behavior
- Fixes issue where vim would display
^?
instead of performing backspace operation
0.2.20
- Performance: Implemented SIMD-accelerated UTF-8 validation throughout Rio terminal using the
simdutf8
crate.- Architecture support: AVX2/SSE4.2 (x86-64), NEON (ARM64), SIMD128 (WASM)
- Automatic optimization: Runtime detection selects fastest implementation available
- Support for XTGETTCAP (XTerm Get Termcap) escape sequence for querying terminal capabilities.
- Font library is now under a RWLock instead of Mutex to allow multiple tabs readings same font data.
- Fix: crash on openSUSE Tumbleweed #1160.
0.2.19
- Reduced the bundle size by ~20.81% (MacOS, Linux, BSD).
- Performance: stop saving empty images in the image cache.
- Fix: On MacOS, keybind definition to ignore cmd-w does not work #879.
- Fix: Build for MacOS 26 Tahoe.
- Fix:
Enter
,Tab
,Backspace
not disambiguated withshift
in kitty keyboard's disambiguate mode. - Fix: line-height adds small gaps for box-drawing characters #1126.
- Search matching a wrapping fullwidth character in the last column.
- Update Rust to 1.87.0.
0.2.18
- Fix image display crashing the application whenever f16 is available.
0.2.17
- Breaking: Decorations as
Enabled
is default on MacOS (instead ofTransparent
). - F16 Texture supports whenever is available.
- Clear font atlas whenever the font is changed.
- Skip passing sandbox env in Flatpak, fixes user environment in spawned shell #1116 by @ranisalt.
- On Windows, fixed crash in should_apps_use_dark_mode() for Windows versions < 17763.
0.2.16
- Breaking: support reading from config directory using
$XDG_CONFIG_HOME
on Linux #1105 by @ranisalt. - Fix: Crash on whenever attempting to clean an invalid line index.
- Add metainfo and screenshots for appstream by @ranisalt.
0.2.15
- Fix: In some cases, the first typed character doesn't display until after a delay, or until another key is hit #1098.
- Fix: Anomalous behavior occurs with the Bookmark tab style in the new versions 0.14 and 0.13. #1094.
0.2.14
- Fix: panic and crash of terminal window during sudo apt update #1093.
0.2.13
- Breaking change: For Windows and Linux users, hyperlink trigger whenever hovering a link was changed from
alt
toshift
. - Fix dimension for whenever a new tab is created from a view with splits.
- Drop subtables with empty coverage by @xorgy.
- Fix font size affecting tabs size.
- Support to drawable characters by using
fonts.use-drawable-chars = true
. - Fix: Wrong unicode character alignment #616.
- Fix: Built-in font for box drawing #974 #974.
- Fix: U+E0B6 and U+E0B4 Unicode with different sizes #895.
- Update wgpu to v25.
- Fix: Custom rendering (alignment) of Braille symbols #1057.
- Fix: Drawing char ⡿ in column 1 causes the entire terminal to stutter #1033.
- Fix: Some glyphs (e.g. braille symbol) are rendered with gaps in between #930.
- Introduce
fonts.disable-warnings-not-found
to disable warning regarding fonts not found. - Fix: Request: silently ignore missing fonts from fonts.family and fonts.family.extras #1031.
- Fix: Add branch drawing symbols to box characters #761.
- Fix: macOS: fallback for missing font glyph? #913.
- Fix: FPS calculation, before it was rendering avg 48 on 60fps screen, however it was due to wrong frame scheduling computations, now it's up to 56-58.
- Fix: Shift+Tab event is doubled, as if hit twice #1061.
- Fix: Request: Option to change click-link modifier key #1059.
- Fix: Unexpected tmux previous-window #1062.
- Rewrite the way Rio deals with line diff and updates computation.
- Support for setting a custom config directory using
$RIO_CONFIG_HOME
- Support for additional font dirs using
fonts.additional-dirs
- Rio's MSRV is 1.85.0.
- Support to Sextants.
- Fix: Octant support #814.
- Fix: Issue regarding split not updating opacity style when getting unfocused.
- Add support for custom parsing of APC, SOS and PM sequences.
0.2.12
- Fix crash regarding fonts not found whenever trying to run Rio.
0.2.11
- Fix filter scanlines not appearing.
- rt(wgpu): clamp texture size to device limits by @chyyran.
- Support to builtin filters:
newpixiecrt
andfubax_vr
. - Fix dimension computation whenever resizing Rio.
- Removed
fonts.ui
property, now Rio will always use primary font for UI. - Removed Text renderer mod by migrating to RichText renderer.
- Breaking:
renderer.strategy = "Continuous"
was renamed torenderer.strategy = "Game"
- Fix search bar can't show chinese #844.
0.2.10
- Fix computation of lines on screen.
- Fix dimension of the first tab whenever TopTab or BottomTab is created.
- Fix flaky test issue, test_update_title_with_logical_or failing randomly on aarch64 #994.
- Support to
navigation.unfocused_split_opacity
, default is0.5
. - Sugarloaf: Fix foreground color opacity not being computed.
0.2.9
- Support to symbol map configuration:
fonts.symbol-map
:
# covers: '⊗','⊘','⊙'
fonts.symbol-map = [{ start = "2297", end = "2299", font-family = "Cascadia Code NF" }]
- Add Switch to Next/Prev Split or Tab command by @vlabo.
- Fix issue whenever the first main font cannot be found.
0.2.8
- Support to
.rpm
files! (thanks @vedantmgoyal9 and @caarlos0) - OSC 7 Escape sequences to advise the terminal of the working directory.
- Use GoReleaser to build & release Rio (#921), thanks @caarlos0 and @vedantmgoyal9
- Cache GSUB and GPOS features independently.
- Updated
windows-sys
tov0.59
.- To match the corresponding changes in
windows-sys
, theHWND
,HMONITOR
, andHMENU
types now alias to*mut c_void
instead ofisize
.
- To match the corresponding changes in
0.2.7
- Shifted key reported without a shift when using kitty keyboard protocol.
- fix: Set cursor color via ANSI escape sequence #945.
- fix: Can the "base 16" colors be changed at runtime through Ansi escape sequences? #188
- fix: Changing release and nightly build Ubuntu runners for x86 (
ubuntu-latest
toubuntu-22.04
) and arm (ubuntu-24.04-arm
toubuntu-22.04-arm
)
0.2.6
- Fix: 0.2.5 doesn't render grey scale font on macOS #937.
- fix: fix duplicate tab_id by monotonic counter for unique tab IDs by @hilaolu.
- Add backslash to invalid characters for URL regex.
- fix regression introduced by 0.2.5 on light colors.
- fix: CMD+W open new tab but not new window occasionally #756.
- fix: Error getting window dimensions on Wayland #768.
0.2.5
- Introduced
draw-bold-text-with-light-colors
config, default isfalse
. - If light or dark colors are not specified Rio will try to convert it based on the regular color.
- Fix: Block writing to the shell when rendering the
Assistant
route. - Fix: Immediately render the
Terminal
route when switching from theAssistant
,ConfirmToQuit
orWelcome
, thus avoiding the need to double pressEnter
. - Fix: MacOS Unable to type Option + Number for special characters #916.
- Fix: Looking forward to having a color converter #850.
- Fix: Unexpected basic 16 terminal colors displayed on some apps #464.
0.2.4
- Breaking: Rio now doesn't allow anymore disable kitty keyboard protocol.
- Fullwidth semantic escape characters.
- Fix: report of Enter/Tab/Backspace in kitty keyboard.
- Fix: use-kitty-keyboard-protocol = true doesn't work with tmux #599.
- Fix: use-kitty-keyboard-protocol breaks F[5-12] on macOS #904.
- Downgrade MSRV to 1.80.1
- Update wgpu to 24.0.0.
0.2.3
- Rio now allows you to configure window title through configuration via template. Possible options:
TITLE
: terminal title via OSC sequences for setting terminal titlePROGRAM
: (e.gfish
,zsh
,bash
,vim
, etc...)ABSOLUTE_PATH
: (e.g/Users/rapha/Documents/a/rio
)
COLUMNS
: current columnsLINES
: current lines- So, for example if you have:
{{COLUMNS}}x{{LINES}}
would show something like88x66
.
- So, for example if you have:
- Perf improvement on text selection #898 by @marc2332.
- Window title is now updated regardless the Navigation Mode.
- Performance: Background and foreground data are only retrieved if is asked (either color automation is enabled or
window.title
contains any request for it). - Fixed: Nix build #853.
- Support to
window.macos-use-shadow
(enable or disable shadow on MacOS). - Support to
window.windows-corner-preference
(options:Default
,DoNotRound
,Round
andRoundSmall
). - Support to
window.windows-use-undecorated-shadow
(default is enabled). - Support to
window.windows-use-no-redirection-bitmap
(This setsWS_EX_NOREDIRECTIONBITMAP
). - Minimal stable rust version 1.84.0.
- Support for Unicode 16 characters.
- Support to line height.
- Renamed
--title
to--title-placeholder
on CLI. - Fixed: Deb package name 'rio' conflicts with existing one in Ubuntu #876.
- Fixed: Unremovable bottom padding when using line-height #449.
- On macOS, fixed undocumented cursors (e.g. zoom, resize, help) always appearing to be invalid and falling back to the default cursor.
- Introduce
SwitchCurrentTabToPrev
andSwitchCurrentTabToNext
actions #854 by @agjini. - On X11, Wayland, Windows and macOS, improved scancode conversions for more obscure key codes.
- On macOS, fixed the scancode conversion for audio volume keys.
- On macOS, fixed the scancode conversion for
IntlBackslash
.
- Kitty keyboard protocol is now enabled by default.
- Allow
Renderer
to be configured cross-platform byPlatform
property. - Add
ToggleFullscreen
to configurable actions. - Escape sequence to move cursor forward tabs ( CSI Ps I ).
- Always emit
1
for the first parameter when having modifiers in kitty keyboard protocol. - Microsoft Windows: fix the event loop not waking on accessibility requests.
- Wayland: disable title text drawn with crossfont crate, use ab_glyph crate instead.
- Sugarloaf: Expose wgpu.
0.2.2
- Fix iterm2 image protocol.
- Allow setting initial window title #806 by @xsadia.
- Fix runtime error after changing to a specific retroarch shader on windows #788 by @chyyran.
- Makes editor.args and shell.args optional in config.toml #801 by @Nylme.
- Introduce
navigation.open-config-with-split
.
0.2.1
- Fix: Search seems broken in 0.2.0 #785.
- Regular font is now 400 as default weight.
- Support to chooseing font width #507.
- Support to multiconfiguration. Rio now allows you to have different configurations per OS, you can write ovewrite
Shell
,Navigation
andWindow
.
Example:
[shell]
# default (in this case will be used only on MacOS)
program = "/bin/fish"
args = ["--login"]
[platform]
# Microsoft Windows overwrite
windows.shell.program = "pwsh"
windows.shell.args = ["-l"]
# Linux overwrite
linux.shell.program = "tmux"
linux.shell.args = ["new-session", "-c", "/var/www"]
- Fix: Grey triangle in the titlebar #778
- Update window title straight away (#779 by @hunger)
- Always update the title on windows and MacOS (#780 by @hunger)
0.2.0
- Note: The migration from 0.1.x to v0.2.x changed considerably the renderer source code, although it was tested for 3 weeks it's entirely possible that introduced bugs (hopefully not!).
- Performance gains!
- Sugarloaf: Major rewrite of font glyph logic.
- Sugarloaf: Removal of some unnecessary processing on shaping logic.
- Sugarloaf: Rewrite/Change of render architecture, now sugarloaf does not have any reference to column/lines logic.
- Breaking: Minimum MacOS version went from El Captain to Big Sur on ARM64 and Catalina on Intel x86.
- Microsoft Windows: Rio terminal is now available on WinGet packages.
- Microsoft Windows: Rio terminal is now available on MINGW packages.
- Microsoft Windows: Rio support on ARM architecture by @andreban.
- Allow MacOS automation via events.
- MacOS: Support titlebar unified:
window.macos-use-unified-titlebar = false
, - Support disable font hinting:
fonts.hinting = false
. - Fix: Configuration updates triggered multiple times on one save.
- Support to RetroArch shaders @igorsaux.
- Fix: Set notepad as a default editor on Windows by @igorsaux.
- Increased Linux font fallbacks list.
- Early initial split support (this feature is not yet stable).
- Fix: Preserve current working directory when opening new tabs #725.
- Added
SplitDown
,SplitRight
,CloseSplitOrTab
,SelectNextSplit
andSelectPrevSplit
actions. - Fix: Window doesn't receive mouse events on Windows 11 by @igorsaux.
- Support to hex RGBA (example:
#43ff64d9
) on colors/theme by @bio on #696. - Introduced
renderer.strategy
, options areEvents
andContinuous
. - Microsoft Windows: make
ControlFlow::WaitUntil
work more precisely usingCREATE_WAITABLE_TIMER_HIGH_RESOLUTION
. - Fix: Window output lost when rio loses focus #706.
- Updated wgpu to
23.0.0
.
0.1.17
- Fix flash of white during startup on Microsoft Windows #640.
- Add DWMWA_CLOAK support on Microsoft Windows.
- VI Mode now supports search by @orhun.
- Use max frame per seconds based on the current monitor refresh rate.
- breaking
renderer.max-fps
has been changed torenderer.target-fps
. - Fix background color for underline and beam cursors when using transparent window.
- Fix IME color for underline and beam cursors.
- Add default for Style property on Sugarloaf font.
0.1.16
- Support auto bold on fonts.
- Support auto italic on fonts.
- Reduced default regular weight to 300 instead of 400.
- MacOS: Add dock menu.
- MacOS: Add Shell and Edit menu.
- MacOS: Support to native modal that asks if wants to close app.
- MacOS: Fix
confirm-before-quit
property.
0.1.15
- Introduce
cursor.blinking-interval
, default value is 800ms. - Fix blinking cursor lag issue.
- performance: Use
Vec
(std based) instead of ArrayVec for copa. - Fix adaptive theme background color on macos.
- Decorations as
Transparent
is default on MacOS. - Navigation mode as
NativeTab
is default on MacOS. keyboard.use-kitty-keyboard-protocol
is nowfalse
by default.- Add support for msys2/mingw builds release #635 by @Kreijstal.
0.1.14
developer.log-file
has been renamed todeveloper.enable-log-file
.- breaking:
CollapsedTab
has been renamed toBookmark
. - Memory usage reduced by 75% (avg ~201mb to 48mb on first screen render).
- Implemented font data deallocator.
- Reduced font atlas buffer size to
1024
. - Added lifetimes to application level (allowing to deallocate window structs once is removed).
- Migrated font context from
RwLock
toArc<FairMutex>
. - MacOS does not clear with background operation anymore, instead it relies on window background.
- Background color has changed to
#0F0D0E
. - Fix font emoji width.
- Fix MacOS tabbing when spawned from a new window.
0.1.13
- Support to iTerm2 image protocol.
- Fix: Issue building rio for Void Linux #656.
- Fix: Adaptive theme doesn't appear to work correctly on macOS #660.
- Fix: Image background support to OpenGL targets.
- Fix: Unable to render images with sixel protocol & ratatui-image #639.
- Implement LRU to cache on layout and draw methods.
- Reenable set subtitle on MacOS native tabs.
0.1.12
- Introduce:
renderer.max-fps
. - Fix: Cursor making text with ligatures hidden.
- Fix: Underline cursor not working.
- Fix: sixel: Text doesn't overwrite sixels #636.
- Initial support to Sixel protocol.
- Support to
fonts.emoji
. You can also specify which emoji font you would like to use, by default will be loaded a built-in Twemoji color by Mozilla.
In case you would like to change:
# Apple
# [fonts.emoji]
# family = "Apple Color Emoji"
# In case you have Noto Color Emoji installed
# [fonts.emoji]
# family = "Noto Color Emoji"
- Support to
fonts.ui
. You can specify user interface font on Rio.
Note: fonts.ui
does not have live reload configuration update, you need to close and open Rio again.
[fonts.ui]
family = "Departure Mono"
- breaking: Revamp the cursor configuration
Before:
cursor = '▇'
blinking-cursor = false
After:
[cursor]
shape = 'block'
blinking = false
0.1.11
- Experimental support to Sixel protocol.
- Clipboard has been moved to Application level and shared to all windows.
- Replace
run
withrun_app
. - Support CSI_t 16 (Report Cell Size in Pixels).
- Support CSI_t 14 (Report Terminal Window Size in Pixels).
- Fix on all the issues regarding whenever the font atlas reaches the limit.
- breaking change: collapsed tabs use now
tabs-active-highlight
instead oftabs-active
. - Default font for UI has changed to DepartureMono.
- Performance: drop extra texture creation and manipulation.
- Fix on windows: If editor is not found, the app panics #641.
- Improvements on
window.background-image
as respect width and height properties if were used. - Macos: remove grab cursor when dragging and use default instead.
- Fix
tabs-active-highlight
config key #618. - Add
tabs-active-foreground
config key #619. - Add
tabs-foreground
config key. use-kitty-keyboard-protocol
is nowtrue
as default.- Remove tokio runtime.
- Allow configuring with lowercase values for enums.
- Rename
hide-cursor-when-typing
tohide-mouse-cursor-when-typing
. - Cleanup selection once happens a resize.
- Windows: Reduce WM_PAINT messages of thread target window.
0.1.10
- Refactor/Simplify close tabs logic internally.
- Fix: NativeTab margin top when
hide-if-single
is true. - Fix: Search bar width on 1.0 dpi screens.
- Fix: Windows - The behavior of using a complete shell command and a shell command with parameters is inconsistent #533.
- X11: Replace libxcursor with custom cursor code.
- Fix: Kitty keyboard protocol shifted key codes are reported in wrong order #596.
- Fix: Mouse pointer hidden (Ubuntu Wayland) / Cursor icon not changing #383.
- Enable search functionality as default on Linux.
- Enable search functionality as default on Microsoft Windows.
- Add command for closing all tabs except the current one (
CloseUnfocusedTabs
)
0.1.9
- Search support.
- New theme properties
search-match-background
,search-match-foreground
,search-focused-match-background
andsearch-focused-match-foreground
. - Fix bug Tab indicator doesn't disappear #493.
- Fix color automation on tabs for linux.
- Update tabs UI styles (make it larger and able to show more text when necessary).
- Corrections on underline render proportions for different DPIs.
- Support writing the config to a custom/default location via
--write-config
(Ref: #605). - Fix scale update on transitioning between screens with different DPI.
- Support a short variant (
-w
) for--working-dir
argument.
0.1.8
- breaking: Introduced a new property in theme called
tabs-active-highlight
, default color is#ff00ff
. - breaking: Removed breadcrumb navigation.
- breaking: Introduced a new property in theme called
bar
, default color changed is#1b1a1a
. - breaking:
CollapsedTab
is now default for all platforms. - Tab UI got some updates.
- Introduce
navigation.hide-if-single
property (Ref: #595). - Performance update: Remove lock dependencies on render calls.
- Performance update: Render repeated styled fragments as one rect.
- Sugarloaf API has changed from
Sugar
primitives toContent
. - Fix:
[editor]
overshadow headerless parameters in default config. (Ref: #601)
0.1.7
Breaking
Editor property have changed from String
to allow input arguments as well.
Before:
editor = "vi"
Now:
[editor]
program = "code"
args = ["-w"]
- Fix: editor doesn't handle arguments #550.
- Fix: Weird rendering behaviour on setting padding-x in config #590.
- Upgrade Rust to 1.80.1.
0.1.6
- Support custom colors on all underlines.
- Support for advaned formatting (squiggly underline?) #370
- Performance improvements!
- Cache strategy has improved to cover any line that have been previously rendered.
- Render backgrounds and cursors in one pass.
- Update tokio
0.1.5
- Fix Bug cell disappearance #579.
- Fix Bug Rendering problem with TUIs using cursor movement control sequences in rio (v0.1.1+) #574.
- Changed default font family to Cascadia Code.
- Changed default width to 800 and default height to 500.
0.1.4
- Fix Bug Text Rendering Bug #543.
- Fix Abnormal font display and incomplete Navigation content display #554.
- Fix Bug switch tabs doesn't work #536.
- Update Cascadia Code to 2404.23.
- Change Cascadia builtin font from ttf to otf.
- Improvements for mouse selection.
- Performance improvements for background renders for all navigations besides
Plain
andNativeTab
. - Fix Cursor blinking is triggered by changes in inactive tabs #437.
- Fix key bindings when key is uppercased (
alt
orshift
is inputted along). - Support to padding-y (ref: #400)
Define y axis padding based on a format [top, bottom]
, default is [0, 0]
.
Example:
padding-y = [30, 10]
- Update swash (0.1.18), ab_glyph (0.2.28) and remove double hashmap implementation.
0.1.3
- Added support to font features (ref: #548 #551)
[fonts]
features = ["ss01", "ss02", "ss03", "ss04", "ss05", "ss06", "ss07", "ss08", "ss09"]
Note: Font features do not have support to live reload on configuration, so to reflect your changes, you will need to close and reopen Rio.
- fix: Wayland - No input after first run #566.
- fix: Mouse pointer location differs from selected text #573.
- fix: IO Safety violation from dropping RawFd (fatal runtime error: IO Safety violation: owned file descriptor already closed).
- Upgrade to Rust 1.80.0.
0.1.2
- Upgrade wgpu to v22.0.0.
- Restrict of cells width.
- Wayland: update dependencies.
- Wayland: avoid crashing when compositor is misbehaving. (ref: raphamorim/winit 22522c9b37e9734c9a2408fae8d34b2599ff4574).
- Performance upgrades for lines rendered previously.
0.1.1
- Fix the validation errors whenever a surface is used with the vulkan backend.
- Clean up weak references to texture views and bind groups to prevent memory leaks.
- Fix crashes whenever reading binary files.
- Improvements on font loader (avoid set weight or style in the lookup if isn't defined).
- Fallbacks fonts doesn't trigger alerts anymore.