aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/nixos/tests/xmonad.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/tests/xmonad.nix')
-rw-r--r--nixpkgs/nixos/tests/xmonad.nix41
1 files changed, 41 insertions, 0 deletions
diff --git a/nixpkgs/nixos/tests/xmonad.nix b/nixpkgs/nixos/tests/xmonad.nix
new file mode 100644
index 00000000000..ef711f8dcf6
--- /dev/null
+++ b/nixpkgs/nixos/tests/xmonad.nix
@@ -0,0 +1,41 @@
+import ./make-test-python.nix ({ pkgs, ...} : {
+ name = "xmonad";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ nequissimus ];
+ };
+
+ machine = { pkgs, ... }: {
+ imports = [ ./common/x11.nix ./common/user-account.nix ];
+ services.xserver.displayManager.auto.user = "alice";
+ services.xserver.displayManager.defaultSession = "none+xmonad";
+ services.xserver.windowManager.xmonad = {
+ enable = true;
+ enableContribAndExtras = true;
+ extraPackages = with pkgs.haskellPackages; haskellPackages: [ xmobar ];
+ config = ''
+ import XMonad
+ import XMonad.Util.EZConfig
+ main = launch $ def `additionalKeysP` myKeys
+ myKeys = [ ("M-C-x", spawn "xterm") ]
+ '';
+ };
+ };
+
+ testScript = { nodes, ... }: let
+ user = nodes.machine.config.users.users.alice;
+ in ''
+ machine.wait_for_x()
+ machine.wait_for_file("${user.home}/.Xauthority")
+ machine.succeed("xauth merge ${user.home}/.Xauthority")
+ machine.send_key("alt-ctrl-x")
+ machine.wait_for_window("${user.name}.*machine")
+ machine.sleep(1)
+ machine.screenshot("terminal")
+ machine.wait_until_succeeds("xmonad --restart")
+ machine.sleep(3)
+ machine.send_key("alt-shift-ret")
+ machine.wait_for_window("${user.name}.*machine")
+ machine.sleep(1)
+ machine.screenshot("terminal")
+ '';
+})