1import ./make-test-python.nix ({ lib, ...} : {
2 name = "herbstluftwm";
3
4 meta = {
5 maintainers = with lib.maintainers; [ thibautmarty ];
6 timeout = 30;
7 };
8
9 machine = { pkgs, lib, ... }: {
10 imports = [ ./common/x11.nix ./common/user-account.nix ];
11 test-support.displayManager.auto.user = "alice";
12 services.xserver.displayManager.defaultSession = lib.mkForce "none+herbstluftwm";
13 services.xserver.windowManager.herbstluftwm.enable = true;
14 environment.systemPackages = [ pkgs.dzen2 ]; # needed for upstream provided panel
15 };
16
17 testScript = ''
18 with subtest("ensure x starts"):
19 machine.wait_for_x()
20 machine.wait_for_file("/home/alice/.Xauthority")
21 machine.succeed("xauth merge ~alice/.Xauthority")
22
23 with subtest("ensure client is available"):
24 machine.succeed("herbstclient --version")
25
26 with subtest("ensure keybindings are set"):
27 machine.wait_until_succeeds("herbstclient list_keybinds | grep xterm")
28
29 with subtest("ensure panel starts"):
30 machine.wait_for_window("dzen title")
31
32 with subtest("ensure we can open a new terminal"):
33 machine.send_key("alt-ret")
34 machine.wait_for_window(r"alice.*?machine")
35 machine.sleep(2)
36 machine.screenshot("terminal")
37 '';
38})