Releases: crossterm-rs/crossterm
0.28
Version 0.28
Added ⭐
- Capture double click mouse events on windows (#826)
- (De)serialize Reset color (#824)
- Add functions to allow constructing
Attributes
in a const context (#817) - Implement
Display
forKeyCode
andKeyModifiers
(#862)
Changed ⚙️
- Use Rustix by default instead of libc. Libc can be re-enabled if necessary with the
libc
feature flag (#892) FileDesc
now requires a lifetime annotation.- Improve available color detection (#885)
- Speed up
SetColors
by ~15-25% (#879) - Remove unsafe and unnecessary size argument from
FileDesc::read()
(#821)
Breaking ⚠️
- Fix duplicate bit masks for caps lock and num lock (#863).
This breaks serialization ofKeyEventState
@rustco @timstr @illiteratewriter @heaths @joshka @aschey @joshka @martinvonz @linrongbin16 @rtczza @sjakk @kierdavis @Destroy666x @stphnt @5donuts @kdheepak @valerii15298 @javaLux @alt-art @jumbledFox
0.27.0
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 ⚠️
@Gronis, @kevin-vigor, @Wilfred, @benjajaja, @blt-r, @Piturnah, @kdheepak, @DeathVenom54, @senekor, @joseluis, @gibbz00, @lesleyrs, @jhartzell42
0.26.1
0.26.0
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 ofSetCursorStyle
. (#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
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
andEnableBracketedPaste
). - 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
andEvent::FocusLost
), WINDOWS ONLY.
0.24
- 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
0.22.1
0.21
0.20
- 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
toio::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