40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
import ./make-test.nix ({ pkgs, ...} : {
 | 
						|
  name = "xmonad";
 | 
						|
  meta = with pkgs.stdenv.lib.maintainers; {
 | 
						|
    maintainers = [ nequissimus ];
 | 
						|
  };
 | 
						|
 | 
						|
  machine = { lib, pkgs, ... }: {
 | 
						|
    imports = [ ./common/x11.nix ./common/user-account.nix ];
 | 
						|
    services.xserver.displayManager.auto.user = "alice";
 | 
						|
    services.xserver.windowManager.default = lib.mkForce "xmonad";
 | 
						|
    services.xserver.windowManager.xmonad = {
 | 
						|
      enable = true;
 | 
						|
      enableContribAndExtras = true;
 | 
						|
      extraPackages = with pkgs.haskellPackages; haskellPackages: [ xmobar ];
 | 
						|
      config = ''
 | 
						|
        import XMonad
 | 
						|
        import XMonad.Util.EZConfig
 | 
						|
        main = launch $ def `additionalKeysP` myKeys
 | 
						|
        myKeys = [ ("M-C-x", spawn "xterm") ]
 | 
						|
      '';
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  testScript = { ... }: ''
 | 
						|
    $machine->waitForX;
 | 
						|
    $machine->waitForFile("/home/alice/.Xauthority");
 | 
						|
    $machine->succeed("xauth merge ~alice/.Xauthority");
 | 
						|
    $machine->sendKeys("alt-ctrl-x");
 | 
						|
    $machine->waitForWindow(qr/machine.*alice/);
 | 
						|
    $machine->sleep(1);
 | 
						|
    $machine->screenshot("terminal");
 | 
						|
    $machine->waitUntilSucceeds("xmonad --restart");
 | 
						|
    $machine->sleep(3);
 | 
						|
    $machine->sendKeys("alt-shift-ret");
 | 
						|
    $machine->waitForWindow(qr/alice.*machine/);
 | 
						|
    $machine->sleep(1);
 | 
						|
    $machine->screenshot("terminal");
 | 
						|
  '';
 | 
						|
})
 |