From 54b38a0962df70e4d3121913c2c6c3695b66b556 Mon Sep 17 00:00:00 2001 From: galister <22305755+galister@users.noreply.github.com> Date: Wed, 21 Feb 2024 21:48:37 +0100 Subject: [PATCH] feat: double_cursor_fix --- src/config.rs | 3 +++ src/overlays/screen.rs | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/config.rs b/src/config.rs index b775143..cafc1e6 100644 --- a/src/config.rs +++ b/src/config.rs @@ -81,6 +81,9 @@ pub struct GeneralConfig { #[serde(default = "def_false")] pub upright_screen_fix: bool, + #[serde(default = "def_false")] + pub double_cursor_fix: bool, + #[serde(default = "def_screens")] pub show_screens: Vec>, diff --git a/src/overlays/screen.rs b/src/overlays/screen.rs index 645ee15..b489df1 100644 --- a/src/overlays/screen.rs +++ b/src/overlays/screen.rs @@ -286,13 +286,16 @@ impl ScreenRenderer { pub fn new_pw( output: &WlxOutput, token: Option<&str>, + session: &AppSession, ) -> Option<( ScreenRenderer, Option, /* pipewire restore token */ )> { let name = output.name.clone(); + let embed_mouse = !session.config.double_cursor_fix; let select_screen_result = - futures::executor::block_on(pipewire_select_screen(token, true, true, true)).ok()?; + futures::executor::block_on(pipewire_select_screen(token, embed_mouse, true, true)) + .ok()?; let capture = PipewireCapture::new(name, select_screen_result.node_id, 60); @@ -540,7 +543,7 @@ where ); } - if let Some((renderer, restore_token)) = ScreenRenderer::new_pw(output, token) { + if let Some((renderer, restore_token)) = ScreenRenderer::new_pw(output, token, session) { capture = Some(renderer); if let Some(token) = restore_token {