diff --git a/tests/default.nix b/tests/default.nix index 0fd71a8f5..f7873f4b8 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -20,5 +20,7 @@ import nmt { "git/with-str-extra-config" = ./modules/programs/git-with-str-extra-config.nix; texlive-minimal = ./modules/programs/texlive-minimal.nix; xresources = ./modules/xresources.nix; + } // pkgs.lib.optionalAttrs pkgs.stdenv.hostPlatform.isLinux { + "i3/keybindings" = ./modules/services/window-managers/i3-keybindings.nix; }; } diff --git a/tests/modules/services/window-managers/i3-keybindings.nix b/tests/modules/services/window-managers/i3-keybindings.nix new file mode 100644 index 000000000..b5ee4fd87 --- /dev/null +++ b/tests/modules/services/window-managers/i3-keybindings.nix @@ -0,0 +1,34 @@ +{ config, lib, ... }: + +with lib; + +{ + config = { + xsession.windowManager.i3 = { + enable = true; + + config.keybindings = + let + modifier = config.xsession.windowManager.i3.config.modifier; + in + lib.mkOptionDefault { + "${modifier}+Left" = "overridden-command"; + "${modifier}+Right" = null; + "${modifier}+Invented" = "invented-key-command"; + }; + }; + + nmt.script = '' + assertFileExists home-files/.config/i3/config + + assertFileRegex home-files/.config/i3/config \ + 'bindsym Mod1+Left overridden-command' + + assertFileNotRegex home-files/.config/i3/config \ + 'Mod1+Right' + + assertFileRegex home-files/.config/i3/config \ + 'bindsym Mod1+Invented invented-key-command' + ''; + }; +}