From 5f8c20e2b517faea53680f720553d20ec363e9ab Mon Sep 17 00:00:00 2001 From: sxyazi Date: Tue, 4 Jun 2024 11:46:19 +0800 Subject: [PATCH] fix: use kitty old protocol for Konsole --- README.md | 2 +- yazi-adaptor/src/adaptor.rs | 3 +-- yazi-adaptor/src/emulator.rs | 2 +- yazi-fm/src/app/commands/render.rs | 5 +++++ 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 1f38c33f..73f8a64b 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ https://github.com/sxyazi/yazi/assets/17523360/92ff23fa-0cd5-4f04-b387-894c12265 | Platform | Protocol | Support | | ----------------- | ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | | kitty | [Kitty unicode placeholders](https://sw.kovidgoyal.net/kitty/graphics-protocol/#unicode-placeholders) | ✅ Built-in | -| Konsole | [Inline images protocol](https://iterm2.com/documentation-images.html) | ✅ Built-in | +| Konsole | [Kitty old protocol](https://github.com/sxyazi/yazi/blob/main/yazi-adaptor/src/kitty_old.rs) | ✅ Built-in | | iTerm2 | [Inline images protocol](https://iterm2.com/documentation-images.html) | ✅ Built-in | | WezTerm | [Inline images protocol](https://iterm2.com/documentation-images.html) | ✅ Built-in | | Mintty (Git Bash) | [Inline images protocol](https://iterm2.com/documentation-images.html) | ✅ Built-in | diff --git a/yazi-adaptor/src/adaptor.rs b/yazi-adaptor/src/adaptor.rs index 954d43dc..c0c634d9 100644 --- a/yazi-adaptor/src/adaptor.rs +++ b/yazi-adaptor/src/adaptor.rs @@ -84,8 +84,7 @@ impl Adaptor { protocols.retain(|p| *p == Self::Iterm2); if env_exists("ZELLIJ_SESSION_NAME") { protocols.retain(|p| *p == Self::Sixel); - } - if *TMUX && protocols.len() > 1 { + } else if *TMUX { protocols.retain(|p| *p != Self::KittyOld); } if let Some(p) = protocols.first() { diff --git a/yazi-adaptor/src/emulator.rs b/yazi-adaptor/src/emulator.rs index f590187d..c366e0c4 100644 --- a/yazi-adaptor/src/emulator.rs +++ b/yazi-adaptor/src/emulator.rs @@ -32,7 +32,7 @@ impl Emulator { match self { Self::Unknown(adapters) => adapters, Self::Kitty => vec![Adaptor::Kitty], - Self::Konsole => vec![Adaptor::Iterm2, Adaptor::KittyOld, Adaptor::Sixel], + Self::Konsole => vec![Adaptor::KittyOld], Self::Iterm2 => vec![Adaptor::Iterm2, Adaptor::Sixel], Self::WezTerm => vec![Adaptor::Iterm2, Adaptor::Sixel], Self::Foot => vec![Adaptor::Sixel], diff --git a/yazi-fm/src/app/commands/render.rs b/yazi-fm/src/app/commands/render.rs index e62f50b4..5ed72eb0 100644 --- a/yazi-fm/src/app/commands/render.rs +++ b/yazi-fm/src/app/commands/render.rs @@ -1,6 +1,8 @@ use std::{io::{stderr, BufWriter}, sync::atomic::Ordering}; +use crossterm::{execute, queue, terminal::{BeginSynchronizedUpdate, EndSynchronizedUpdate}}; use ratatui::{backend::{Backend, CrosstermBackend}, buffer::Buffer, CompletedFrame}; +use scopeguard::defer; use yazi_plugin::elements::COLLISION; use crate::{app::App, lives::Lives, root::Root}; @@ -11,6 +13,9 @@ impl App { return; }; + queue!(stderr(), BeginSynchronizedUpdate).ok(); + defer! { execute!(stderr(), EndSynchronizedUpdate).ok(); } + let collision = COLLISION.swap(false, Ordering::Relaxed); let frame = term .draw(|f| {