diff --git a/docs/changelog.rst b/docs/changelog.rst index 7549af5ae..e8501722f 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -121,6 +121,450 @@ To update |kitty|, :doc:`follow the instructions `. :opt:`resize_debounce_time`. +- Add an option :opt:`disable_ligatures` to disable + multi-character ligatures under the cursor to make editing easier + or disable them completely (:iss:`461`) + +- Allow creating new OS windows in session files (:iss:`1514`) + +- Allow setting OS window size in session files + +- Add an option :opt:`tab_switch_strategy` to control which + tab becomes active when the current tab is closed (:pull:`1524`) + +- Allow specifying a value of ``none`` for the :opt:`selection_foreground` + which will cause kitty to not change text color in selections (:iss:`1358`) + +- Make live resizing of OS windows smoother and show the size in cells + while the resize is in progress. + +- When a window is closed, switch focus to the previously active window (if + any) instead of picking the previous window in the layout (:iss:`1450`) + +- icat kitten: Add support for displaying images at http(s) URLs (:iss:`1340`) + +- A new option :opt:`strip_trailing_spaces` to optionally remove trailing + spaces from lines when copying to clipboard. + +- A new option :opt:`tab_bar_min_tabs` to control how many tabs must be + present before the tab-bar is shown (:iss:`1382`) + +- Automatically check for new releases and notify when an update is available, + via the system notification facilities. Can be controlled by + :opt:`update_check_interval` (:iss:`1342`) + +- macOS: Fix :kbd:`cmd+period` key not working (:iss:`1318`) + +- macOS: Add an option :opt:`macos_show_window_title_in_menubar` to not + show the current window title in the menu-bar (:iss:`1066`) + +- macOS: Workaround for cocoa bug that could cause the mouse cursor to become + hidden in other applications in rare circumstances (:iss:`1218`) + +- macOS: Allow assigning only the left or right :kbd:`Option` key to work as the + :kbd:`Alt` key. See :opt:`macos_option_as_alt` for details (:iss:`1022`) + +- Fix using remote control to set cursor text color causing errors when + creating new windows (:iss:`1326`) + +- Fix window title for minimized windows not being updated (:iss:`1332`) + +- macOS: Fix using multi-key sequences to input text ignoring the + first few key presses if the sequence is aborted (:iss:`1311`) + +- macOS: Add a number of common macOS keyboard shortcuts + +- macOS: Reduce energy consumption by not rendering occluded windows + +- Fix scrollback pager history not being cleared when clearing the + main scrollback buffer (:iss:`1387`) + +- macOS: When closing a top-level window only switch focus to the previous kitty + window if it is on the same workspace (:iss:`1379`) + +- macOS: Fix :opt:`sync_to_monitor` not working on Mojave. + +- macOS: Use the system cursor blink interval by default + :opt:`cursor_blink_interval`. + +- Wayland: Use the kitty Wayland backend by default. Can be switched back + to using XWayland by setting the environment variable: + ``KITTY_DISABLE_WAYLAND=1`` + +- Add a ``no-append`` setting to :opt:`clipboard_control` to disable + the kitty copy concatenation protocol extension for OSC 52. + +- Update to using the Unicode 12 standard + +- Unicode input kitten: Allow using the arrow keys in code mode to go to next + and previous unicode symbol. + +- macOS: Fix specifying initial window size in cells not working correctly on + Retina screens (:iss:`1444`) + +- Fix a regression in version 0.13.0 that caused background colors of space + characters after private use unicode characters to not be respected + (:iss:`1455`) + +- Only update the selected text to clipboard when the selection is finished, + not continuously as it is updated. (:iss:`1460`) + +- Allow setting :opt:`active_border_color` to ``none`` to not draw a border + around the active window (:iss:`805`) + +- Use negative values for :opt:`mouse_hide_wait` to hide the mouse cursor + immediately when pressing a key (:iss:`1534`) + +- When encountering errors in :file:`kitty.conf` report them to the user + instead of failing to start. + +- Allow the user to control the resize debounce time via + :opt:`resize_debounce_time`. + + +0.13.3 [2019-01-19] +------------------------------ + +- icat kitten: Add a ``--stdin`` option to control if image data is read from + STDIN (:iss:`1308`) + +- hints kitten: Start hints numbering at one instead of zero by default. Added + an option ``--hints-offset`` to control it. (:iss:`1289`) + +- Fix a regression in the previous release that broke using ``background`` for + :opt:`cursor_text_color` (:iss:`1288`) + +- macOS: Fix dragging kitty window tabs in traditional full screen mode causing + crashes (:iss:`1296`) + +- macOS: Ensure that when running from a bundle, the bundle kitty exe is + preferred over any kitty in PATH (:iss:`1280`) + +- macOS: Fix a regression that broke mapping of :kbd:`ctrl+tab` (:iss:`1304`) + +- Add a list of user-created kittens to the docs + +- Fix a regression that broke changing mouse wheel scroll direction with + negative :opt:`wheel_scroll_multiplier` values in full-screen applications + like vim (:iss:`1299`) + +- Fix :opt:`background_opacity` not working with pure white backgrounds + (:iss:`1285`) + +- macOS: Fix "New OS Window" dock action not working when kitty is not focused + (:iss:`1312`) + +- macOS: Add aliases for close window and new tab actions that conform to common + Apple shortcuts for these actions (:iss:`1313`) + +- macOS: Fix some kittens causing 100% CPU usage + + +0.13.2 [2019-01-04] +------------------------------ + +- Add a new option :opt:`tab_title_template` to control how tab titles + are formatted. In particular the template can be used to display + the tab number next to the title (:iss:`1223`) + +- Report the current foreground processes as well as the original child process, + when using `kitty @ ls` + +- Use the current working directory of the foreground process for the + `*_with_cwd` actions that open a new window with the current working + directory. + +- Add a new ``copy_or_interrupt`` action that can be mapped to kbd:`ctrl+c`. It + will copy if there is a selection and interrupt otherwise (:iss:`1286`) + +- Fix setting :opt:`background_opacity` causing window margins/padding to be slightly + different shade from background (:iss:`1221`) + +- Handle keyboards with a "+" key (:iss:`1224`) + +- Fix Private use Unicode area characters followed by spaces at the end of text + not being rendered correctly (:iss:`1210`) + +- macOS: Add an entry to the dock menu to open a new OS window (:iss:`1242`) + +- macOS: Fix scrolling very slowly with wheel mice not working (:iss:`1238`) + +- Fix changing :opt:`cursor_text_color` via remote control not working + (:iss:`1229`) + +- Add an action to resize windows that can be mapped to shortcuts in :file:`kitty.conf` + (:pull:`1245`) + +- Fix using the ``new_tab !neighbor`` action changing the order of the + non-neighboring tabs (:iss:`1256`) + +- macOS: Fix momentum scrolling continuing when changing the active window/tab + (:iss:`1267`) + + +0.13.1 [2018-12-06] +------------------------------ + +- Fix passing input via the pipe action to a program without a window not + working. + +- Linux: Fix a regression in the previous release that caused automatic + selection of bold/italic fonts when using aliases such as "monospace" to not + work (:iss:`1209`) + +- Fix resizing window smaller and then restoring causing some wrapped lines to not + be properly unwrapped (:iss:`1206`) + +0.13.0 [2018-12-05] +------------------------------ + +- Add an option :opt:`scrollback_pager_history_size` to tell kitty to store + extended scrollback to use when viewing the scrollback buffer in a pager + (:iss:`970`) + +- Modify the kittens sub-system to allow creating custom kittens without any + user interface. This is useful for creating more complex actions that can + be bound to key presses in :file:`kitty.conf`. See + doc:`kittens/custom`. (:iss:`870`) + +- Add a new ``nth_window`` action that can be used to go to the nth window and + also previously active windows, using negative numbers. Similarly, + ``goto_tab`` now accepts negative numbers to go to previously active tabs + (:iss:`1040`) + +- Allow hiding the tab bar completely, by setting :opt:`tab_bar_style` to + ``hidden``. (:iss:`1014`) + +- Allow private use unicode characters to stretch over more than a single + neighboring space (:pull:`1036`) + +- Add a new :opt:`touch_scroll_multiplier` option to modify the amount + scrolled by high precision scrolling devices such as touchpads (:pull:`1129`) + +- icat kitten: Implement reading image data from STDIN, if STDIN is not + connected to a terminal (:iss:`1130`) + +- hints kitten: Insert trailing spaces after matches when using the + ``--multiple`` option. Also add a separate ``--add-trailing-space`` + option to control this behavior (:pull:`1132`) + +- Fix the ``*_with_cwd`` actions using the cwd of the overlay window rather + than the underlying window's cwd (:iss:`1045`) + +- Fix incorrect key repeat rate on wayland (:pull:`1055`) + +- macOS: Fix drag and drop of files not working on Mojave (:iss:`1058`) + +- macOS: Fix IME input for East Asian languages (:iss:`910`) + +- macOS: Fix rendering frames-per-second very low when processing + large amounts of input in small chunks (:pull:`1082`) + +- macOS: Fix incorrect text sizes calculated when using an external display + that is set to mirror the main display (:iss:`1056`) + +- macOS: Use the system default double click interval (:pull:`1090`) + +- macOS: Fix touch scrolling sensitivity low on retina screens (:iss:`1112`) + +- Linux: Fix incorrect rendering of some fonts when hinting is disabled at + small sizes (:iss:`1173`) + +- Linux: Fix match rules used as aliases in Fontconfig configuration not being + respected (:iss:`1085`) + +- Linux: Fix a crash when using the GNU Unifont as a fallback font + (:iss:`1087`) + +- Wayland: Fix copying from hidden kitty windows hanging (:iss:`1051`) + +- Wayland: Add support for the primary selection protocol + implemented by some compositors (:pull:`1095`) + +- Fix expansion of env vars not working in the :opt:`env` directive + (:iss:`1075`) + +- Fix :opt:`mouse_hide_wait` only taking effect after an event such as cursor + blink or key press (:iss:`1073`) + +- Fix the ``set_background_opacity`` action not working correctly + (:pull:`1147`) + +- Fix second cell of emoji created using variation selectors not having + the same attributes as the first cell (:iss:`1109`) + +- Fix focusing neighboring windows in the grid layout with less than 4 windows + not working (:iss:`1115`) + +- Fix :kbd:`ctrl+shift+special` key not working in normal and application keyboard + modes (:iss:`1114`) + +- Add a terminfo entry for full keyboard mode. + +- Fix incorrect text-antialiasing when using very low background opacity + (:iss:`1005`) + +- When double or triple clicking ignore clicks if they are "far" from each + other (:iss:`1093`) + +- Follow xterm's behavior for the menu key (:iss:`597`) + +- Fix hover detection of URLs not working when hovering over the first colon + and slash characters in short URLs (:iss:`1201`) + +0.12.3 [2018-09-29] +------------------------------ + +- macOS: Fix kitty window not being rendered on macOS Mojave until the window is + moved or resized at least once (:iss:`887`) + +- Unicode input: Fix an error when searching for the string 'fir' (:iss:`1035`) + + +0.12.2 [2018-09-24] +------------------------------ + +- A new ``last_used_layout`` function that can be mapped to a shortcut to + switch to the previously used window layout (:iss:`870`) + +- New ``neighboring_window`` and ``move_window`` functions to switch to + neighboring windows in the current layout, and move them around, similar to + window movement in vim (:iss:`916`) + +- A new ``pipe`` function that can be used to pipe the contents of the screen + and scrollback buffer to any desired program running in a new window, tab or + overlay window. (:iss:`933`) + +- Add a new :option:`kitty --start-as` command line flag to start kitty + full-screen/maximized/minimized. This replaces the ``--start-in-fullscreen`` + flag introduced in the previous release (:iss:`935`) + +- When mapping the ``new_tab`` action allow specifying that the tab should open + next to the current tab instead of at the end of the tabs list (:iss:`979`) + +- macOS: Add a new :opt:`macos_thicken_font` to make text rendering + on macs thicker, which makes it similar to the result of + sub-pixel antialiasing (:pull:`950`) + +- macOS: Add an option :opt:`macos_traditional_fullscreen` to make + full-screening of kitty windows much faster, but less pretty. (:iss:`911`) + +- Fix a bug causing incorrect line ordering when viewing the scrollback buffer + if the scrollback buffer is full (:iss:`960`) + +- Fix drag-scrolling not working when the mouse leaves the window confines + (:iss:`917`) + +- Workaround for broken editors like nano that cannot handle newlines in pasted text + (:iss:`994`) + +- Linux: Ensure that the python embedded in the kitty binary build uses + UTF-8 mode to process command-line arguments (:iss:`924`) + +- Linux: Handle fonts that contain monochrome bitmaps (such as the Terminus TTF + font) (:pull:`934`) + +- Have the :option:`kitty --title` flag apply to all windows created + using :option:`kitty --session` (:iss:`921`) + +- Revert change for backspacing of wide characters in the previous release, + as it breaks backspacing in some wide character aware programs (:iss:`875`) + +- Fix kitty @set-colors not working for tab backgrounds when using the `fade` tabbar style + (:iss:`937`) + +- macOS: Fix resizing semi-transparent windows causing the windows to be + invisible during the resize (:iss:`941`) + +- Linux: Fix window icon not set on X11 for the first OS window (:iss:`961`) + +- macOS: Add an :opt:`macos_custom_beam_cursor` option to use a special + mouse cursor image that can be seen on both light and dark backgrounds + (:iss:`359`) + +- Remote control: Fix the ``focus_window`` command not focusing the + top-level OS window of the specified kitty window (:iss:`1003`) + +- Fix using :opt:`focus_follows_mouse` causing text selection with the + mouse to malfunction when using multiple kitty windows (:iss:`1002`) + +0.12.1 [2018-09-08] +------------------------------ + +- Add a new ``--start-in-fullscreen`` command line flag to start + kitty in full screen mode (:iss:`856`) + +- macOS: Fix a character that cannot be rendered in any font causing + font fallback for all subsequent characters that cannot be rendered in the + main font to fail (:iss:`799`) + +- Linux: Do not enable IME input via ibus unless the ``GLFW_IM_MODULE=ibus`` + environment variable is set. IME causes key processing latency and even + missed keystrokes for many people, so it is now off by default. + +- Fix backspacing of wide characters in wide-character unaware programs not working (:iss:`875`) + +- Linux: Fix number pad arrow keys not working when Numlock is off (:iss:`857`) + +- Wayland: Implement support for clipboard copy/paste (:iss:`855`) + +- Allow mapping shortcuts using the raw key code from the OS (:iss:`848`) + +- Allow mapping of individual key-presses without modifiers as shortcuts + +- Fix legacy invocation of icat as `kitty icat` not working (:iss:`850`) + +- Improve rendering of wavy underline at small font sizes (:iss:`853`) + +- Fix a regression in 0.12.0 that broke dynamic resizing of layouts (:iss:`860`) + +- Wayland: Allow using the :option:`kitty --class` command line flag + to set the app id (:iss:`862`) + +- Add completion of the kitty command for the fish shell (:pull:`829`) + +- Linux: Fix XCompose rules with no defined symbol not working (:iss:`880`) + +- Linux: Fix crash with some Nvidia drivers when creating tabs in the first + top level-window after creating a second top-level window. (:iss:`873`) + +- macOS: Diff kitten: Fix syntax highlighting not working because of + a bug in the 0.12.0 macOS package + +0.12.0 [2018-09-01] +------------------------------ + +- Preserve the mouse selection even when the contents of the screen are + scrolled or overwritten provided the new text does not intersect the + selected lines. + +- Linux: Implement support for Input Method Extensions (multilingual input + using standard keyboards) via `IBus + `_ (:iss:`469`) + +- Implement completion for the kitty command in bash and zsh. See + :ref:`completion`. + +- Render the text under the cursor in a fixed color, configurable via + the option :opt:`cursor_text_color` (:iss:`126`) + +- Add an option :opt:`env` to set environment variables in child processes + from kitty.conf + +- Add an action to the ``clear_terminal`` function to scroll the screen + contents into the scrollback buffer (:iss:`1113`) + +- Implement high precision scrolling with the trackpad on platforms such as + macOS and Wayland that implement it. (:pull:`819`) + +- macOS: Allow scrolling window contents using mouse wheel/trackpad even when the + window is not the active window (:iss:`729`) + +- Remote control: Make the :ref:`at_set-font-size` command more capable. + It can now increment font size and reset it. It also only acts on the + active top-level window, by default (:iss:`1581`) + + 0.13.3 [2019-01-19] ------------------------------ diff --git a/kitty/cmds.py b/kitty/cmds.py index 7ffea4c0e..174174e89 100644 --- a/kitty/cmds.py +++ b/kitty/cmds.py @@ -119,19 +119,29 @@ def ls(boss, window): # set_font_size {{{ @cmd( - 'Set the font size in all windows', - 'Sets the font size to the specified size, in pts.', - argspec='FONT_SIZE', args_count=1 -) + 'Set the font size in the active top-level OS window', + 'Sets the font size to the specified size, in pts. Note' + ' that in kitty all sub-windows in the same OS window' + ' must have the same font size. A value of zero' + ' resets the font size to default. Prefixing the value' + ' with a + or - increments the font size by the specified' + ' amount.', + argspec='FONT_SIZE', args_count=1, options_spec='''\ +--all -a +type=bool-set +By default, the font size is only changed in the active OS window, +this option will cause it to be changed in all OS windows. +''') def cmd_set_font_size(global_opts, opts, args): - try: - return {'size': float(args[0])} - except IndexError: + if not args: raise SystemExit('No font size specified') + fs = args[0] + inc = fs[0] if fs and fs[0] in '+-' else None + return {'size': abs(float(fs)), 'all': opts.all, 'increment_op': inc} def set_font_size(boss, window, payload): - boss.set_font_size(payload['size']) + boss.change_font_size(payload['all'], payload['increment_op'], payload['size']) # }}}