Skip to content

Releases: crossterm-rs/crossterm

0.27.0

06 Aug 12:25
Compare
Choose a tag to compare

Version 0.27

Added ⭐

  • Add NO_COLOR support (https://no-color.org/)
  • Add option to force overwrite NO_COLOR (#802)
  • Add support for scroll left/right events on windows and unix systems (#788).
  • Add window_size function to fetch pixel width/height of screen for more sophisticated rendering in terminals.
  • Add support for deserializing hex color strings to `Color`` e.g #fffff.

Changes

  • Make the events module an optional feature events (to make crossterm more lightweight) (#776)

Breaking ⚠️

  • Set minimum rustc version to 1.58 (#798)
  • Change all error types to std::io::Result (#765)

@Gronis, @kevin-vigor, @Wilfred, @benjajaja, @blt-r, @Piturnah, @kdheepak, @DeathVenom54, @senekor, @joseluis, @gibbz00, @lesleyrs, @jhartzell42

0.26.1

26 Feb 15:56
Compare
Choose a tag to compare

Version 0.26.1

Added ⭐

  • Add synchronized output/update control (#756)
  • Add kitty report alternate keys functionality (#754)
  • Updated dev dependencies.

Fixed 🐛

  • Fix incorrect return in kitty keyboard enhancement check (#751)
  • Fix panic when using use-dev-tty feature flag (#762)

Contributors

@yyogo @jcdickinson @the-mikedavis

0.26.0

28 Jan 10:17
338c122
Compare
Choose a tag to compare

Added ⭐

  • Add SetCursorStyle to set the cursor appearance and visibility. (#742)
  • Add key release event for windows. (#745)
  • Add a function to check if the kitty keyboard enhancement protocol is available. (#732)
  • Add filedescriptors poll in order to move away from mio in the future (can be used via use-dev-tty). (#735)

Fixed 🐛

  • Improved F1-F4 handling for kitty keyboard protocol. (#736)
  • Improved parsing of event types/modifiers with certain keys for kitty protocol. (#716)

Breaking ⚠️

  • Remove SetCursorShape in vavour of SetCursorStyle. (#742)
  • Make Windows resize event match terminal::size (#714)

Contributors

@pianohacker , @AhoyISki , @Cl00e9ment , @yyogo , @the-mikedavis , @djarb , @Piturnah , @MitMaro , @Yusuto , @generic-user1 , @baldoalessandro , @CenTdemeern1 , @Blatko1 , @aaarkid @basilkohler , @TimonPost

0.25

10 Aug 20:16
5d02ed8
Compare
Choose a tag to compare

BREAKING: Copy trait is removed from Event, you can keep it by removing the "bracked-paste" feature flag. However, this flag might be standardized in the future.
We removed the Copy from Event because the new Paste event, which contains a pasted string into the terminal, which is a non-copy string.

  • Add the ability to paste a string in into the terminal and fetch the pasted string via events (see Event::Paste and EnableBracketedPaste ).
  • Add support for functional key codes from kitty keyboard protocol. Try out by PushKeyboardEnhancementFlags. This protocol allows for:
    • See: https://sw.kovidgoyal.net/kitty/keyboard-protocol/#modifiers
    • Press, Repeat, and Release event kinds for kitty-enabled terminals.
    • SUPER, HYPER, META modifiers.
    • Media keycodes
    • Right/left SHIFT, Control, Alt, Super, Hyper, Meta
    • IsoLevel3Shift, IsoLevel5Shift
    • Capslock, scroll lock, numlock
    • Printscreen, pauze, menue, keyboard begin.
  • Create SetStyle command to allow setting various styling in one command.
  • Terminal Focus events (see Event::FocusGained and Event::FocusLost), WINDOWS ONLY.

0.24

02 Jul 19:44
0c20590
Compare
Choose a tag to compare
  • Add DoubleUnderlined, Undercurled, Underdots the text, Underdotted, Underdashes, Underdashed attributes and allow coloring their foreground/background color.
  • Fix windows unicode character parsing, this fixed various key combinations and support typing unicode characters.
  • Consistency and better documentation on mouse cursor operations (BREAKING CHANGE).
    • MoveTo, MoveToColumn, MoveToRow are 0-based. (left top most cell is 0,0). Moving like this is absolute
    • MoveToNextLine, MoveToPreviousLine, MoveUp, MoveDown, MoveRight, MoveLeft are 1-based,. Moving like this is relative. Moving 1 left means moving 1 left. Moving 0 to the left is not possible, wikipedia states that most terminals will just default to 1.
  • terminal::size returns error when previously it returned (0,0).
  • Remove println from serialization code.
  • Fix the mouse up for the middle and right buttons.
  • Fix escape codes on Git-Bash + Windows Terminal / Alacritty / WezTerm.
  • Add support for cursor keys in application mode.

0.23

06 Feb 13:27
9a50fd2
Compare
Choose a tag to compare
  • Update dependencies.
  • Add 0 check for all cursor functions to prevent undefined behaviour.
  • Add CSIu key parsing for unix.
  • Improve control character window key parsing supporting (e.g. CTRL [ and ])
  • Update library to 2021 edition.

0.22.1

06 Feb 10:31
db95626
Compare
Choose a tag to compare
  • Update yanked version crossterm-winapi and move to crossterm-winapi 0.9.0.
  • Changed panic to error when calling disable-mouse capture without setting it first.
  • Update bitflags dependency.

0.21

06 Feb 10:29
f909b3d
Compare
Choose a tag to compare
  • Expose is_raw function.
  • Add 'purge' option on unix system, this clears the entire screen buffer.
  • Improve serialisation for color enum values.

0.20

10 Jun 14:00
a618a9f
Compare
Choose a tag to compare
  • Update from signal-hook with 'mio-feature flag' to signal-hook-mio 0.2.1.
  • Manually implements Eq, PartialEq and Hash for KeyEvent improving equality checks and hash calculation.
  • crossterm::ErrorKind to io::Error.
  • Added Cursor Shape Support.
  • Add support for function keys F13...F20.
  • Support taking any Display in SetTitle command.
  • Remove lazy_static dependency.
  • Remove extra Clone bounds in the style module.
  • Add MoveToRow command.
  • Remove writer parameter from execute_winapi

0.19

10 Jun 14:00
Compare
Choose a tag to compare
  • Use single thread for async event reader.
  • Patch timeout handling for event polling this was not working correctly.
  • Add unix support for more key combinations mainly complex ones with ALT/SHIFT/CTRL.
  • Derive PartialEq and Eq for ContentStyle
  • Fix windows resize event size, this used to be the buffer size but is screen size now.
  • Change Command::ansi_code to Command::write_ansi, this way the ansi code will be written to given formatter.