nixpkgs/nixos/tests/xmonad.nix

48 lines
1.5 KiB
Nix
Raw Normal View History

2019-11-07 02:18:26 +00:00
import ./make-test-python.nix ({ pkgs, ...} : {
2017-09-04 18:03:20 +00:00
name = "xmonad";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ nequissimus ];
};
machine = { pkgs, ... }: {
2017-09-04 18:03:20 +00:00
imports = [ ./common/x11.nix ./common/user-account.nix ];
test-support.displayManager.auto.user = "alice";
services.xserver.displayManager.defaultSession = "none+xmonad";
2017-09-04 18:03:20 +00:00
services.xserver.windowManager.xmonad = {
enable = true;
enableContribAndExtras = true;
extraPackages = with pkgs.haskellPackages; haskellPackages: [ xmobar ];
2018-11-28 22:08:20 +00:00
config = ''
import XMonad
import XMonad.Operations (restart)
2018-11-28 22:08:20 +00:00
import XMonad.Util.EZConfig
import XMonad.Util.SessionStart
main = launch $ def { startupHook = startup } `additionalKeysP` myKeys
startup = isSessionStart >>= \sessInit ->
if sessInit then setSessionStarted else spawn "xterm"
myKeys = [ ("M-C-x", spawn "xterm"), ("M-q", restart "xmonad" True) ]
2018-11-28 22:08:20 +00:00
'';
2017-09-04 18:03:20 +00:00
};
};
2019-11-07 02:18:26 +00:00
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")
2019-12-13 16:16:59 +00:00
machine.send_key("alt-ctrl-x")
2019-11-07 02:18:26 +00:00
machine.wait_for_window("${user.name}.*machine")
machine.sleep(1)
machine.screenshot("terminal1")
machine.send_key("alt-q")
2019-11-07 02:18:26 +00:00
machine.sleep(3)
machine.wait_for_window("${user.name}.*machine")
machine.sleep(1)
machine.screenshot("terminal2")
2017-09-04 18:03:20 +00:00
'';
})