anchor.diff:          user = "alice";
         };
       };
  -    services.xserver.windowManager.default = "icewm";
  -    services.xserver.windowManager.icewm.enable = true;
  -    services.xserver.desktopManager.default = "none";
       services.xserver.desktopManager.kde5.enable = true;
     };
   
     enableOCR = true;
   
  -  testScript = { nodes, ... }: ''
  -    startAll;
  -    $machine->waitForFile("/home/alice/.Xauthority");
  -    $machine->succeed("xauth merge ~alice/.Xauthority");
  -    $machine->waitForWindow("^IceWM ");
  +  testScript = { nodes, ... }:
  +  let xdo = "${pkgs.xdotool}/bin/xdotool"; in
  +   ''     
  +    sub krunner {
  +      my ($win,) = @_;
  +      $machine->execute("${xdo} key Alt+F2 sleep 1 type $win");
  +      $machine->execute("${xdo} search --sync --onlyvisible --class krunner sleep 5 key Return");
  +    }
  +
  +    $machine->waitUntilSucceeds("pgrep plasmashell");
  +    $machine->succeed("xauth merge ~alice/.Xauthority");    
  +    $machine->waitForWindow(qr/Desktop.*/);
  +
  +    # Check that logging in has given the user ownership of devices.
  +    $machine->succeed("getfacl /dev/snd/timer | grep -q alice");
  +    
  +    krunner("dolphin");
  +    $machine->waitForWindow(qr/.*Dolphin/);
  +    
  +    krunner("konsole");
  +    $machine->waitForWindow(qr/.*Konsole/);
  +    
  +    krunner("systemsettings5");
  +    $machine->waitForWindow(qr/.*Settings/);
  +    $machine->sleep(20);
  +
  +    $machine->execute("${xdo} key Alt+F1 sleep 10");
  +    $machine->screenshot("screen");
     '';
   })
  
positive.code: 
    machine = { lib, ... }: {
      imports = [ ./common/user-account.nix ];
      services.xserver.enable = true;
      services.xserver.displayManager.sddm = {
        enable = true;
  
negative.code: import ./make-test.nix ({ pkgs, ...} :
  
  {
    name = "sddm";
    meta = with pkgs.stdenv.lib.maintainers; {
      maintainers = [ ttuegel ];
  