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 ];
|
|
|
|
};
|
|
|
|
|
2019-12-10 14:10:30 +00:00
|
|
|
machine = { pkgs, ... }: {
|
2017-09-04 18:03:20 +00:00
|
|
|
imports = [ ./common/x11.nix ./common/user-account.nix ];
|
2020-01-26 22:41:19 +00:00
|
|
|
test-support.displayManager.auto.user = "alice";
|
2019-12-10 14:10:30 +00:00
|
|
|
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
|
2020-10-10 20:33:45 +00:00
|
|
|
import XMonad.Operations (restart)
|
2018-11-28 22:08:20 +00:00
|
|
|
import XMonad.Util.EZConfig
|
2020-10-10 20:33:45 +00:00
|
|
|
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)
|
2020-10-10 20:33:45 +00:00
|
|
|
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)
|
2020-10-10 20:33:45 +00:00
|
|
|
machine.screenshot("terminal2")
|
2017-09-04 18:03:20 +00:00
|
|
|
'';
|
|
|
|
})
|