aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--atuin/src/command/client/search/interactive.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/atuin/src/command/client/search/interactive.rs b/atuin/src/command/client/search/interactive.rs
index 3cc53da2..14b80f78 100644
--- a/atuin/src/command/client/search/interactive.rs
+++ b/atuin/src/command/client/search/interactive.rs
@@ -7,7 +7,8 @@ use atuin_common::utils;
use crossterm::{
event::{
self, DisableMouseCapture, EnableMouseCapture, Event, KeyCode, KeyEvent, KeyModifiers,
- MouseEvent,
+ KeyboardEnhancementFlags, MouseEvent, PopKeyboardEnhancementFlags,
+ PushKeyboardEnhancementFlags,
},
execute, terminal,
};
@@ -562,14 +563,21 @@ impl Stdout {
pub fn new(inline_mode: bool) -> std::io::Result<Self> {
terminal::enable_raw_mode()?;
let mut stdout = stdout();
+
if !inline_mode {
execute!(stdout, terminal::EnterAlternateScreen)?;
}
+
execute!(
stdout,
event::EnableMouseCapture,
event::EnableBracketedPaste,
+ PushKeyboardEnhancementFlags(
+ KeyboardEnhancementFlags::DISAMBIGUATE_ESCAPE_CODES
+ | KeyboardEnhancementFlags::REPORT_ALL_KEYS_AS_ESCAPE_CODES
+ ),
)?;
+
Ok(Self {
stdout,
inline_mode,
@@ -586,6 +594,7 @@ impl Drop for Stdout {
self.stdout,
event::DisableMouseCapture,
event::DisableBracketedPaste,
+ PopKeyboardEnhancementFlags
)
.unwrap();
terminal::disable_raw_mode().unwrap();