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.nix39
1 files changed, 39 insertions, 0 deletions
diff --git a/nixpkgs/nixos/tests/xmonad.nix b/nixpkgs/nixos/tests/xmonad.nix
new file mode 100644
index 00000000000..79c15ccffec
--- /dev/null
+++ b/nixpkgs/nixos/tests/xmonad.nix
@@ -0,0 +1,39 @@
+import ./make-test.nix ({ pkgs, ...} : {
+ name = "xmonad";
+ meta = with pkgs.stdenv.lib.maintainers; {
+ maintainers = [ nequissimus ];
+ };
+
+ machine = { lib, pkgs, ... }: {
+ imports = [ ./common/x11.nix ./common/user-account.nix ];
+ services.xserver.displayManager.auto.user = "alice";
+ services.xserver.windowManager.default = lib.mkForce "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 = { ... }: ''
+ $machine->waitForX;
+ $machine->waitForFile("/home/alice/.Xauthority");
+ $machine->succeed("xauth merge ~alice/.Xauthority");
+ $machine->sendKeys("alt-ctrl-x");
+ $machine->waitForWindow(qr/alice.*machine/);
+ $machine->sleep(1);
+ $machine->screenshot("terminal");
+ $machine->waitUntilSucceeds("xmonad --restart");
+ $machine->sleep(3);
+ $machine->sendKeys("alt-shift-ret");
+ $machine->waitForWindow(qr/alice.*machine/);
+ $machine->sleep(1);
+ $machine->screenshot("terminal");
+ '';
+})