at master 931 B view raw
1{ lib, ... }: 2{ 3 name = "dwl_test_vm"; 4 5 meta = { 6 maintainers = with lib.maintainers; [ gurjaka ]; 7 }; 8 9 nodes.machine = 10 { 11 pkgs, 12 lib, 13 ... 14 }: 15 { 16 imports = [ 17 ./common/user-account.nix 18 ./common/wayland-cage.nix 19 ]; 20 21 environment.systemPackages = [ pkgs.foot ]; 22 23 services.displayManager.defaultSession = lib.mkForce "dwl"; 24 25 programs.dwl.enable = true; 26 }; 27 28 testScript = '' 29 with subtest("ensure dwl starts"): 30 machine.wait_for_file("/run/user/1000/wayland-0") 31 32 with subtest("ensure foot is installed"): 33 machine.succeed("which foot") 34 35 with subtest("ensure we can open a new terminal"): 36 # sleep 3 is required to make sure dwl has started 37 # TODO: find better way to identify dwl session 38 machine.sleep(3) 39 machine.send_key("alt-shift-ret") 40 machine.sleep(3) 41 machine.screenshot("terminal") 42 ''; 43}