codeberg dnkl/foot 1.18.0

latest release: 1.18.1
one month ago

Added

  • cursor.blink-rate option, allowing you to configure the rate the cursor blinks with (when cursor.blink=yes) (#1707);
  • Support for wp_single_pixel_buffer_v1; certain overlay surfaces will now utilize the new single-pixel buffer protocol. This mainly reduces the memory usage, but should also be slightly faster.
  • Support for high-res mouse wheel scroll events (#1738).
  • Styled and colored underlines (#828).
  • Support for SGR 21 (double underline).
  • Support for XTPUSHCOLORS, XTPOPCOLORS and XTREPORTCOLORS, i.e. color palette stack (#856).
  • Log output now respects the NO_COLOR environment variable (#1771).
  • Support for in-band window resize notifications, private mode 2048.
  • Support for OSC-99 "Kitty desktop notifications".
  • desktop-notifications.command option, replaces notify.
  • desktop-notifications.inhibit-when-focused option, replaces notify-focus-inhibit.
  • ${category}, ${urgency}, ${expire-time}, ${replace-id}, ${icon} and ${action-argument} added to the desktop-notifications.command template.
  • desktop-notifications.command-action-argument option, defining how ${action-argument} (in desktop-notifications.command) should be expanded.
  • desktop-notifications.close option, defining what to execute when an application wants to close an existing notification (via an OSC-99 escape sequence).

Changed

  • All XTGETTCAP capabilities are now in the tigetstr() format:

    • parameterized string capabilities were previously "source encoded", meaning e.g. \E where not "decoded" into \x1b.
    • Control characters were also "source encoded", meaning they were returned as e.g. "^G" instead of \x07 (#1701).

    In other words, if, after this change, XTGETTCAP returns a string that is different compared to tigetstr(), then it is likely a bug in foot's implementation of XTGETTCAP.

  • If the cursor foreground and background colors are identical (for example, when cursor uses inverted colors and the cell's foreground and background are the same), the cursor will instead be rendered using the default foreground and background colors, inverted (#1761).

  • Mouse wheel events now generate BTN_WHEEL_BACK and BTN_WHEEL_FORWARD "button presses", instead of BTN_BACK and BTN_FORWARD. The default bindings have been updated, and scrollback-up-mouse, scrollback-down-mouse, font-increase and font-decrease now use the new button names.

    This change allow users to separate physical mouse buttons that also generates BTN_BACK and BTN_FORWARD, from wheel scrolling (#1763).

  • Replaced the old catppuccin theme with updated flavored themes pulled from catppuccin/foot

  • Mouse selections can now be started inside the margins (#1702).

Deprecated

  • notify option; replaced by desktop-notifications.command.
  • notify-focus-inhibit option; replaced by desktop-notifications.inhibit-when-focused.

Fixed

  • Crash when zooming in or out, with dpi-aware=yes, and the monitor's DPI is 0 (this is true for, for example, nested Wayland sessions, or in virtualized environments).
  • No error response for empty XTGETTCAP request (#1694).
  • Unicode-mode in one foot client affecting other clients, in foot server mode (#1717).
  • IME interfering in URL-mode (#1718).
  • OSC-52 reply interleaved with other data sent to the client (#1734).
  • XKB compose state being reset when foot receives a new keymap (#1744).
  • Regression: alpha changes through OSC-11 sequences not taking effect until window is resized.
  • VS15 being ignored (#1742).
  • VS16 being ignored for a subset of the valid VS16 sequences (#1742).
  • Crash in debug builds, when using OSC-12 to set the cursor color and foot config has not set any custom cursor colors (i.e. without OSC-12, inverted fg/bg would be used).
  • Wrong color used when drawing the unfocused, hollow cursor. Encoding of BTN_BACK and BTN_FORWARD, when sending a mouse input escape sequence to the terminal application.

Contributors

  • abs3nt
  • Artturin
  • Craig Barnes
  • Jan Beich
  • Mariusz Bialonczyk
  • Nicolas Kolling Ribas

Don't miss a new foot release

NewReleases is sending notifications on new releases.