From f102ed4680c35108824a64e1fa7d8ae54b8b5d5f Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Sat, 1 Nov 2025 10:59:14 +0000 Subject: [PATCH 1/2] feat: enable native terminal text selection by disabling mouse capture MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removes mouse capture to allow users to select text with their mouse and copy to clipboard using standard terminal shortcuts (Cmd+C on macOS, Ctrl+Shift+C on Linux). This works in both messages and logs windows. The app wasn't using mouse events, so disabling mouse capture has no negative impact while enabling the standard terminal selection UX. Fixes #95 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Sam Grimee - LX2SG --- src/tui.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/tui.rs b/src/tui.rs index aec8bd2..c8f6f05 100644 --- a/src/tui.rs +++ b/src/tui.rs @@ -2,7 +2,6 @@ use color_eyre::eyre::Result; use crossterm::{ - event::{DisableMouseCapture, EnableMouseCapture}, execute, terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, }; @@ -51,7 +50,7 @@ impl Tui { /// It enables the raw mode and sets terminal properties. pub(crate) fn init(&mut self) -> Result<()> { enable_raw_mode()?; - execute!(io::stderr(), EnterAlternateScreen, EnableMouseCapture)?; + execute!(io::stderr(), EnterAlternateScreen)?; // Define a custom panic hook to reset the terminal properties. // This way, you won't have your terminal messed up if an unexpected error happens. @@ -82,7 +81,7 @@ impl Tui { /// the terminal properties if unexpected errors occur. fn reset() -> Result<()> { disable_raw_mode()?; - execute!(io::stderr(), LeaveAlternateScreen, DisableMouseCapture)?; + execute!(io::stderr(), LeaveAlternateScreen)?; Ok(()) } From a9158b076b4f704d45463d0210fa4e1978a10541 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Sun, 2 Nov 2025 11:15:03 +0000 Subject: [PATCH 2/2] docs: add changelog entry for native text selection feature Co-authored-by: Sam Grimee - LX2SG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f51c6b..98f8733 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ This project tries to follow semantic versioning. - **Token caching**: OAuth tokens are now cached between sessions for faster startup - **Multi-room selection**: Enable multi-room selection with visual indicators - **Batch operations**: Implement batch leave via LeaveRoom command for selected rooms +- **Native text selection**: Enable native terminal text selection and clipboard copy by disabling mouse capture ## [0.7.6] - 2025-10-06