Changelog ============== kitty is a feature full, cross-platform, *fast*, GPU based terminal emulator. version 0.9.0 [future] ------------------------ - A new kitty command shell to allow controlling kitty via commands. Press ctrl+shift+escape to run the shell. - Linux: Switch to libxkbcommon for keyboard handling. It allows kitty to support XCompose and dead keys and also react to keyboard remapping/layout change without needing a restart. - Add support for multiple-key-sequence shortcuts - A new remote control command "set-colors" to change the current and/or configured colors. - When double-clicking to select a word, select words that continue onto the next/prev line as well. - Add an "include" directive for the config files to read multiple config files - Improve mouse selection for windows with padding. Moving the mouse into the padding area now acts as if the mouse is over the nearest cell. - Allow setting all 256 terminal colors in the config file - Fix using kitty --single-instance to open a new window in a running kitty instance, not respecting the --directory flag - URL hints: Exclude trailing punctuation from URLs - URL hints: Launch the browser from the kitty parent process rather than the hints kitten. Fixes launching on some systems where xdg-open doesn't like being run from a kitten. - Allow using rectangle select mode by pressing shift in addition to the rectangle select modifiers even when the terminal program has grabbed the mouse. version 0.8.4 [2018-03-31] ----------------------------- - Fix presence of XDG_CONFIG_DIRS and absence of XDG_CONFIG_HOME preventing kitty from starting - Revert change in last release to cell width calculation. Instead just clip the right edges of characters that overflow the cell by at most two pixels version 0.8.3 [2018-03-29] ----------------------------- - Fix a regression that broke the visual bell and invert screen colors escape code - Allow double-click and triple-click + drag to extend selections word at a time or line at a time - Add a keyboard shortcut to set the tab title - Fix setting window title to empty via OSC escape code not working correctly - Linux: Fix cell width calculation incorrect for some fonts (cell widths are now calculated by actually rendering bitmaps, which is slower but more accurate) - Allow specifying a system wide kitty config file, for all users - Add a --debug-config command line flag to output data about the system and kitty configuration. - Wayland: Fix auto-repeat of keys not working version 0.8.2 [2018-03-17] ----------------------------- - Allow extending existing selections by right clicking - Add a configurable keyboard shortcut and remote command to set the font size to a specific value - Add an option to have kitty close the window when the main processes running in it exits, even if there are still background processes writing to that terminal - Add configurable keyboard shortcuts to switch to a specific layout - Add a keyboard shortcut to edit the kitty config file easily - macOS: Fix restoring of window size not correct on Retina screens - macOS: Add a facility to specify command line arguments when running kitty from the GUI - Add a focus-tab remote command - Fix screen not being refreshed immediately after moving a window. - Fix a crash when getting the contents of the scrollback buffer as text version 0.8.1 [2018-03-09] ----------------------------- - Extend kitty's remote control feature to work over both UNIX and TCP sockets, so now you can control kitty from across the internet, if you want to. - Render private use unicode characters that are followed by a space as a two character ligature. This fixes rendering for applications that misuse private-use characters to display square symbols. - Fix Unicode emoji presentation variant selector causing new a fallback font instance to be created - Fix a rare error that prevented the Unicode input kitten from working sometimes - Allow using Ctrl+Alt+letter in legacy keyboard modes by outputting them as Ctrl+letter and Alt+letter. This matches other terminals' behavior. - Fix cursor position off-by-one on horizontal axis when resizing the terminal - Wayland: Fix auto-repeat of keys not working - Wayland: Add support for window decorations provided by the Wayland shell - macOS: Fix URL hints not working - macOS: Fix shell not starting in login mode on some computers - macOS: Output errors into console.app when running as a bundle version 0.8.0 [2018-02-24] ----------------------------- - A framework for kittens, that is, small terminal programs designed to run inside kitty and extend its capabilities. Examples include unicode input and selecting URLs with the keyboard. - Input arbitrary unicode characters by pressing Ctrl+Shift+u. You can choose characters by name, by hex code, by recently used, etc. There is even and editable Favorites list. - Open URLs using only the keyboard. kitty has a new "hints mode". Press Ctrl+Shift+e and all detected URLs on the screen are highlighted with a key to press to open them. The facility is customizable so you can change what is detected as a URL and which program is used to open it. - Add an option to change the titlebar color of kitty windows on macOS - Only consider Emoji characters with default Emoji presentation to be two cells wide. This matches the standard. Also add support for the Unicode Emoji variation presentation selector. - Prevent video tearing during high speed scrolling by syncing draws to the monitor's refresh rate. There is a new configuration option to control this ``sync_to_monitor``. - When displaying only a single window, use the default background color of the window (which can be changed via escape codes) as the color for the margin and padding of the window. - Add some non standard terminfo capabilities used by neovim and tmux. - Fix large drop in performance when using multiple top-level windows on macOS - Fix save/restore of window sizes not working correctly. - Remove option to use system wcwidth(). Now always use a wcwidth() based on the Unicode standard. Only sane way. - Fix a regression that caused a few ligature glyphs to not render correctly in rare circumstances. - Browsing the scrollback buffer now happens in an overlay window instead of a new window/tab. version 0.7.1 [2018-01-31] --------------------------- - Add an option to adjust the width of character cells - Fix selecting text with the mouse in the scrollback buffer selecting text from the line above the actually selected line - Fix some italic fonts having the right edge of characters cut-off, unnecessarily version 0.7.0 [2018-01-24] --------------------------- - Allow controlling kitty from the shell prompt/scripts. You can open/close/rename windows and tabs and even send input to specific windows. See the README for details. - Add option to put tab bar at the top instead of the bottom - Add option to override the default shell - Add "Horizontal" and "Vertical" window layouts - Sessions: Allow setting titles and working directories for individual windows - Option to copy to clipboard on mouse select - Fix incorrect reporting of mouse move events when using the SGR protocol - Make alt+backspace delete the previous word - Take the mouse wheel multiplier option in to account when generating fake key scroll events - macOS: Fix closing top-level window does not transfer focus to other top-level windows. - macOS: Fix alt+arrow keys not working when disabling the macos_option_as_alt config option. - kitty icat: Workaround for bug in ImageMagick that would cause some images to fail to display at certain sizes. - Fix rendering of text with ligature fonts that do not use dummy glyphs - Fix a regression that caused copying of the selection to clipboard to only copy the visible part of the selection - Fix incorrect handling of some unicode combining marks that are not re-ordered - Fix handling on non-BMP combining characters - Drop the dependency on libunistring version 0.6.1 [2017-12-28] --------------------------- - Add an option to fade the text in inactive windows - Add new actions to open windows/tabs/etc. with the working directory set to the working directory of the current window. - Automatically adjust cell size when DPI changes, for example when kitty is moved from one monitor to another with a different DPI - Ensure underlines are rendered even for fonts with very poor metrics - Fix some emoji glyphs not colored on Linux - Internal wcwidth() implementation is now auto-generated from the unicode standard database - Allow configuring the modifiers to use for rectangular selection with the mouse. - Fix incorrect minimum wayland version in the build script - Fix a crash when detecting a URL that ends at the end of the line - Fix regression that broke drawing of hollow cursor when window loses focus version 0.6.0 [2017-12-18] --------------------------- - Support background transparency via the background_opacity option. Provided that your OS/window manager supports transparency, you can now have kitty render pixels that have only the default background color as semi-transparent. - Support multiple top level (OS) windows. These windows all share the sprite texture cache on the GPU, further reducing overall resource usage. Use the shortcut `ctrl+shift+n` to open a new top-level window. - Add support for a *daemon* mode using the `--single-instance` command line option. With this option you can have only a single kitty instance running. All future invocations simply open new top-level windows in the existing instance. - Support colored emoji - Use CoreText instead of FreeType to render text on macOS - Support running on the "low power" GPU on dual GPU macOS machines - Add a new "grid" window layout - Drop the dependency on glfw (kitty now uses a modified, bundled copy of glfw) - Add an option to control the audio bell volume on X11 systems - Add a command line switch to set the name part of the WM_CLASS window property independently. - Add a command line switch to set the window title. - Add more options to customize the tab-bar's appearance (font styles and separator) - Allow drag and drop of files into kitty. On drop kitty will paste the file path to the running program. - Add an option to control the underline style for URL highlighting on hover - X11: Set the WINDOWID environment variable - Fix middle and right buttons swapped when sending mouse events to child processes - Allow selecting in a rectangle by holding down Ctrl+Alt while dragging with the mouse. version 0.5.1 [2017-12-01] --------------------------- - Add an option to control the thickness of lines in box drawing characters - Increase max. allowed ligature length to nine characters - Fix text not vertically centered when adjusting line height - Fix unicode block characters not being rendered properly - Fix shift+up/down not generating correct escape codes - Image display: Fix displaying images taller than two screen heights not scrolling properly version 0.5.0 [2017-11-19] --------------------------- - Add support for ligature fonts such as Fira Code, Hasklig, etc. kitty now uses harfbuzz for text shaping which allow it to support advanced OpenType features such as contextual alternates/ligatures/combining glyphs/etc. - Make it easy to select fonts by allowing listing of monospace fonts using: kitty list-fonts - Add an option to have window focus follow mouse - Add a keyboard shortcut (ctrl+shift+f11) to toggle fullscreen mode - macOS: Fix handling of option key. It now behaves just like the alt key on Linux. There is an option to make it type unicode characters instead. - Linux: Add support for startup notification on X11 desktops. kitty will now inform the window manager when its startup is complete. - Fix shell prompt being duplicated when window is resized - Fix crash when displaying more than 64 images in the same session - Add support for colons in SGR color codes. These are generated by some applications such as neovim when they mistakenly identify kitty as a libvte based terminal. - Fix mouse interaction not working in apps using obsolete mouse interaction protocols - Linux: no longer require glew as a dependency version 0.4.2 [2017-10-23] --------------------------- - Fix a regression in 0.4.0 that broke custom key mappings - Fix a regression in 0.4.0 that broke support for non-QWERTY keyboard layouts - Avoid using threads to reap zombie child processes. Also prevent kitty from hanging if the open program hangs when clicking on a URL. version 0.4.0 [2017-10-22] --------------------------- - Support for drawing arbitrary raster graphics (images) in the terminal via a new graphics protocol. kitty can draw images with full 32-bit color using both ssh connections and files/shared memory (when available) for better performance. The drawing primitives support alpha blending and z-index. Images can be drawn both above and below text. See https://github.com/kovidgoyal/kitty/blob/master/graphics-protocol.asciidoc for details. - Refactor kitty's internals to make it even faster and more efficient. The CPU usage of kitty + X server while doing intensive tasks such as scrolling a file continuously in less has been reduced by 50%. There are now two configuration options ``repaint_delay`` and ``input_delay`` you can use to fine tune kitty's performance vs CPU usage profile. The CPU usage of kitty + X when scrolling in less is now significantly better than most (all?) other terminals. See https://github.com/kovidgoyal/kitty#performance - Hovering over URLs with the mouse now underlines them to indicate they can be clicked. Hold down Ctrl+Shift while clicking to open the URL. - Selection using the mouse is now more intelligent. It does not add blank cells (i.e. cells that have no content) after the end of text in a line to the selection. - The block cursor in now fully opaque but renders the character under it in the background color, for enhanced visibility. - Allow combining multiple independent actions into a single shortcut - Add a new shortcut to pass the current selection to an external program - Allow creating shortcuts to open new windows running arbitrary commands. You can also pass the current selection to the command as an arguments and the contents of the screen + scrollback buffer as stdin to the command.