From c5b4177bda8b17f8f027b8145cd961210e6f4482 Mon Sep 17 00:00:00 2001 From: Pedro Lara Campos Date: Thu, 25 Aug 2022 16:02:04 -0300 Subject: [PATCH] i3-sway: allow "container" and "output" in focus.mouseWarping (#3154) Allow specifying which kind of mouseWarping to use since sway supports `mouse_warping output|container|none`. --- modules/services/window-managers/i3-sway/lib/options.nix | 5 ++++- modules/services/window-managers/i3-sway/sway.nix | 9 ++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/services/window-managers/i3-sway/lib/options.nix b/modules/services/window-managers/i3-sway/lib/options.nix index 7027e21d..27addca2 100644 --- a/modules/services/window-managers/i3-sway/lib/options.nix +++ b/modules/services/window-managers/i3-sway/lib/options.nix @@ -508,7 +508,10 @@ in { }; mouseWarping = mkOption { - type = types.bool; + type = if isSway then + types.oneOf [ types.bool (types.enum [ "container" "output" ]) ] + else + types.bool; default = true; description = '' Whether mouse cursor should be warped to the center of the window when switching focus diff --git a/modules/services/window-managers/i3-sway/sway.nix b/modules/services/window-managers/i3-sway/sway.nix index 55e9ab03..ad843265 100644 --- a/modules/services/window-managers/i3-sway/sway.nix +++ b/modules/services/window-managers/i3-sway/sway.nix @@ -273,7 +273,14 @@ let "focus_wrapping ${lib.hm.booleans.yesNo focus.forceWrapping}" "focus_follows_mouse ${focus.followMouse}" "focus_on_window_activation ${focus.newWindow}" - "mouse_warping ${if focus.mouseWarping then "output" else "none"}" + "mouse_warping ${ + if builtins.isString (focus.mouseWarping) then + focus.mouseWarping + else if focus.mouseWarping then + "output" + else + "none" + }" "workspace_layout ${workspaceLayout}" "workspace_auto_back_and_forth ${ lib.hm.booleans.yesNo workspaceAutoBackAndForth