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