anchor.diff:        manage = "desktop";
         name = "cagebreak";
         start = ''
  -        export XDG_RUNTIME_DIR=/run/user/${toString alice.uid}
  +        export XDG_RUNTIME_DIR="/run/user/${toString alice.uid}"
           ${pkgs.cagebreak}/bin/cagebreak &
           waitPID=$!
         '';
  
positive.code:     workspaces 1
      escape C-t
      bind t exec env DISPLAY=:0 ${pkgs.xterm}/bin/xterm -cm -pc
      bind a exec ${pkgs.alacritty}/bin/alacritty
    '';
  in
  {
  
negative.code: 
    testScript = { nodes, ... }: let
      user = nodes.machine.config.users.users.alice;
      XDG_RUNTIME_DIR = "/run/user/${toString user.uid}";
    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")
    '';
  