summaryrefslogtreecommitdiff
path: root/tests/services-aerospace.nix
diff options
context:
space:
mode:
authorMike Vink <59492084+ivi-vink@users.noreply.github.com>2025-01-16 22:22:34 +0100
committerGitHub <noreply@github.com>2025-01-16 22:22:34 +0100
commit8e7bd91f353caacc0bc4105f573eb3e17f09e03a (patch)
treec5059edcbebd9644290cad7c653c49a36d593021 /tests/services-aerospace.nix
parent6bd39d420578aacf7c0bab7de3e7027b952115ae (diff)
parentbd921223ba7cdac346477d7ea5204d6f4736fcc6 (diff)
Merge branch 'LnL7:master' into masterHEADmaster
Diffstat (limited to 'tests/services-aerospace.nix')
-rw-r--r--tests/services-aerospace.nix92
1 files changed, 92 insertions, 0 deletions
diff --git a/tests/services-aerospace.nix b/tests/services-aerospace.nix
new file mode 100644
index 0000000..088c92d
--- /dev/null
+++ b/tests/services-aerospace.nix
@@ -0,0 +1,92 @@
+{ config, pkgs, ... }:
+
+let
+ aerospace = pkgs.runCommand "aerospace-0.0.0" { } "mkdir $out";
+in
+
+{
+ services.aerospace.enable = true;
+ services.aerospace.package = aerospace;
+ services.aerospace.settings = {
+ after-startup-command = [ "layout tiles" ];
+ gaps = {
+ outer.left = 8;
+ outer.bottom = 8;
+ outer.top = 8;
+ outer.right = 8;
+ };
+ mode.main.binding = {
+ alt-h = "focus left";
+ alt-j = "focus down";
+ alt-k = "focus up";
+ alt-l = "focus right";
+ };
+ on-window-detected = [
+ {
+ "if" = {
+ app-id = "Another.Cool.App";
+ during-aerospace-startup = false;
+ };
+ check-further-callbacks = false;
+ run = "move-node-to-workspace m";
+ }
+ {
+ "if".app-name-regex-substring = "finder|calendar";
+ run = "layout floating";
+ }
+ {
+ "if".workspace = "1";
+ run = "layout h_accordion";
+ }
+ ];
+ workspace-to-monitor-force-assignment = {
+ "1" = 1;
+ "2" = "main";
+ "3" = "secondary";
+ "4" = "built-in";
+ "5" = "^built-in retina display$";
+ "6" = [ "secondary" "dell" ];
+ };
+ };
+
+ test = ''
+ echo >&2 "checking aerospace service in ~/Library/LaunchAgents"
+ grep "org.nixos.aerospace" ${config.out}/user/Library/LaunchAgents/org.nixos.aerospace.plist
+ grep "${aerospace}/Applications/AeroSpace.app/Contents/MacOS/AeroSpace" ${config.out}/user/Library/LaunchAgents/org.nixos.aerospace.plist
+
+ conf=`sed -En 's/^[[:space:]]*<string>.*--config-path (.*)<\/string>$/\1/p' \
+ ${config.out}/user/Library/LaunchAgents/org.nixos.aerospace.plist`
+
+ echo >&2 "checking config in $conf"
+ grep 'after-startup-command = \["layout tiles"\]' $conf
+
+ grep 'bottom = 8' $conf
+ grep 'left = 8' $conf
+ grep 'right = 8' $conf
+ grep 'top = 8' $conf
+
+ grep 'alt-h = "focus left"' $conf
+ grep 'alt-j = "focus down"' $conf
+ grep 'alt-k = "focus up"' $conf
+ grep 'alt-l = "focus right"' $conf
+
+ grep 'check-further-callbacks = false' $conf
+ grep 'run = "move-node-to-workspace m"' $conf
+ grep 'app-id = "Another.Cool.App"' $conf
+ grep 'during-aerospace-startup = false' $conf
+
+ grep 'run = "layout floating"' $conf
+ grep 'app-name-regex-substring = "finder|calendar"' $conf
+ (! grep 'window-title-regex-substring' $conf)
+
+ grep 'workspace = "1"' $conf
+ grep 'run = "layout h_accordion"' $conf
+
+ grep '1 = 1' $conf
+ grep '2 = "main"' $conf
+ grep '3 = "secondary"' $conf
+ grep '4 = "built-in"' $conf
+ grep '5 = "^built-in retina display$"' $conf
+ grep '6 = \["secondary", "dell"\]' $conf
+ '';
+}