All releases

3 min read

v0.3.0

Bubble Tea v2 with keyboard enhancements, configurable tiling layouts, theming turned opt-in, and a scrollback rewrite.

GGGaurav Gosain

27 commits in the three days after v0.2.0, including the v0.2.1 and v0.2.2 patch releases. The main change is the move to Bubble Tea v2, which lets tuios use the kitty keyboard protocol. Tiling also got real layout controls, themes became opt-in, and scrollback got 10 to 20 times faster.

Breaking changes

  • Themes are off by default. v0.2.0 turned them on, and an opaque themed background fights any program that wants to set its own. The terminal background is now transparent and the default theme is none, so you get your terminal's own colours. To get the v0.2.0 look back, add theme = "tokyonight" (or any theme) to your config.

Keys that mean what you typed

tuios moved to Bubble Tea v2.0.0-rc.1 and handles its keyboard enhancement messages. On a terminal that supports the kitty keyboard protocol, tuios detects it and turns it on, with nothing to configure.

A classic terminal cannot tell Shift+Enter from Enter, and cannot report Super+Space at all. With the protocol on, these arrive as separate keys, complex modifier combinations work, international layouts report correctly, and the keys reach the program in the pane unchanged.

In terminal mode, tuios used to catch the tiling resize keys, so you could not type <, >, { or } into a shell. Now only the Ctrl+B prefix is caught in terminal mode, and every other key goes to the PTY.

Tiling you can shape

  • The master window ratio is configurable from 30% to 70%.
  • Eight new resize operations, with directional variants.
  • Each workspace remembers its layout and restores it.

Appearance

These live in a new [appearance] config section, with matching flags.

  • The dock can sit at the bottom, at the top, or be hidden. Contributed by Cjreek.
  • Nine border styles: rounded, normal, thick, double, hidden, block, ascii, and two half-block variants.
  • The window control buttons can be hidden.
  • Windows follow the cursor visibility a program asks for, so cmatrix hides the cursor and nvim shows it.

Scrollback

Scrollback moved from a growing slice to a fixed-size ring buffer. The common operations went from O(n) to O(1), which is 10 to 20 times faster once the buffer is full. The size is configurable from 100 to 1,000,000 lines, with a default of 10,000.

Fixed

  • Switching workspace during an animation left windows where the animation had reached, sometimes one fullscreen with the rest piled on top. Animations now finish on a switch: the old workspace snaps to its tiled layout at once, and the new one tiles with its usual animation.
  • Grid layouts with five or more windows no longer leave dead space at the bottom.
  • With the dock at the top, mouse resizing no longer uses boundaries two lines off.
  • The parent TERM variable is kept, with xterm-256color as a fallback.
  • tuios answers XTWINOPS queries (CSI 14, 16 and 18 t), so programs that ask for the window size in pixels or cells get an answer.
  • PTY setup is split into platform-specific files, which fixes the Windows build after Unix-only process attributes broke it.
  • Viewport clipping mis-parsed ANSI escapes because of a logical AND that should have been OR.

Project

  • Contributor plumbing, mostly from cr2007: issue forms for bugs and feature requests, an auto-labeler, a PR template, a security policy, and README keybindings shown with kbd tags.
  • The README notes kitty protocol support, from ShalokShalom.

v0.3.0 was tagged on 5 November 2025. Everything after it builds on the Bubble Tea v2 migration.