aboutsummaryrefslogtreecommitdiff
path: root/home-manager/tests/modules/services
diff options
context:
space:
mode:
Diffstat (limited to 'home-manager/tests/modules/services')
-rw-r--r--home-manager/tests/modules/services/sxhkd/configuration.nix30
-rw-r--r--home-manager/tests/modules/services/sxhkd/default.nix4
-rw-r--r--home-manager/tests/modules/services/sxhkd/service.nix20
-rw-r--r--home-manager/tests/modules/services/sxhkd/sxhkdrc13
-rw-r--r--home-manager/tests/modules/services/window-managers/i3/default.nix1
-rw-r--r--home-manager/tests/modules/services/window-managers/i3/i3-keybindings-expected.conf106
-rw-r--r--home-manager/tests/modules/services/window-managers/i3/i3-keybindings.nix35
7 files changed, 209 insertions, 0 deletions
diff --git a/home-manager/tests/modules/services/sxhkd/configuration.nix b/home-manager/tests/modules/services/sxhkd/configuration.nix
new file mode 100644
index 00000000000..992c4b18a94
--- /dev/null
+++ b/home-manager/tests/modules/services/sxhkd/configuration.nix
@@ -0,0 +1,30 @@
+{ config, ... }: {
+ config = {
+ services.sxhkd = {
+ enable = true;
+
+ keybindings = {
+ "super + a" = "run command a";
+ "super + b" = null;
+ "super + Shift + b" = "run command b";
+ };
+
+ extraConfig = ''
+ super + c
+ call command c
+
+ # comment
+ super + d
+ call command d
+ '';
+ };
+
+ nmt.script = ''
+ local sxhkdrc=home-files/.config/sxhkd/sxhkdrc
+
+ assertFileExists $sxhkdrc
+
+ assertFileContent $sxhkdrc ${./sxhkdrc}
+ '';
+ };
+}
diff --git a/home-manager/tests/modules/services/sxhkd/default.nix b/home-manager/tests/modules/services/sxhkd/default.nix
new file mode 100644
index 00000000000..ec25252cee0
--- /dev/null
+++ b/home-manager/tests/modules/services/sxhkd/default.nix
@@ -0,0 +1,4 @@
+{
+ sxhkd-configuration = ./configuration.nix;
+ sxhkd-service = ./service.nix;
+}
diff --git a/home-manager/tests/modules/services/sxhkd/service.nix b/home-manager/tests/modules/services/sxhkd/service.nix
new file mode 100644
index 00000000000..46ce259a718
--- /dev/null
+++ b/home-manager/tests/modules/services/sxhkd/service.nix
@@ -0,0 +1,20 @@
+{ config, ... }:
+{
+ config = {
+ services.sxhkd = {
+ enable = true;
+ extraPath = "/home/the-user/bin:/extra/path/bin";
+ };
+
+ nmt.script = ''
+ local serviceFile=home-files/.config/systemd/user/sxhkd.service
+
+ assertFileExists $serviceFile
+
+ assertFileRegex $serviceFile 'ExecStart=.*/bin/sxhkd'
+
+ assertFileRegex $serviceFile \
+ 'Environment=PATH=.*\.nix-profile/bin:/home/the-user/bin:/extra/path/bin'
+ '';
+ };
+}
diff --git a/home-manager/tests/modules/services/sxhkd/sxhkdrc b/home-manager/tests/modules/services/sxhkd/sxhkdrc
new file mode 100644
index 00000000000..c8883464b29
--- /dev/null
+++ b/home-manager/tests/modules/services/sxhkd/sxhkdrc
@@ -0,0 +1,13 @@
+super + Shift + b
+ run command b
+
+super + a
+ run command a
+
+
+super + c
+ call command c
+
+# comment
+super + d
+ call command d
diff --git a/home-manager/tests/modules/services/window-managers/i3/default.nix b/home-manager/tests/modules/services/window-managers/i3/default.nix
new file mode 100644
index 00000000000..e239d6c07f1
--- /dev/null
+++ b/home-manager/tests/modules/services/window-managers/i3/default.nix
@@ -0,0 +1 @@
+{ i3-keybindings = ./i3-keybindings.nix; }
diff --git a/home-manager/tests/modules/services/window-managers/i3/i3-keybindings-expected.conf b/home-manager/tests/modules/services/window-managers/i3/i3-keybindings-expected.conf
new file mode 100644
index 00000000000..1e385e8c734
--- /dev/null
+++ b/home-manager/tests/modules/services/window-managers/i3/i3-keybindings-expected.conf
@@ -0,0 +1,106 @@
+font pango:monospace 8
+floating_modifier Mod1
+new_window normal 2
+new_float normal 2
+hide_edge_borders none
+force_focus_wrapping no
+focus_follows_mouse yes
+focus_on_window_activation smart
+mouse_warping output
+workspace_layout default
+workspace_auto_back_and_forth no
+
+client.focused #4c7899 #285577 #ffffff #2e9ef4 #285577
+client.focused_inactive #333333 #5f676a #ffffff #484e50 #5f676a
+client.unfocused #333333 #222222 #888888 #292d2e #222222
+client.urgent #2f343a #900000 #ffffff #900000 #900000
+client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c
+client.background #ffffff
+
+bindsym Mod1+0 workspace number 10
+bindsym Mod1+1 workspace number 1
+bindsym Mod1+2 workspace number 2
+bindsym Mod1+3 workspace number 3
+bindsym Mod1+4 workspace number 4
+bindsym Mod1+5 workspace number 5
+bindsym Mod1+6 workspace number 6
+bindsym Mod1+7 workspace number 7
+bindsym Mod1+8 workspace number 8
+bindsym Mod1+9 workspace number 9
+bindsym Mod1+Down focus down
+bindsym Mod1+Invented invented-key-command
+bindsym Mod1+Left overridden-command
+bindsym Mod1+Return exec i3-sensible-terminal
+
+bindsym Mod1+Shift+0 move container to workspace number 10
+bindsym Mod1+Shift+1 move container to workspace number 1
+bindsym Mod1+Shift+2 move container to workspace number 2
+bindsym Mod1+Shift+3 move container to workspace number 3
+bindsym Mod1+Shift+4 move container to workspace number 4
+bindsym Mod1+Shift+5 move container to workspace number 5
+bindsym Mod1+Shift+6 move container to workspace number 6
+bindsym Mod1+Shift+7 move container to workspace number 7
+bindsym Mod1+Shift+8 move container to workspace number 8
+bindsym Mod1+Shift+9 move container to workspace number 9
+bindsym Mod1+Shift+Down move down
+bindsym Mod1+Shift+Left move left
+bindsym Mod1+Shift+Right move right
+bindsym Mod1+Shift+Up move up
+bindsym Mod1+Shift+c reload
+bindsym Mod1+Shift+e exec i3-nagbar -t warning -m 'Do you want to exit i3?' -b 'Yes' 'i3-msg exit'
+bindsym Mod1+Shift+minus move scratchpad
+bindsym Mod1+Shift+q kill
+bindsym Mod1+Shift+r restart
+bindsym Mod1+Shift+space floating toggle
+bindsym Mod1+Up focus up
+bindsym Mod1+a focus parent
+bindsym Mod1+d exec @dmenu@/bin/dmenu_run
+bindsym Mod1+e layout toggle split
+bindsym Mod1+f fullscreen toggle
+bindsym Mod1+h split h
+bindsym Mod1+minus scratchpad show
+bindsym Mod1+r mode resize
+bindsym Mod1+s layout stacking
+bindsym Mod1+space focus mode_toggle
+bindsym Mod1+v split v
+bindsym Mod1+w layout tabbed
+
+mode "resize" {
+bindsym Down resize grow height 10 px or 10 ppt
+bindsym Escape mode default
+bindsym Left resize shrink width 10 px or 10 ppt
+bindsym Return mode default
+bindsym Right resize grow width 10 px or 10 ppt
+bindsym Up resize shrink height 10 px or 10 ppt
+}
+
+
+bar {
+
+ font pango:monospace 8
+ mode dock
+ hidden_state hide
+ position bottom
+ status_command @i3status@/bin/i3status
+ i3bar_command @i3@/bin/i3bar
+ workspace_buttons yes
+ strip_workspace_numbers no
+ tray_output primary
+ colors {
+ background #000000
+ statusline #ffffff
+ separator #666666
+ focused_workspace #4c7899 #285577 #ffffff
+ active_workspace #333333 #5f676a #ffffff
+ inactive_workspace #333333 #222222 #888888
+ urgent_workspace #2f343a #900000 #ffffff
+ binding_mode #2f343a #900000 #ffffff
+ }
+
+}
+
+
+
+
+
+
diff --git a/home-manager/tests/modules/services/window-managers/i3/i3-keybindings.nix b/home-manager/tests/modules/services/window-managers/i3/i3-keybindings.nix
new file mode 100644
index 00000000000..4f8515e61ff
--- /dev/null
+++ b/home-manager/tests/modules/services/window-managers/i3/i3-keybindings.nix
@@ -0,0 +1,35 @@
+{ 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";
+ };
+ };
+
+ nixpkgs.overlays = [
+ (self: super: {
+ dmenu = super.dmenu // { outPath = "@dmenu@"; };
+
+ i3 = super.i3 // { outPath = "@i3@"; };
+
+ i3status = super.i3status // { outPath = "@i3status@"; };
+ })
+ ];
+
+ nmt.script = ''
+ assertFileExists home-files/.config/i3/config
+ assertFileContent home-files/.config/i3/config \
+ ${./i3-keybindings-expected.conf}
+ '';
+ };
+}