From 4075a3c23aa7996acc960e61df9f21038136d08a Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 10 Jan 2025 15:55:31 -0800 Subject: [PATCH] Add support for additional window tiling options This adds support for the following defaults: - com.apple.WindowManager.EnableTilingByEdgeDrag - com.apple.WindowManager.EnableTopTilingByEdgeDrag - com.apple.WindowManager.EnableTilingOptionAccelerator --- modules/system/defaults/WindowManager.nix | 27 ++++++++++++++++++- .../system-defaults-write/activate-user.txt | 15 +++++++++++ tests/system-defaults-write.nix | 3 +++ 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/modules/system/defaults/WindowManager.nix b/modules/system/defaults/WindowManager.nix index 6a62ebce..7b9048cc 100644 --- a/modules/system/defaults/WindowManager.nix +++ b/modules/system/defaults/WindowManager.nix @@ -56,11 +56,36 @@ with lib; Hide items in Stage Manager. ''; }; + + system.defaults.WindowManager.EnableTilingByEdgeDrag = mkOption { + type = types.nullOr types.bool; + default = null; + description = '' + Enable dragging windows to screen edges to tile them. The default is true. + ''; + }; + + system.defaults.WindowManager.EnableTopTilingByEdgeDrag = mkOption { + type = types.nullOr types.bool; + default = null; + description = '' + Enable dragging windows to the menu bar to fill the screen. The default is true. + ''; + }; + + system.defaults.WindowManager.EnableTilingOptionAccelerator = mkOption { + type = types.nullOr types.bool; + default = null; + description = '' + Enable holding alt to tile windows. The default is true. + ''; + }; + system.defaults.WindowManager.EnableTiledWindowMargins = mkOption { type = types.nullOr types.bool; default = null; description = '' - Enable Window Margins. The default is true. + Enable window margins when tiling windows. The default is true. ''; }; diff --git a/tests/fixtures/system-defaults-write/activate-user.txt b/tests/fixtures/system-defaults-write/activate-user.txt index 3656a47b..eda37537 100644 --- a/tests/fixtures/system-defaults-write/activate-user.txt +++ b/tests/fixtures/system-defaults-write/activate-user.txt @@ -524,6 +524,21 @@ defaults write com.apple.WindowManager 'EnableTiledWindowMargins' $' ' +defaults write com.apple.WindowManager 'EnableTilingByEdgeDrag' $' + + + +' +defaults write com.apple.WindowManager 'EnableTilingOptionAccelerator' $' + + + +' +defaults write com.apple.WindowManager 'EnableTopTilingByEdgeDrag' $' + + + +' defaults write com.apple.WindowManager 'GloballyEnabled' $' diff --git a/tests/system-defaults-write.nix b/tests/system-defaults-write.nix index 1a29aa2d..0b8bc030 100644 --- a/tests/system-defaults-write.nix +++ b/tests/system-defaults-write.nix @@ -96,6 +96,9 @@ system.defaults.WindowManager.AppWindowGroupingBehavior = true; system.defaults.WindowManager.StandardHideDesktopIcons = false; system.defaults.WindowManager.HideDesktop = false; + system.defaults.WindowManager.EnableTilingByEdgeDrag = true; + system.defaults.WindowManager.EnableTopTilingByEdgeDrag = true; + system.defaults.WindowManager.EnableTilingOptionAccelerator = true; system.defaults.WindowManager.EnableTiledWindowMargins = true; system.defaults.WindowManager.StandardHideWidgets = true; system.defaults.WindowManager.StageManagerHideWidgets = true;