Kitty Terminal Emulator

217 readers
1 users here now

"The fast, feature-rich, GPU based terminal emulator"

A place for discussion and questions about the kitty terminal emulator.

kitty feature overview:

Rules:

Links:

Supported OS:

founded 2 years ago
MODERATORS
1
 
 

changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.42.1 [2025-05-17]

  • Fix ambiguous width and private use characters not being rendered when used with variable width text-sizing protocol escape codes
  • Quick access terminal: Restore focus to previously active window when hiding the quick access terminal window on macOS (#8627)
  • Wayland: Fix an abort if the terminal program sets a window title longer than 2KB that contains CSI escape sequences and multibyte UTF-8 (#8619)
  • Quick access terminal: Allow toggling the window to full screen using the standard kitty ctrl+shift+f11 shortcut (#8626)
  • Quick access terminal: Allow configuring the monitor to display the panel on in Wayland/X11 (#8630)
  • A new setting remember_window_position to optionally use the position of the last closed kitty OS Window as the position of the first kitty OS Window when running a new kitty instance (#8601)
  • Panel kitten: A new center-sized value for --edge to allow easily creating sized and centered panels
  • Wayland: The kitty --name flag now sets the XDG window tag on compositors that support the xdg-toplevel-tag protocol.
2
 
 

changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.42.0 [2025-05-11]

  • A new kitten: quick-access-terminal to Make a Quake like quick access terminal
  • The panel kitten works on macOS and X11 as well as Wayland (#2590)
  • Behavior change: Now kitty does full grapheme segmentation following the Unicode 16 spec when splitting text into cells (#8533)
  • Behavior change: The automatic color switching functionality now also controls background image settings (#8603)
  • panel kitten: Allow using kitty +kitten panel --single-instance to create multiple panels in one process (#8549)
  • launch: Allow creating desktop panels such as those created by the panel kitten (#8549)
  • Remote control: Allow modifying desktop panels and showing/hiding OS Windows using the kitten @ resize-os-window command (#8550)
  • Remote control launch: Allow waiting for a program launched in a new window to exit and get the exit code via the kitty +launch --wait-for-child-to-exit command line flag (#8573)
  • Allow starting kitty with the OS window hidden via kitty --start-as=hidden, useful for single instance mode (#3466)
  • Allow configuring the mouse unhide behavior when using mouse_hide_wait (#8508)
  • diff kitten: Add half page and full page scroll vim-like bindings (#8514)
  • diff kitten: Allow diffing named pipes (#8597)
  • Fix a regression that caused automatic color themes to not be re-applied after config file reload (#8530)
  • Wayland: When the compositor supports the xdg-system-bell protocol use it to play the default bell sound
  • panel kitten: Allow specifying panel size in pixels in addition to cells
  • Fix a regression in 0.36.0 that caused using = with single letter command line flags to no longer work correctly (#8556)
  • Single instance: Preserve environment variables from invoking environment in newly created window (#8567)
  • Single instance: Reset OS Window class and name in new single instance OS windows ([#8567](Fix a regression ))
  • macOS: Fix text color in visual window select ignoring the color theme (#8579)
  • Launch action: Allow using an env var that resolves to a full command-line as the program to launch (#8613)
  • change_font_size allow multiplying/dividing the current font size in addition to incrementing it (#8616)
  • Box drawing: Improve appearance of rounder corners, giving them a uniform line width (#8299)
3
 
 

changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.41.1 [2025-04-03]

  • Fix a regression in the previous release that caused rendering of emoji using the VS16 variation selector to fail with some fonts (#8495)
  • Fix a regression in 0.40.0 that caused tab bar margins to not be properly blanked when the tab bar is at the bottom (#8494) Wayland: panel kitten: Fix incorrect initial font size on compositors such as Hyprland that set scale late in the window creation process (#8496)
  • Fix a regression in 0.40.1 that caused hyperlink underline on hover to remain on screen when the screen is scrolled
4
5
 
 

changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.41.0 [2025-03-29]

  • A new mode of operation for text_fg_override_threshold to override foreground colors so as to maintain a minimum contrast between foreground and background text colors. Works in a perceptual color space for best color accuracy (#8420)
  • A 15% improvement in throughput when processing text thanks to using a multi-stage table for Unicode property lookups
  • kitty +open: Ask for confirmation by default when running executables to work around some badly designed programs that try to open links in documents that point to executable files. Can be overridden by specifying your own launch-actions.conf.
  • Fix a regression in version 0.40.0 causing a crash when the underline thickness of the font is zero (#8443)
  • Fix a regression in version 0.40.0 causing a hang on resizing with a wide character at the right edge of a line that needs to be moved onto the next line (#8464)
  • Fix a regression in 0.40.1 that caused copying to clipboard via OSC 52 from applications that don’t specify a destination in the escape code not working (#8459)
  • Wayland: Fix a regression in the previous release that caused crashes on compositors that don’t support the xdg-toplevel-icon protocol and the user has set a custom kitty icon (#8471)
6
 
 

changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.40.1 [2025-03-18]

  • Do not count background processes by default for confirm_os_window_close (#8358)
  • A new option clear_selection_on_clipboard_loss to clear selections when they no longer reflect the contents of the clipboard
  • Fix a regression in the previous release that caused empty lines to be skipped when copying text from a selection (#8435)
  • Fix flickering of hyperlink underline when client program continuously redraws on mouse movement (#8414)
  • Wayland: Allow overriding the kitty OS Window icon on compositors that implement the xdg-toplevel-icon protocol
  • macOS: When the program running in kitty reports progress information for a task, show a progress bar on the kitty dock icon
  • macOS: Fix a regression causing a crash when using focus_follows_mouse (#8437)
  • OSC 52: Fix specifying both clipboard and primary in OSC 52 requests not supported
7
 
 

changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.40.0 [2025-03-08]

  • Allow terminal programs to use text in different font sizes (#8226)
  • When rendering underlines add gaps around text descenders (parts of the text that overlap with the underline). Controlled by the new option underline_exclusion (#8226)
  • Finally fix the issue of text-width mismatches that has been plaguing the terminal ecosystem for decades by allowing terminal programs to specify how many cells to render a piece of text in (#8226)
  • Behavior change: The notify_on_cmd_finish option now uses OS Window visibility instead of focus state when set to invisible on platforms that support querying OS window visibility (#8320)
  • launch: Add options launch --source-window and launch --next-to to allow specifying which window is used as the data source and destination location independently of the currently active window (#8295)
  • Linux: Add support for COLRv1 fonts. These are typically emoji fonts that use vector images for emoji
  • Add support for the octant box-drawing characters
  • Speed up rendering of box drawing characters by moving the implementation to native code
  • When confirming if a window should be closed consider it active if it has running background processes (#8358)
  • Remote control: kitten @ scroll-window: Allow scrolling to previous/next prompt
  • macOS: Fix fallback font rendering for bold/italic text not working for some symbols that are present in the Menlo regular face but not the bold/italic faces (#8282)
  • XTGETTCAP: Fix response invalid for empty string capabilities (#8304)
  • ssh kitten: Fix incorrect copying of data files when using the python interpreter and also fix incorrect hard link detection (#8308)
  • Fix a regression in the previous release that broke setting of nullable colors
  • Fix a regression in 0.39.0 that caused a crash on invalid Unicode with a large number of combining characters in a single cell (#8318)
  • Fix --hold always restoring cursor to block shape instead of respecting the value of cursor_shape (#8344)
  • When dragging in rectangle select mode use a crosshair mouse cursor configurable via pointer_shape_when_dragging
  • macOS: notify kitten: Fix waiting for result from desktop notification not working (#8379)
  • Wayland: Fix mouse pointer position update not being sent when focus regained (#8397, #8398)
  • Fix cursor blink animation when background_opacity is less than one (#8401)
  • Wayland: panel kitten: Add a center mode for creating panels to ease creation of centered popups in Wayland (#8411)
8
4
submitted 3 months ago* (last edited 3 months ago) by SmokeInFog@midwest.social to c/kittyterminal@midwest.social
 
 

changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.39.1 [2025-02-01]

  • Splits layout: Allow setting the bias of the current split using layout_action bias (#8222)
  • hints kitten: Workaround for some broken light color themes that make the hints text color too low contrast to read (#7330)
  • Wayland niri: Fix 250ms delay on startup when using scale 1 (#8236)
  • Watchers: Add a new event on_color_scheme_preference_change (#8246)
9
 
 

changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.39.0 [2025-01-16]

  • diff kitten: Automatically use dark/light color scheme based on the color scheme of the parent terminal. Can be controlled via the new kitten-diff.color_scheme option. Note that this is a default behavior change (#8170)
  • Allow dynamically generating configuration by running an arbitrary program using the new geninclude directive in kitty.conf
  • When a program running in kitty reports progress of a task display it as a percentage in the tab title. Controlled by the tab_title_template option
  • When mapping a custom kitten allow using shell escaping for the kitten path (#8178)
  • Fix border colors not being changed by auto light/dark themes at startup (#8180)
  • ssh kitten: Fix kitten not being on PATH when SSHing into Debian systems (#7160)
  • diff kitten: Abort when run inside a terminal that does not support the kitty keyboard protocol (#8185)
  • query kitten: Add support for reporting name of the OS the terminal emulator is running on (#8201)
  • macOS: Allow using the Passwords app to autofill passwords via the Edit->Autofill menu mimicking other macOS applications (#8195)
  • macOS: Add menu items to the Edit menu to clear the screen and scrollback
  • Fix the clear_terminal scrollback action also clearing screen, not just the scrollback
  • When reloading configuration fix auto color themes not being re-applied (#8203)
10
 
 

changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.38.1 [2024-12-26]

  • macOS: Fix a regression in the previous release that broke rendering of Emoji using the VS16 variation selector (#8130)
  • When automatically changing colors based on OS color preference, first reset all colors to default before applying the new theme so that even colors not specified in the theme are correct (#8124)
  • Graphics: Fix deleted but not freed images without any placements being incorrectly freed on a subsequent delete command (#8129)
  • Graphics: Fix deletion of images by id not working for images with no placements (#8129)
  • Add support for escape code protocol for notifying applications on dark/light color scheme change
  • Cursor trails: Fix pure vertical movement sometimes not triggering a trail and holding down a key in nvim causing the trail to be glitchy (#8152, #8153)
  • macOS: Fix mouse cursor shape not always being reset to text cursor when mouse re-enters kitty (#8155)
  • clone-in-kitty: Fix KITTY_WINDOW_ID being cloned and thus having incorrect value (#8161)
11
 
 

changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.38.0 [2024-12-15]

  • Allow specifying individual color themes to use so that kitty changes colors automatically following the OS dark/light mode
  • notify_on_cmd_finish: Automatically remove notifications when the window gains focus or the next notification is shown. Clearing behavior can be configured (#8100)
  • Discard OSC 9 notifications that start with 4; because some misguided software is using it for “progress reporting” (#8011)
  • Wayland GNOME: Workaround bug in mutter causing double tap on titlebar to not always work (#8054)
  • clipboard kitten: Fix a bug causing kitten to hang in filter mode when input data size is not divisible by 3 and larger than 8KB (#8059)
  • Wayland: Fix an abort when a client program tries to set an invalid title containing interleaved escape codes and UTF-8 multi-byte characters (#8067)
  • Graphics protocol: Fix delete by number not deleting newest image with the specified number (#8071)
  • Fix dashed and dotted underlines not being drawn at the same y position as straight underlines at all font sizes (#8074)
  • panel kitten: Allow creating floating and on-top panels with arbitrary placement and size on Wayland (#8068)
  • remote_control_password: Fix using a password without any actions not working (#8082)
  • Fix enlarging window when a long line is wrapped between the first line of the scrollback buffer and the screen inserting a spurious newline (#7033)
  • When re-attaching a detached tab preserve internal layout state such as biases and orientations (#8106)
  • hints/unicode_input kittens: Do not lose keypresses that are sent very rapidly via an automation tool immediately after the kitten is launched (#7089)
12
8
submitted 6 months ago* (last edited 6 months ago) by SmokeInFog@midwest.social to c/kittyterminal@midwest.social
 
 

changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.37.0 [2024-10-30]

  • A new optional text cursor movement animation that shows a “trail” following the movement of the cursor making it easy to follow large cursor jumps (#7970)
  • Custom kittens: Add a framework for easily and securely using remote control from within a kitten’s main() function
  • kitten icat: Fix the kitty +kitten icat --no-trailing-newline not working when using unicode placeholders (#7948)
  • tab_title_template allow using the 256 terminal colors for formatting (#7976)
  • Fix resizing window when alternate screen is active does not preserve trailing blank output line in the main screen (#7978)
  • Wayland: Fix background_opacity less than one causing flicker on startup when the Wayland compositor supports single pixel buffers (#7987)
  • Fix background image flashing when closing a tab (#7999)
  • When running a kitten that modifies the kitty config file if no config file exists create a commented out default config file and then modify it (#7991)
13
 
 

Changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes*

0.36.4 [2024-09-27]

  • Fix a regression in the previous release that caused window padding to be rendered opaque even when background_opacity is less than 1 (#7895)
  • Wayland GNOME: Fix a crash when using multiple monitors with different scales and starting on or moving to the monitor with lower scale (#7894)
  • macOS: Fix a regression in the previous release that caused junk to be rendered in font previews in the choose fonts kitten and crash on Intel macs (#7892)
14
 
 

Changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.36.3 [2024-09-25]

  • The option second_transparent_bg has been removed and replaced by transparent_background_colors which allows setting up to seven additional colors that will be transparent, with individual opacities per color (#7646)
  • Fix a regression in the previous release that broke use of the cd command in session files (#7829)
  • macOS: Fix shortcuts that become entries in the global menubar being reported as removed shortcuts in the debug output
  • macOS: Fix macos_option_as_alt not working when caps lock is engaged (#7836)
  • Fix a regression when tinting of background images was introduced that caused window borders to have background_opacity applied to them (#7850)
  • Fix a regression that broke writing to the clipboard using the OSC 5522 protocol (#7858)
  • macOS: Fix a regression in the previous release that caused kitty to fail to run after an unclean shutdown/crash when using --single-instance (#7846)
  • kitten @ ls: Fix the --self flag not working (#7864)
  • Remote control: Fix --match state:self not working (#7886)
  • Splits layout: Allow setting the split_axis option to auto so that all new windows have their split axis chosen automatically unless explicitly specified in the launch command (#7887)
15
 
 

Changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.36.2 [2024-09-06]

  • Linux: Fix a regression in 0.36.0 that caused font features defined via fontconfig to be ignored (#7773)
  • goto_tab: Allow numbers less than -1 to go to the Nth previously active tab
  • Wayland: Fix for upcoming explicit sync changes in Wayland compositors breaking kitty (#7767)
  • Remote control: When listening on a UNIX domain socket only allow connections from processes having the same user id (#7777)
  • kitten @: Fix a regression connecting to TCP sockets using plain IP addresses rather than hostnames (#7794)
  • diff kitten: Fix a regression that broke diffing against remote files (#7797)
16
6
submitted 9 months ago* (last edited 9 months ago) by SmokeInFog@midwest.social to c/kittyterminal@midwest.social
 
 

Changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.36.1 [2024-08-17]

  • Allow specifying that the cursor shape for unfocused windows should remain unchanged (#7728)
  • MacOS Intel: Fix a crash in the choose-fonts kitten when displaying previews of variable fonts (#7734)
  • Remote control: Fix a regression causing an escape code to leak when using @ launch with --no-response over the TTY (#7752)
  • OSC 52: Fix a regression in the previous release that broke handling of invalid base64 encoded data in OSC 52 requests (#7757)
  • macOS: Fix a regression in the previous release that caused kitty --single-instance to not work when using macos-launch-services-cmdline
17
8
submitted 9 months ago* (last edited 9 months ago) by SmokeInFog@midwest.social to c/kittyterminal@midwest.social
 
 

Changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.36.0 [2024-08-17]

  • Support OpenType Variable fonts (#3711)
  • A new choose-fonts kitten that provides a UI with font previews to ease selection of fonts. Also has support for font features and variable fonts
  • Allow animating the blinking of the cursor. See cursor_blink_interval for how to configure it
  • Add NERD fonts builtin so that users don’t have to install them to use NERD symbols in kitty. The builtin font is used only if the symbols are not available in some system font
  • launch command: A new launch --bias option to adjust the size of newly created windows declaratively (#7634)
  • A new option second_transparent_bg to make a second background color semi-transparent via background_opacity. Useful for things like cursor line highlight in editors (#7646)
  • A new notify kitten to show desktop notifications from the command line with support for icons, buttons and more.
  • Desktop notifications protocol: Add support for icons, buttons, closing of notifications, expiry of notifications, updating of notifications and querying if the terminal emulator supports the protocol (#7657, #7658, #7659)
  • A new option filter_notification to filter out or perform arbitrary actions on desktop notifications based on sophisticated criteria (#7670)
  • A new protocol to allow terminal applications to change colors in the terminal more robustly than with the legacy XTerm protocol (Setting and querying colors)
  • Sessions: A new command focus_matching_window to shift focus to a specific window, useful when creating complex layouts with splits (#7635)
  • Speed up loading of large background images by caching the decoded image data. Also allow using images in JPEG/WEBP/TIFF/GIF/BMP formats in addition to PNG
  • Wayland: Allow fractional scales less than one (#7549)
  • Wayland: Fix specifying the output name for the panel kitten not working (#7573)
  • icat kitten: Add an option kitty +kitten icat --no-trailing-newline to leave the cursor to the right of the image (#7574)
  • Speed up kitty --version and kitty --single-instance (for all subsequent instances). They are now the fastest of all terminal emulators with similar functionality
  • macOS: Fix rendering of the unicode hyphen (U+2010) character when using a font that does not include a glyph for it (#7525)
  • macOS 15: Handle Fn modifier when detecting global shortcuts (#7582)
  • Dispatch any clicks waiting for click_interval on key events (#7601)
  • kitten run-shell: Automatically add the directory containing the kitten binary to PATH if needed. Controlled via the --inject-self-onto-path option ~~(disc:7668`)~~ (#7668)
  • Wayland: Fix an issue with mouse selections not being stopped when there are multiple OS windows (#7381)
  • Splits layout: Fix the move_to_screen_edge action breaking when only a single window is present (#7621)
  • Add support for in-band window resize notifications (#7642)
  • Allow controlling the easing curves used for visual_bell_duration
  • New special rendering for font symbols useful in drawing commit graphs (#7681)
  • diff kitten: Add bindings to jump to next and previous file (#7683)
  • Wayland GNOME: Fix the font size in the OS Window title bar changing with the size of the text in the window (#7677)
  • Wayland GNOME: Fix a small rendering artifact when docking a window at a screen edge or maximizing it (#7701)
  • When shell is set to . respect the SHELL environment variable in the environment in which kitty is launched (#7714)
  • macOS: Bump the minimum required macOS version to Catalina released five years ago.
  • Fix a regression in notify_on_cmd_finish that caused notifications to appear for every command after the first (#7725)
18
 
 

Changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.35.2 [2024-06-22]

  • A new option, window_logo_scale to specify how window logos are scaled with respect to the size of the window containing the logo (#7534)
  • A new option, cursor_shape_unfocused to specify the shape of the text cursor in unfocused OS windows (#7544)
  • Remote control: Fix empty password not working (#7538)
  • Wayland: Fix regression in 0.34.0 causing flickering on window resize on NVIDIA drivers (#7493)
  • Wayland labwc: Fix kitty timing out waiting for compositor to quit fucking around with scales on labwc (#7540)
  • Fix scrollback_indicator_opacity not actually controlling the opacity (#7557)
  • URL detection: Fix IPv6 hostnames breaking URL detection (#7565)
19
 
 

Changelog: https://sw.kovidgoyal.net/kitty/changelog/

0.35.1 [2024-05-31]

  • Wayland: Fix a regression in 0.34 that caused the tab bar to not render in second and subsequent OS Windows under Hyprland (#7413)
  • Fix a regression in the previous release that caused horizontal scrolling via touchpad in fullscreen applications to be reversed on non-Wayland platforms (#7475, #7481)
  • Fix a regression in the previous release causing an error when setting background_opacity to zero (#7483)
  • Image display: Fix cursor movement and image hit region incorrect for image placements that specify only a number of rows or columns to display in (#7479)
20
 
 

https://sw.kovidgoyal.net/kitty/changelog/

0.35.0 [2024-05-25]

  • kitten @ run: A new remote control command to run a process on the machine kitty is running on and get its output (#7429)
  • notify_on_cmd_finish: Show the actual command that was finished (#7420)
  • hints kitten: Allow clicking on matched text to select it in addition to typing the hint
  • Shell integration: Make the currently executing cmdline available as a window variable in kitty
  • paste_actions: Fix replace-newline not working with confirm (#7374)
  • Graphics: Fix aspect ratio of images not being preserved when only a single dimension of the destination rectangle is specified (#7380)
  • focus_visible_window: Fix selecting with mouse click leaving keyboard in unusable state (#7390)
  • Wayland: Fix infinite loop causing bad performance when using IME via fcitx5 due to a change in fcitx5 (#7396)
  • Desktop notifications protocol: Add support for specifying urgency
  • Improve rendering of Unicode shade character to avoid Moire patterns (#7401)
  • kitten @ send-key: Fix some keys being sent in kitty keyboard protocol encoding when not using socket for remote control
  • Dont clear selections on erase in screen commands unless the erased region intersects a selection (#7408)
  • Wayland: save energy by not rendering “suspended” windows on compositors that support that
  • Allow more types of alignment for placement_strategy (#7419)
  • Add some more box-drawing characters from the “Geometric shapes” Unicode block (#7433)
  • Linux: Run all child processes in their own systemd scope to prevent the OOM killer from harvesting kitty when a child process misbehaves (#7427)
  • Mouse reporting: Fix horizontal scroll events inverted (#7439)
  • Remote control: @ action: Fix some actions being performed on the active window instead of the matched window (#7438)
  • Scrolling with mouse wheel when a selection is active should update the selection (#7453)
  • Fix kitten @ set-background-opacity limited to min opacity of 0.1 instead of 0 (#7463)
  • launch --hold: Fix hold not working if kernel signals process group with SIGINT (#7466)
  • macOS: Fix --start-as=fullscreen not working when another window is already fullscreen (#7448)
  • Add option kitten @ detach-window --stay-in-tab to keep focus in the currently active tab when moving windows (#7468)
  • macOS: Fix changing window chrome/colors while in traditional fullscreen causing the titlebar to become visible (#7469)
21
14
submitted 1 year ago* (last edited 11 months ago) by SmokeInFog@midwest.social to c/kittyterminal@midwest.social
 
 

https://sw.kovidgoyal.net/kitty/changelog/

0.35.0 [2024-05-25]

testing collapsible sections

This is a test of markdown collapsible sections

  • kitten @ run: A new remote control command to run a process on the machine kitty is running on and get its output (#7429)
  • notify_on_cmd_finish: Show the actual command that was finished (#7420)
  • hints kitten: Allow clicking on matched text to select it in addition to typing the hint
  • Shell integration: Make the currently executing cmdline available as a window variable in kitty
  • paste_actions: Fix replace-newline not working with confirm (#7374)
  • Graphics: Fix aspect ratio of images not being preserved when only a single dimension of the destination rectangle is specified (#7380)
  • focus_visible_window: Fix selecting with mouse click leaving keyboard in unusable state (#7390)
  • Wayland: Fix infinite loop causing bad performance when using IME via fcitx5 due to a change in fcitx5 (#7396)
  • Desktop notifications protocol: Add support for specifying urgency
  • Improve rendering of Unicode shade character to avoid Moire patterns (#7401)
  • kitten @ send-key: Fix some keys being sent in kitty keyboard protocol encoding when not using socket for remote control
  • Dont clear selections on erase in screen commands unless the erased region intersects a selection (#7408)
  • Wayland: save energy by not rendering “suspended” windows on compositors that support that
  • Allow more types of alignment for placement_strategy (#7419)
  • Add some more box-drawing characters from the “Geometric shapes” Unicode block (#7433)
  • Linux: Run all child processes in their own systemd scope to prevent the OOM killer from harvesting kitty when a child process misbehaves (#7427)
  • Mouse reporting: Fix horizontal scroll events inverted (#7439)
  • Remote control: @ action: Fix some actions being performed on the active window instead of the matched window (#7438)
  • Scrolling with mouse wheel when a selection is active should update the selection (#7453)
  • Fix kitten @ set-background-opacity limited to min opacity of 0.1 instead of 0 (#7463)
  • launch --hold: Fix hold not working if kernel signals process group with SIGINT (#7466)
  • macOS: Fix --start-as=fullscreen not working when another window is already fullscreen (#7448)
  • Add option kitten @ detach-window --stay-in-tab to keep focus in the currently active tab when moving windows (#7468)
  • macOS: Fix changing window chrome/colors while in traditional fullscreen causing the titlebar to become visible (#7469)
22
 
 

Here's the official documentation on configuring kitty's modal mappings.

I made this to explore its uses but also because sometimes my fingers trigger the wrong reflex macro and I accidentally change my layout or alter the window size. This guards against that by literally guarding that behavior behind a key combo that puts me into the express context for altering my window/tab layout and arrangement.

To not clutter up your main config, I recommend saving this to its own file and using the include directive to bring it in.

EDIT: learned that you can map the combo that enters the mode to get out of the mode

kitty-mode-window-tab-arrangement (WTA):

map --new-mode WTA kitty_mod+space>kitty_mod+space 

map --mode WTA kitty_mod+space>kitty_mod+space pop_keyboard_mode
map --mode WTA esc    pop_keyboard_mode
map --mode WTA ctrl+c pop_keyboard_mode


# Windows

#navigation
map --mode WTA h    neighboring_window left
map --mode WTA a    neighboring_window left
map --mode WTA left neighboring_window left

map --mode WTA j    neighboring_window down
map --mode WTA s    neighboring_window down
map --mode WTA down neighboring_window down

map --mode WTA k  neighboring_window up
map --mode WTA w  neighboring_window up
map --mode WTA up neighboring_window up

map --mode WTA l     neighboring_window right
map --mode WTA d     neighboring_window right
map --mode WTA right neighboring_window right

map --mode WTA f focus_visible_window

#resize
map --mode WTA alt+h    resize_window narrower
map --mode WTA alt+a    resize_window narrower
map --mode WTA alt+left resize_window narrower

map --mode WTA alt+l     resize_window wider
map --mode WTA alt+d     resize_window wider
map --mode WTA alt+right resize_window wider

map --mode WTA alt+k  resize_window taller
map --mode WTA alt+w  resize_window taller
map --mode WTA alt+up resize_window taller

map --mode WTA alt+j    resize_window shorter
map --mode WTA alt+s    resize_window shorter
map --mode WTA alt+down resize_window shorter

map --mode WTA ctrl+home resize_window reset
map --mode WTA ctrl+r    resize_window reset

#arrange
map --mode WTA shift+h    move_window left
map --mode WTA shift+a    move_window left
map --mode WTA shift+left move_window left

map --mode WTA shift+l     move_window right
map --mode WTA shift+d     move_window right
map --mode WTA shift+right move_window right

map --mode WTA shift+j    move_window down
map --mode WTA shift+s    move_window down
map --mode WTA shift+down move_window down

map --mode WTA shift+k  move_window up
map --mode WTA shift+w  move_window up
map --mode WTA shift+up move_window up

map --mode WTA shift+m swap_with_window
# have to pop_keyboard_mode here to enable answering question
map --mode WTA shift+t combine : detach_window ask : pop_keyboard_mode
map --mode WTA shift+n combine : detach_tab ask    : pop_keyboard_mode


# Tabs

map --mode WTA shift+alt+]     move_tab_forward
map --mode WTA shift+alt+right move_tab_forward
map --mode WTA shift+alt+l     move_tab_forward
map --mode WTA shift+alt+d     move_tab_forward

map --mode WTA shift+alt+[    move_tab_backward
map --mode WTA shift+alt+left move_tab_backward
map --mode WTA shift+alt+h    move_tab_backward
map --mode WTA shift+alt+a    move_tab_backward


# Close others

map --mode WTA ctrl+x>w close_other_windows_in_tab
map --mode WTA ctrl+x>t close_other_tabs_in_os_window
map --mode WTA ctrl+x>o close_other_os_windows



# Layout actions

enabled_layouts tall:mirrored=true,fat,splits:split_axis=horizontal,splits:split_axis=vertical,grid,horizontal,vertical,stack,tall,fat:mirrored=true

map --mode WTA ctrl+alt+7      goto_layout   tall
map --mode WTA kitty_mod+alt+7 toggle_layout tall:mirrored=true
map --mode WTA ctrl+alt+g      goto_layout   grid
map --mode WTA ctrl+alt+w      goto_layout   fat
map --mode WTA kitty_mod+alt+w toggle_layout fat:mirrored=true
map --mode WTA ctrl+alt+v      goto_layout   vertical
map --mode WTA ctrl+alt+h      goto_layout   horizontal
map --mode WTA ctrl+alt+z      toggle_layout stack
map --mode WTA ctrl+alt+y      toggle_layout splits:split_axis=horizontal
map --mode WTA kitty_mod+alt+y toggle_layout splits:split_axis=vertical

map --mode WTA ctrl+alt+, last_used_layout

# control number of main windows
action_alias increase_main layout_action increase_num_full_size_windows
map --mode WTA ctrl+]     increase_main
map --mode WTA ctrl+up    increase_main
map --mode WTA ctrl+right increase_main
map --mode WTA ctrl+l     increase_main
map --mode WTA ctrl+w     increase_main
map --mode WTA ctrl+d     increase_main

action_alias decrease_main layout_action decrease_num_full_size_windows
map --mode WTA ctrl+[    decrease_main
map --mode WTA ctrl+down decrease_main
map --mode WTA ctrl+left decrease_main
map --mode WTA ctrl+h    decrease_main
map --mode WTA ctrl+s    decrease_main
map --mode WTA ctrl+a    decrease_main

# increase main bias
action_alias increase_bias layout_action bias 50 66 75 90
map --mode WTA kitty_mod+]     increase_bias
map --mode WTA kitty_mod+up    increase_bias
map --mode WTA kitty_mod+right increase_bias
map --mode WTA kitty_mod+l     increase_bias
map --mode WTA kitty_mod+w     increase_bias
map --mode WTA kitty_mod+d     increase_bias

# decrease main bias
action_alias decrease_bias layout_action bias 50 33 25 10
map --mode WTA kitty_mod+[    decrease_bias
map --mode WTA kitty_mod+down decrease_bias
map --mode WTA kitty_mod+left decrease_bias
map --mode WTA kitty_mod+h    decrease_bias
map --mode WTA kitty_mod+s    decrease_bias
map --mode WTA kitty_mod+a    decrease_bias
23
 
 

https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.34.1 [2024-04-19]

  • Wayland KDE: Fix window background blur not adapting when window is grown. Also fix turning it on and off not working. (#7351)
  • Wayland GNOME: Draw the titlebar buttons without using a font (#7349)
  • Fix a regression in the previous release that caused incorrect font selection when using variable fonts on Linux (#7361)
24
 
 

(Because of how kitty's documentation is generated (relative anchors, e.g. #1, #2, etc) makes linking to specific changelog entries problematic as new versions are released; old links will not point to the correct entry. Worse, since the URL is the same, new posts to that url will count as a cross-post.)

Changelog: https://sw.kovidgoyal.net/kitty/changelog/#detailed-list-of-changes

0.34.0 [2024-04-15]

  • Wayland: panel kitten: Add support for drawing desktop background and bars using the panel kitten for all compositors that support the requisite Wayland protocol which is practically speaking all of them but GNOME (#2590)
  • Show a small scrollback indicator along the right window edge when viewing the scrollback to keep track of scroll position (#2502)
  • Wayland: Support fractional scales so that there is no wasted drawing at larger scale followed by resizing in the compositor
  • Wayland KDE: Support background_blur
  • Wayland GNOME: The window titlebar now has buttons to minimize/maximize/close the window
  • Wayland GNOME: The window titlebar color now follows the system light/dark color scheme preference, see wayland_titlebar_color
  • Wayland KDE: Fix mouse cursor hiding not working in Plasma 6 (#7265)
  • Wayland IME: Fix a bug with handling synthetic keypresses generated by ZMK keyboard + fcitx (#7283)
  • A new option terminfo_type to allow passing the terminfo database embedded into the TERMINFO env var directly instead of via a file
  • Mouse reporting: Fix drag release event outside the window not being reported in legacy mouse reporting modes (#7244)
  • macOS: Fix a regression in the previous release that broke rendering of some symbols on some systems (#7249)
  • Fix handling of tab character when cursor is at end of line and wrapping is enabled (#7250)
  • Splits layout: Fix move_window_forward not working (#7264)
  • macOS: Fix an abort due to an assertion when a program tries to set an invalid window title (#7271)
  • fish shell integration: Fix clicking at the prompt causing autosuggestions to be accepted, needs fish >= 3.8.0 (#7168)
  • Linux: Fix for a regression in 0.32.0 that caused some CJK fonts to not render glyphs (#7263)
  • Wayland: Support preferred integer scales
  • Wayland: A new option wayland_enable_ime to turn off Input Method Extensions which add latency and create bugs
  • Wayland: Fix hide_window_decorations not working on non GNOME desktops
  • When asking for quit confirmation because of a running program, mention the program name (#7331)
  • Fix flickering of prompt during window resize (#7324)
25
6
submitted 1 year ago* (last edited 1 year ago) by SmokeInFog@midwest.social to c/kittyterminal@midwest.social
 
 
  • Fix a regression in the previous release that caused requesting data from the clipboard via OSC 52 to instead return data from the primary selection (#7213)
  • Splits layout: Allow resizing until one of the halves in a split is minimally sized (#7220)
  • macOS: Fix text rendered with fallback fonts not respecting bold/italic styling (#7241)
  • macOS: When CoreText fails to find a fallback font for a character in the first Private Use Unicode Area, preferentially use the NERD font, if available, for it (#6043)
view more: next ›