• Stable 1.4.0 591829bf50


    dnkl released this 1 year ago | 2565 commits to master since this release


    • Sync to terminfo. This is a tmux extension that indicates "Synchronized Updates" are supported.
    • --hold command line option to footclient.
    • Key mapping for KP_Decimal.
    • Terminfo entries for keypad keys: ka1, ka2, ka3, kb1, kb3, kc1, kc2, kc3, kp5, kpADD, kpCMA, kpDIV, kpDOT, kpMUL, kpSUB and kpZRO.
    • blink option to footrc; a boolean that lets you control whether the cursor should blink or not by default. Note that applications can override this.
    • Multi-seat support
    • Implemented C0::FF (form feed)
    • pipe-visible and pipe-scrollback key bindings. These let you pipe either the currently visible text, or the entire scrollback to external tools (#29). Example: pipe-visible=[sh -c "xurls | bemenu | xargs -r firefox] Control+Print


    • Background transparency to only be used with the default background color.
    • Copy-to-clipboard/primary-selection to insert a line break if either the last cell on the previous line or the first cell on the next line is empty.
    • Number of lines to scroll is now always clamped to the number of lines in the scrolling region..
    • New terminal windows spawned with ctrl+shift+n are no longer double forked.
    • Unicode combining character overflow errors are only logged when debug logging has been enabled.
    • OSC 4 (Set Color) now updates already rendered cells, excluding scrollback.
    • Mouse cursor from hand2 to left_ptr when client is capturing the mouse.
    • Sixel images are now removed when the font size is decreased.
    • DECSCUSR (Set Cursor Style, CSI Ps SP q) now uses Ps=0 instead of Ps=2 to reset the style to the user configured default style. Ps=2 now always configures a Steady Block cursor.
    • Se terminfo capability from \E[2 q to \E[ q.
    • Hollow cursor to be drawn when window has lost keyboard focus rather than visual focus.


    • Do not stop an ongoing selection when shift is released. When the client application is capturing the mouse, one must hold down shift to start a selection. This selection is now finalized only when the mouse button is released - not as soon as shift is released.
    • Selected cells did not appear selected if programmatically modified.
    • Rare crash when scrolling and the new viewport ended up exactly on the wrap around.
    • Selection handling when viewport wrapped around.
    • Restore signal mask in the client process.
    • Set IUTF8.
    • Selection of double-width characters. It is no longer possible to select half of a double-width character.
    • Draw hollow block cursor on top of character.
    • Set an initial TIOCSWINSZ. This ensures clients never read a 0x0 terminal size (#20).
    • Glyphs overflowing into surrounding cells (#21).
    • Crash when last rendered cursor cell had scrolled off screen and \E[J3 was executed.
    • Assert (debug builds) when an \e]4 OSC escape was not followed by a ;.
    • Window title always being set to "foot" on reset.
    • Terminfo entry kb2 (center keypad key); it is now set to \EOu (which is what foot emits) instead of the incorrect value \EOE.
    • Palette re-use in sixel images. Previously, the palette was reset after each image.
    • Do not auto-resize a sixel image for which the cllent has specified a size. This fixes an issue where an image would incorrectly overflow into the cell row beneath.
    • Text printed, or other sixel images drawn, on top of a sixel image no longer erases the entire image, only the part(s) covered by the new text or image.
    • Sixel images being erased when printing text next to them.
    • Sixel handling when resizing window.
    • Sixel handling when scrollback wraps around.
    • Foot now issues much fewer wl_surface_damage_buffer() calls (#35).
    • C0::VT to be processed as C0::LF. Previously, C0::VT would only move the cursor down, but never scroll.
    • C0::HT (Horizontal Tab, or \t) no longer clears LCF (Last Column Flag).
    • C0::LF now always clears LCF. Previously, it only cleared it when the cursor was not at the bottom of the scrolling region.
    • IND and RI now clears LCF.
    • DECAWM now clears LCF.
    • A multi-column character that does not fit on the current line is now printed on the next line, instead of only printing half the character.
    • Font size can no longer be reduced to negative values (#38).

    The following people helped with this release: