From b03b5ca9a33e11deac4d0bd2513098a0bbf53529 Mon Sep 17 00:00:00 2001 From: gfiroozeh <164580927+gfiroozeh@users.noreply.github.com> Date: Fri, 22 Mar 2024 19:49:27 -0400 Subject: [PATCH] feat: add gamescope force-grab-cursor flag --- src/config/schema_blanks/gamescope/mod.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/config/schema_blanks/gamescope/mod.rs b/src/config/schema_blanks/gamescope/mod.rs index efed635..43182d7 100644 --- a/src/config/schema_blanks/gamescope/mod.rs +++ b/src/config/schema_blanks/gamescope/mod.rs @@ -25,7 +25,8 @@ pub struct Gamescope { pub integer_scaling: bool, pub fsr: bool, pub nis: bool, - pub window_type: WindowType + pub window_type: WindowType, + pub force_grab_cursor: bool, } impl Default for Gamescope { @@ -39,7 +40,8 @@ impl Default for Gamescope { integer_scaling: true, fsr: false, nis: false, - window_type: WindowType::default() + window_type: WindowType::default(), + force_grab_cursor: false } } } @@ -79,7 +81,11 @@ impl From<&JsonValue> for Gamescope { window_type: value.get("window_type") .map(WindowType::from) - .unwrap_or(default.window_type) + .unwrap_or(default.window_type), + + force_grab_cursor: value.get("force_grab_cursor") + .and_then(JsonValue::as_bool) + .unwrap_or(default.force_grab_cursor), } } } @@ -173,6 +179,10 @@ impl Gamescope { } } + if self.force_grab_cursor { + gamescope += " --force-grab-cursor" + } + Some(gamescope) }