anchor.diff:    let
       alice = config.users.users.alice;
     in {
  +    # Automatically login on tty1 as a normal user:
       imports = [ ./common/user-account.nix ];
  +    services.getty.autologinUser = "alice";
   
  +    hardware.opengl.enable = true;
  +    programs.xwayland.enable = true;
       environment.systemPackages = [ pkgs.cagebreak pkgs.wallutils ];
  -    services.xserver = {
  -      enable = true;
  -      displayManager.autoLogin = {
  -        enable = true;
  -        user = alice.name;
  -      };
  -    };
  -    services.xserver.windowManager.session = lib.singleton {
  -      manage = "desktop";
  -      name = "cagebreak";
  -      start = ''
  -        export XDG_RUNTIME_DIR="/run/user/${toString alice.uid}"
  -        ${pkgs.cagebreak}/bin/cagebreak &
  -        waitPID=$!
  -      '';
  -    };
   
       systemd.services.setupCagebreakConfig = {
         wantedBy = [ "multi-user.target" ];
  
positive.code:   in ''
      start_all()
      machine.wait_for_unit("multi-user.target")
      machine.wait_for_file("${XDG_RUNTIME_DIR}/wayland-0")
  
      with subtest("ensure wayland works with wayinfo from wallutils"):
          machine.succeed("env XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} wayinfo")
  
      with subtest("ensure xwayland works with xterm"):
          machine.send_key("ctrl-t")
          machine.send_key("t")
          machine.wait_until_succeeds("pgrep xterm")
          machine.wait_for_text("${user.name}@machine")
          machine.screenshot("screen")
          machine.send_key("ctrl-d")
    '';
  })
  
negative.code:       '';
      };
  
      virtualisation.memorySize = 1024;
      # Need to switch to a different VGA card / GPU driver than the default one (std) so that Cagebreak can launch:
      virtualisation.qemu.options = [ "-vga virtio" ];
    };
  
    enableOCR = true;
  