deniz.in

Markets

Weather

Loading weather

· via Hacker News – Front Page (hnrss.org)

Kitty 0.50 adds dockable windows for status bars, file trees and session restore

Kitty 0.50 introduces dockable windows for status bars and file trees, full session restore across logouts, and fixes a remote control authentication bypass.

Kitty 0.50 adds dockable windows for status bars, file trees and session restore

Kitty 0.50 arrives with dockable windows

Kitty, the open-source GPU-accelerated terminal emulator, has shipped version 0.50.0, a release dated November 3 in the project's official changelog. The update reached the Hacker News front page the following day. Its headline feature is window docking: kitty windows can now be attached to the edges of other windows or of the tab, giving the terminal built-in panels for status bars, file trees and similar furniture.

Docking and workspace-style tabs

The new modes are created with launch --type=window-dock and launch --type=tab-dock, according to the changelog. Rather than floating free, a docked window sticks to an edge — the layout pattern that tiling window managers and multiplexers have traditionally provided, but implemented inside a single kitty instance.

Tabs also move closer to behaving like named workspaces. A new launch --focus-existing option focuses an existing window or tab instead of spawning a duplicate, a by-title value for launch --location keeps tabs in alphabetical order, and detach-window plus the detach_window action can send a window to a named tab, creating that tab if it does not exist.

Full session restore across logouts

Another significant addition is restore_session_after_logout. When enabled, kitty saves the state of every instance, scrollback included, when the user logs out, restarts or shuts down, and reinstates it the next time kitty starts. On macOS the saved state is encrypted with a key stored in the keychain; on Linux the feature depends on the Inhibit desktop portal.

Session files also gained an os_window_position keyword, and save_as_session picked up an --os-window-geometry option, so the size, position and state of OS-level windows can be recorded too.

Wayland, touch and desktop integration

For Wayland users on compositors such as GNOME, kitty's client-side window decorations now imitate native GNOME titlebars and follow the desktop's titlebar font, text scaling, button layout and click settings.

Wayland also gains touchscreen support: a tap acts as a click, a moving finger scrolls with momentum, and a finger held still before moving selects text.

Elsewhere on Linux and BSD, kitty now detects MIME types through the shared-mime-info cache, matching the rest of the desktop and covering extensionless files such as Makefile plus MIME aliases. Input-method users get a candidate window anchored to the pre-edit text so it no longer jumps around, and macOS now commits in-progress IME or dictation text rather than discarding it when a window loses focus.

Shaders, graphics protocol and program status

The release leans further into kitty's custom shader system with three new cursor-trail effects — railgun, torpedo and pixiedust — that fling particles off the cursor as it moves, in the style of the neovide editor. Shaders can now be driven by key presses via a shader_event action, faded, reversed and looped through new animation_* directives, and can define a pointer_map() function so clicks land on the text displayed beneath the pointer. A fix also addresses animations turning jerky after kitty has been running for hours.

The graphics protocol adds two indexed-color image formats whose pixels reference the terminal palette, so images recolor automatically when the color scheme changes, plus an e query key that lets clients probe support for individual features such as animation and Unicode placeholders.

Kitty also implements the Program Status Protocol (OSC 7501), through which programs report whether they are working, finished, failed or blocked waiting on the user; the status can be shown in the tab bar via a new tab.program_status field in tab_title_template.

Performance and security fixes

Performance work includes faster growth of the GPU sprite cache, particularly on macOS, lower CPU usage with a non-zero input_delay, an end to continuous re-rendering while a selection is active in the scrollback, and reduced flicker from programs that draw with many small partial updates.

On the security side, the changelog discloses a fix for a crafted request that could bypass password-based remote control authentication by masquerading as the cancellation of an asynchronous request. Numerous remote control commands — among them action, send-key, set-colors and run — were also fixed for ignoring options, reporting false success or silently mishandling invalid input, and a single unresponsive peer can no longer block all remote control communication. A long tail of smaller fixes rounds out the release.

Why it matters

Docking turns kitty from a terminal emulator into something closer to a self-contained workspace, with panes for file trees and status bars living alongside shells — functionality users previously assembled from tmux, a window manager or an IDE. Combined with restore-after-logout, the release targets the two biggest friction points of living in a terminal: layout and state loss. And the authentication bypass fix means anyone exposing kitty's remote control behind a password should treat upgrading as more than a cosmetic choice.

  • #kitty
  • #terminal
  • #open-source
  • #gpu
  • #linux

Related posts