From 2b2f0d56c6ed92855606b441e3a72118055d181b Mon Sep 17 00:00:00 2001 From: Illia Polosukhin Date: Tue, 3 Feb 2026 00:24:18 -0800 Subject: [PATCH] Disable mouse capture to allow text selection in TUI - Remove EnableMouseCapture/DisableMouseCapture from terminal setup - Users can now select and copy text using normal terminal selection - We weren't using mouse events anyway Co-Authored-By: Claude Opus 4.5 --- src/channels/cli/mod.rs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/channels/cli/mod.rs b/src/channels/cli/mod.rs index e976129a..cd80607e 100644 --- a/src/channels/cli/mod.rs +++ b/src/channels/cli/mod.rs @@ -17,7 +17,6 @@ use std::sync::Arc; use async_trait::async_trait; use crossterm::{ - event::{DisableMouseCapture, EnableMouseCapture}, execute, terminal::{EnterAlternateScreen, LeaveAlternateScreen, disable_raw_mode, enable_raw_mode}, }; @@ -86,7 +85,7 @@ impl Channel for TuiChannel { if let Err(e) = run_tui(msg_tx, event_rx) { // Try to restore terminal even on error let _ = disable_raw_mode(); - let _ = execute!(io::stdout(), LeaveAlternateScreen, DisableMouseCapture); + let _ = execute!(io::stdout(), LeaveAlternateScreen); eprintln!("TUI error: {}", e); } }); @@ -152,9 +151,10 @@ fn run_tui( event_rx: mpsc::Receiver, ) -> io::Result<()> { // Setup terminal + // Note: We don't enable mouse capture so users can select text normally enable_raw_mode()?; let mut stdout = io::stdout(); - execute!(stdout, EnterAlternateScreen, EnableMouseCapture)?; + execute!(stdout, EnterAlternateScreen)?; let backend = CrosstermBackend::new(stdout); let mut terminal = Terminal::new(backend)?; @@ -166,11 +166,7 @@ fn run_tui( // Restore terminal disable_raw_mode()?; - execute!( - terminal.backend_mut(), - LeaveAlternateScreen, - DisableMouseCapture - )?; + execute!(terminal.backend_mut(), LeaveAlternateScreen)?; terminal.show_cursor()?; result