mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
fix: disable kitty keyboard protocol on Windows due to crossterm inability to handle it (#3250)
This commit is contained in:
parent
e067a705ac
commit
46569a1f48
1 changed files with 10 additions and 8 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
use std::{io, ops::{Deref, DerefMut}, sync::atomic::{AtomicBool, Ordering}};
|
use std::{io, ops::{Deref, DerefMut}, sync::atomic::{AtomicBool, Ordering}};
|
||||||
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use crossterm::{Command, event::{DisableBracketedPaste, DisableMouseCapture, EnableBracketedPaste, EnableMouseCapture, KeyboardEnhancementFlags, PopKeyboardEnhancementFlags, PushKeyboardEnhancementFlags}, execute, queue, style::Print, terminal::{EnterAlternateScreen, LeaveAlternateScreen, SetTitle, disable_raw_mode, enable_raw_mode}};
|
use crossterm::{event::{DisableBracketedPaste, DisableMouseCapture, EnableBracketedPaste, EnableMouseCapture, KeyboardEnhancementFlags, PopKeyboardEnhancementFlags, PushKeyboardEnhancementFlags}, execute, queue, style::Print, terminal::{EnterAlternateScreen, LeaveAlternateScreen, SetTitle, disable_raw_mode, enable_raw_mode}};
|
||||||
use ratatui::{CompletedFrame, Frame, Terminal, backend::CrosstermBackend, buffer::Buffer, layout::Rect};
|
use ratatui::{CompletedFrame, Frame, Terminal, backend::CrosstermBackend, buffer::Buffer, layout::Rect};
|
||||||
use yazi_adapter::{Emulator, Mux, TMUX};
|
use yazi_adapter::{Emulator, Mux, TMUX};
|
||||||
use yazi_config::YAZI;
|
use yazi_config::YAZI;
|
||||||
|
|
@ -48,11 +48,13 @@ impl Term {
|
||||||
yazi_term::RestoreCursor::store(&resp);
|
yazi_term::RestoreCursor::store(&resp);
|
||||||
CSI_U.store(resp.contains("\x1b[?0u"), Ordering::Relaxed);
|
CSI_U.store(resp.contains("\x1b[?0u"), Ordering::Relaxed);
|
||||||
if CSI_U.load(Ordering::Relaxed) {
|
if CSI_U.load(Ordering::Relaxed) {
|
||||||
PushKeyboardEnhancementFlags(
|
_ = queue!(
|
||||||
KeyboardEnhancementFlags::DISAMBIGUATE_ESCAPE_CODES
|
TTY.writer(),
|
||||||
| KeyboardEnhancementFlags::REPORT_ALTERNATE_KEYS,
|
PushKeyboardEnhancementFlags(
|
||||||
)
|
KeyboardEnhancementFlags::DISAMBIGUATE_ESCAPE_CODES
|
||||||
.write_ansi(&mut TTY.writer())?;
|
| KeyboardEnhancementFlags::REPORT_ALTERNATE_KEYS,
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(s) = YAZI.mgr.title() {
|
if let Some(s) = YAZI.mgr.title() {
|
||||||
|
|
@ -67,7 +69,7 @@ impl Term {
|
||||||
|
|
||||||
fn stop(&mut self) -> Result<()> {
|
fn stop(&mut self) -> Result<()> {
|
||||||
if CSI_U.swap(false, Ordering::Relaxed) {
|
if CSI_U.swap(false, Ordering::Relaxed) {
|
||||||
PopKeyboardEnhancementFlags.write_ansi(&mut TTY.writer())?;
|
queue!(TTY.writer(), PopKeyboardEnhancementFlags).ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
if !YAZI.mgr.title_format.is_empty() {
|
if !YAZI.mgr.title_format.is_empty() {
|
||||||
|
|
@ -88,7 +90,7 @@ impl Term {
|
||||||
|
|
||||||
pub(super) fn goodbye(f: impl FnOnce() -> i32) -> ! {
|
pub(super) fn goodbye(f: impl FnOnce() -> i32) -> ! {
|
||||||
if CSI_U.swap(false, Ordering::Relaxed) {
|
if CSI_U.swap(false, Ordering::Relaxed) {
|
||||||
PopKeyboardEnhancementFlags.write_ansi(&mut TTY.writer()).ok();
|
queue!(TTY.writer(), PopKeyboardEnhancementFlags).ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
if !YAZI.mgr.title_format.is_empty() {
|
if !YAZI.mgr.title_format.is_empty() {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue