0.29
- Copy to clipboard using OSC52 (#974)
- Derive standard traits for "SetCursorStyle" (#909)
- Add query_keyboard_enhancement_flags to read enabled flags (#958)
- Add is_* and as_* methods to the event enums (#949)
- Add a feature flag for derive_more impls (#970)
- Update rustix to 1.0 (#982)
- Upgrade various dependencies
- Correctly fix KeyModifiers Display impl Properly adding + in between modifiers (#979)
@joshka @linrongbin16 @kmicklas @maciek50322 @rosew0od @sxyazi @the-mikedavis @hthuz @aschey @naseschwarz @Flokkq @gaesa @WindSoilder
0.28
- Capture double click mouse events on windows (#826)
- (De)serialize Reset color (#824)
- Add functions to allow constructing
Attributesin a const context (#817) - Implement
DisplayforKeyCodeandKeyModifiers(#862)
- Use Rustix by default instead of libc. Libc can be re-enabled if necessary with the
libcfeature flag (#892) FileDescnow requires a lifetime annotation.- Improve available color detection (#885)
- Speed up
SetColorsby ~15-25% (#879) - Remove unsafe and unnecessary size argument from
FileDesc::read()(#821)
- Fix duplicate bit masks for caps lock and num lock (#863). This breaks serialization of
KeyEventState
@rustco @timstr @illiteratewriter @heaths @joshka @aschey @joshka @martinvonz @linrongbin16 @rtczza @sjakk @kierdavis @Destroy666x @stphnt @5donuts @kdheepak @valerii15298 @javaLux @alt-art @jumbledFox
0.27.0
- Add
NO_COLORsupport (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_sizefunction 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.
- Make the events module an optional feature
events(to make crossterm more lightweight) (#776)
- 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
- Add synchronized output/update control (#756)
- Add kitty report alternate keys functionality (#754)
- Updated dev dependencies.
- Fix incorrect return in kitty keyboard enhancement check (#751)
- Fix panic when using
use-dev-ttyfeature flag (#762)
@yyogo @jcdickinson @the-mikedavis
0.26.0
- Add
SetCursorStyleto 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)
- Improved F1-F4 handling for kitty keyboard protocol. (#736)
- Improved parsing of event types/modifiers with certain keys for kitty protocol. (#716)
- Remove
SetCursorShapein vavour ofSetCursorStyle. (#742) - Make Windows resize event match
terminal::size(#714)
@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::PasteandEnableBracketedPaste). - 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
SetStylecommand to allow setting various styling in one command. - Terminal Focus events (see
Event::FocusGainedandEvent::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
- 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
- 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
- Expose
is_rawfunction. - Add 'purge' option on unix system, this clears the entire screen buffer.
- Improve serialisation for color enum values.