at master 1.5 kB view raw
1{ pkgs, ... }: 2{ 3 name = "xrdp"; 4 meta = with pkgs.lib.maintainers; { 5 maintainers = [ ]; 6 }; 7 8 nodes = { 9 server = 10 { pkgs, ... }: 11 { 12 imports = [ ./common/user-account.nix ]; 13 services.xrdp.enable = true; 14 services.xrdp.defaultWindowManager = "${pkgs.xterm}/bin/xterm"; 15 networking.firewall.allowedTCPPorts = [ 3389 ]; 16 }; 17 18 client = 19 { pkgs, ... }: 20 { 21 imports = [ 22 ./common/x11.nix 23 ./common/user-account.nix 24 ]; 25 test-support.displayManager.auto.user = "alice"; 26 environment.systemPackages = [ pkgs.freerdp ]; 27 services.xrdp.enable = true; 28 services.xrdp.defaultWindowManager = "${pkgs.icewm}/bin/icewm"; 29 }; 30 }; 31 32 testScript = 33 { nodes, ... }: 34 let 35 user = nodes.client.users.users.alice; 36 in 37 '' 38 start_all() 39 40 client.wait_for_x() 41 client.wait_for_file("${user.home}/.Xauthority") 42 client.succeed("xauth merge ${user.home}/.Xauthority") 43 44 client.sleep(5) 45 46 client.execute("xterm >&2 &") 47 client.sleep(1) 48 client.send_chars("xfreerdp /cert-tofu /w:640 /h:480 /v:127.0.0.1 /u:${user.name} /p:${user.password}\n") 49 client.sleep(5) 50 client.screenshot("localrdp") 51 52 client.execute("xterm >&2 &") 53 client.sleep(1) 54 client.send_chars("xfreerdp /cert-tofu /w:640 /h:480 /v:server /u:${user.name} /p:${user.password}\n") 55 client.sleep(5) 56 client.screenshot("remoterdp") 57 ''; 58}