From 96ed74c6fe1eb65fd89547b4b5e65f749cb2d85e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Forment?= Date: Mon, 2 Feb 2026 18:08:55 +0100 Subject: [PATCH 1/2] Fix: CPAL version mismatch --- CHANGELOG.md | 1 + Cargo.toml | 2 +- src/engine/audio.rs | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fd2336..b611c3e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ All notable changes to this project will be documented in this file. ### Fixed - Scope/spectrum ratio asymmetry in Left/Right layout modes. +- Updated `cpal` dependency from 0.15 to 0.17 to fix type mismatch with `doux` audio backend. ## [0.0.3] - 2026-02-02 diff --git a/Cargo.toml b/Cargo.toml index 3be2209..52ffa5f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -53,7 +53,7 @@ doux = { git = "https://github.com/sova-org/doux", features = ["native"] } rusty_link = "0.4" ratatui = "0.30" crossterm = "0.29" -cpal = "0.15" +cpal = "0.17" clap = { version = "4", features = ["derive"] } rand = "0.8" serde = { version = "1", features = ["derive"] } diff --git a/src/engine/audio.rs b/src/engine/audio.rs index 03cc008..98221cd 100644 --- a/src/engine/audio.rs +++ b/src/engine/audio.rs @@ -257,7 +257,7 @@ pub fn build_stream( }; let default_config = device.default_output_config().map_err(|e| e.to_string())?; - let sample_rate = default_config.sample_rate().0 as f32; + let sample_rate = default_config.sample_rate() as f32; let buffer_size = if config.buffer_size > 0 { cpal::BufferSize::Fixed(config.buffer_size) From a2ee0e5a505c5629865e61cfc673d3b5e6c478e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Forment?= Date: Mon, 2 Feb 2026 18:25:02 +0100 Subject: [PATCH 2/2] Fix: Copy register handling for cagire-desktop (Linux) --- CHANGELOG.md | 1 + src/input_egui.rs | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b611c3e..2ff02b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ All notable changes to this project will be documented in this file. ### Fixed - Scope/spectrum ratio asymmetry in Left/Right layout modes. - Updated `cpal` dependency from 0.15 to 0.17 to fix type mismatch with `doux` audio backend. +- Copy/paste (Ctrl+C/V/X) not working in desktop version due to egui intercepting clipboard shortcuts. ## [0.0.3] - 2026-02-02 diff --git a/src/input_egui.rs b/src/input_egui.rs index 80ea8b1..f06e878 100644 --- a/src/input_egui.rs +++ b/src/input_egui.rs @@ -40,6 +40,12 @@ fn convert_event(event: &egui::Event) -> Option { } None } + // egui intercepts Ctrl+C/V/X and converts them to these high-level events + // instead of passing through raw Key events (see egui issue #4065). + // Synthesize the equivalent KeyEvent so the application's input handler receives them. + egui::Event::Copy => Some(KeyEvent::new(KeyCode::Char('c'), KeyModifiers::CONTROL)), + egui::Event::Cut => Some(KeyEvent::new(KeyCode::Char('x'), KeyModifiers::CONTROL)), + egui::Event::Paste(_) => Some(KeyEvent::new(KeyCode::Char('v'), KeyModifiers::CONTROL)), _ => None, } }