Remote desktop black screen; gnome & RDP enabled in settings app

Hi folks. I’ve gone through all the different RDP settings trying to get RDP enabled. I finally found out how to get the logs easily and have been iterating on things.

Setting xrdp settings in /etc/nixos/configuration.nix does not seem to get me anywhere successful, but I can successfully RDP into my machine with Remote Desktop enabled from the “settings” app. I can see my mouse (from my macbook) moving on the monitor of my nixos machine when I RDP in using Microsoft Remote Desktop.

However, the screen is completely black.

When I had a startwm.sh file in my root that called exec gnome-session it seemed like it was close to working, but I couldn’t get passed a " no X11 display found" error (see gnome-session-check-accelerated: no X11 display found (#106) · Issues · GNOME / gnome-session · GitLab for similar) Also posted logs in Xrdp issues on NixOS - #2 by SgtPooki

Here are some logs from the login session, and config files are below:

> journalctl --since 18:16
Mar 31 18:16:41 nixos gnome-remote-desktop-daemon[7835]: [18:16:41:994] [7835:7899] [WARN][com.winpr.negotiate] - AcceptSecurityContext status SEC_I_CONTINUE_NEEDED [0x0>
Mar 31 18:16:41 nixos gnome-remote-desktop-daemon[7835]: [18:16:41:999] [7835:7899] [WARN][com.winpr.negotiate] - AcceptSecurityContext status SEC_I_COMPLETE_NEEDED [0x0>
Mar 31 18:16:41 nixos .gnome-remote-d[7835]: [RDP.CLIPRDR] Relieving CLIPRDR filename restriction
Mar 31 18:16:41 nixos .gnome-remote-d[7835]: [RDP.CLIPRDR] Client capabilities: long format names, stream file clip, file clip no file paths, huge file support
Mar 31 18:16:41 nixos .gnome-remote-d[7835]: [RDP.RDPGFX] CapsAdvertise: Accepting capability set with version RDPGFX_CAPVERSION_107, Client cap flags: H264 (AVC444): tr>
Mar 31 18:16:41 nixos .gnome-remote-d[7835]: [RDP.AUDIO_PLAYBACK] Failed to open AUDIO_PLAYBACK_DVC channel (CreationStatus -1073741823). Trying SVC fallback
Mar 31 18:16:41 nixos .gnome-remote-d[7835]: [RDP.AUDIO_PLAYBACK] Client Formats: [AAC: false, PCM: true]
Mar 31 18:16:41 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:41 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:44 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:44 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:44 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:44 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:45 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:45 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:45 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:45 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:45 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:45 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:45 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:45 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:45 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:45 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:45 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:45 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:45 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:45 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:45 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:45 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:46 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:46 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:46 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:46 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:46 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:46 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:46 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:46 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:46 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:46 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:46 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:46 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:47 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:47 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:47 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:16:47 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:17:00 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:17:00 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:17:46 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:17:46 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:17:47 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:17:47 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:17:47 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:17:47 nixos kernel: nouveau 0000:09:00.0: gr: DATA_ERROR 0000009c [] ch 2 [007f8e6000 systemd-logind[945]] subc 0 class a097 mthd 0d78 data 00000004
Mar 31 18:17:48 nixos gnome-remote-desktop-daemon[7835]: [18:17:48:157] [7835:7899] [ERROR][com.freerdp.core.peer] - Incorrect RDP header.
Mar 31 18:17:48 nixos gnome-remote-desktop-daemon[7835]: [18:17:48:157] [7835:7899] [ERROR][com.freerdp.core.peer] - peer_recv_callback: CONNECTION_STATE_ACTIVE - peer_r>
Mar 31 18:17:48 nixos gnome-remote-desktop-daemon[7835]: [18:17:48:157] [7835:7899] [ERROR][com.freerdp.core.transport] - transport_check_fds: transport->ReceiveCallback>
Mar 31 18:17:48 nixos .gnome-remote-d[7835]: Unable to check file descriptor, closing connection
Mar 31 18:17:48 nixos systemd[1]: run-user-1000-gnome\x2dremote\x2ddesktop-cliprdr\x2dwXLlWZ.mount: Deactivated successfully.
Mar 31 18:17:48 nixos .gnome-shell-wr[1213]: Failed to add device, disconnecting client

Note: I explicitly closed the RDP window, so that is a full sign-in via RDP and then closing of the client side.

My nix configuration is as follows:

{ config, pkgs, ... }:

{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
      ./nvidia-770.nix
    ];

  # Bootloader.
  boot.loader.grub.enable = true;
  boot.loader.grub.device = "/dev/sdb";
  boot.loader.grub.useOSProber = true;

  networking.hostName = "nixos"; # Define your hostname.
  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.

  # Configure network proxy if necessary
  # networking.proxy.default = "http://user:password@proxy:port/";
  # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";

  # Enable networking
  networking.networkmanager.enable = true;

  # Set your time zone.
  time.timeZone = "America/Los_Angeles";

  # Select internationalisation properties.
  i18n.defaultLocale = "en_US.UTF-8";

  i18n.extraLocaleSettings = {
    LC_ADDRESS = "en_US.UTF-8";
    LC_IDENTIFICATION = "en_US.UTF-8";
    LC_MEASUREMENT = "en_US.UTF-8";
    LC_MONETARY = "en_US.UTF-8";
    LC_NAME = "en_US.UTF-8";
    LC_NUMERIC = "en_US.UTF-8";
    LC_PAPER = "en_US.UTF-8";
    LC_TELEPHONE = "en_US.UTF-8";
    LC_TIME = "en_US.UTF-8";
  };

  # Enable the X11 windowing system.
  services.xserver.enable = true;

  # Enable the GNOME Desktop Environment.
  services.xserver.displayManager.gdm.enable = true;
  services.xserver.desktopManager.gnome.enable = true;
  # from https://nixos.wiki/wiki/Remote_Desktop#GNOME
  #services.xserver.displayManager.sddm.enable = true;
  #services.xserver.desktopManager.plasma5.enable = true;

  # Configure keymap in X11
  services.xserver = {
    layout = "us";
    xkbVariant = "";
  };

  # Enable CUPS to print documents.
  services.printing.enable = true;

  # Enable sound with pipewire.
  sound.enable = true;
  hardware.pulseaudio.enable = false;
  security.rtkit.enable = true;
  services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
    # If you want to use JACK applications, uncomment this
    #jack.enable = true;

    # use the example session manager (no others are packaged yet so this is enabled by default,
    # no need to redefine it in your config for now)
    #media-session.enable = true;
  };

  # Enable touchpad support (enabled default in most desktopManager).
  # services.xserver.libinput.enable = true;

  # Define a user account. Don't forget to set a password with ‘passwd’.
  users.users.sgtpooki = {
    isNormalUser = true;
    description = "Russell";
    extraGroups = [ "networkmanager" "wheel" ];
    packages = with pkgs; [
      firefox
    #  thunderbird
    ];
  };

  # Enable automatic login for the user.
  services.xserver.displayManager.autoLogin.enable = true;
  services.xserver.displayManager.autoLogin.user = "sgtpooki";

  # Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
  systemd.services."getty@tty1".enable = false;
  systemd.services."autovt@tty1".enable = false;

  # Allow unfree packages
  nixpkgs.config.allowUnfree = true;
  nixpkgs.config.nvidia.acceptLicense = true;

  # List packages installed in system profile. To search, run:
  # $ nix search wget
  environment.systemPackages = with pkgs; [
   vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
   wget
   vscodium
   gnome.gnome-remote-desktop
   gnome.adwaita-icon-theme
   gnome.gdm
   gnome.gnome-session
  ];

  # Some programs need SUID wrappers, can be configured further or are
  # started in user sessions.
  # programs.mtr.enable = true;
  # programs.gnupg.agent = {
  #   enable = true;
  #   enableSSHSupport = true;
  # };

  # List services that you want to enable:

  # Enable the OpenSSH daemon.
  services.openssh.enable = true;

  # Open ports in the firewall.
  # networking.firewall.allowedTCPPorts = [ ... ];
  # networking.firewall.allowedUDPPorts = [ ... ];
  # Or disable the firewall altogether.
  # networking.firewall.enable = false;
  networking.firewall = {
    enable = true;
    allowedTCPPorts = [ 80 443 3389 ];
    allowedUDPPorts = [ 3389 ];
    #allowedUDPPortRanges = [
    #  # { from = 8000; to = 8010; }
    #];
  };

  # Copy the NixOS configuration file and link it from the resulting system
  # (/run/current-system/configuration.nix). This is useful in case you
  # accidentally delete configuration.nix.
  system.copySystemConfiguration = true;

  # This option defines the first version of NixOS you have installed on this particular machine,
  # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
  #
  # Most users should NEVER change this value after the initial install, for any reason,
  # even if you've upgraded your system to a new NixOS release.
  #
  # This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
  # so changing it will NOT upgrade your system.
  #
  # This value being lower than the current NixOS release does NOT mean your system is
  # out of date, out of support, or vulnerable.
  #
  # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
  # and migrated your data accordingly.
  #
  # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
  system.stateVersion = "23.11"; # Did you read the comment?

  # enable rdp. see https://nixos.wiki/wiki/Remote_Desktop#GNOME
  #services.xrdp.enable = true;
  #services.xrdp.defaultWindowManager = "gnome-remote-desktop";
  #services.xrdp.defaultWindowManager = "${pkgs.gnome.gnome-session}/bin/gnome-session";
  #services.xrdp.defaultWindowManager = "${pkgs.xterm}/bin/xterm";
  #services.xrdp.defaultWindowManager = "${pkgs.icewm}/bin/icewm";
  #services.xrdp.defaultWindowManager = "";
  #services.xrdp.openFirewall = true;
  #services.xrdp.port = 3389;
  #services.xrdp.defaultWindowManager = "startplasma-x11";
  #services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ];
}

^ Note that the config is messy because I tried multiple methods.

Hardware config file:

# Do not modify this file!  It was generated by ‘nixos-generate-config’
# and may be overwritten by future invocations.  Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:

{
  imports =
    [ (modulesPath + "/installer/scan/not-detected.nix")
    ];

  boot.initrd.availableKernelModules = [ "uhci_hcd" "ehci_pci" "ahci" "xhci_pci" "mvsas" "pata_marvell" "usbhid" "sd_mod" ];
  boot.initrd.kernelModules = [ ];
  boot.kernelModules = [ "kvm-intel" ];
  boot.extraModulePackages = [ ];

  fileSystems."/" =
    { device = "/dev/disk/by-uuid/d6bbf66d-56b2-4bfd-81fd-7a255da85369";
      fsType = "ext4";
    };

  swapDevices = [ ];

  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
  # (the default) this is the recommended approach. When using systemd-networkd it's
  # still possible to use this option, but it's recommended to use it in conjunction
  # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
  networking.useDHCP = lib.mkDefault true;
  # networking.interfaces.enp12s0.useDHCP = lib.mkDefault true;
  # networking.interfaces.enp13s0.useDHCP = lib.mkDefault true;

  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

nvidia config:

{ config, pkgs, ... }:
{
  # Enable OpenGL
  hardware.opengl = {
    enable = true;
    driSupport = true;
    driSupport32Bit = true;
  };

  # Load nvidia driver for Xorg and Wayland
  services.xserver.videoDrivers = [
    "legacy_470"
  ];

  hardware.nvidia = {

    # Modesetting is required.
    modesetting.enable = true;

    # Nvidia power management. Experimental, and can cause sleep/suspend to fail.
    # Enable this if you have graphical corruption issues or application crashes after waking
    # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
    # of just the bare essentials.
    powerManagement.enable = false;

    # Fine-grained power management. Turns off GPU when not in use.
    # Experimental and only works on modern Nvidia GPUs (Turing or newer).
    powerManagement.finegrained = false;

    # Use the NVidia open source kernel module (not to be confused with the
    # independent third-party "nouveau" open source driver).
    # Support is limited to the Turing and later architectures. Full list of
    # supported GPUs is at:
    # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
    # Only available from driver 515.43.04+
    # Currently alpha-quality/buggy, so false is currently the recommended setting.
    open = false;

    # Enable the Nvidia settings menu,
	  # accessible via `nvidia-settings`.
    nvidiaSettings = true;

    # Optionally, you may need to select the appropriate driver version for your specific GPU.
    package = config.boot.kernelPackages.nvidiaPackages.legacy_470;
  };
}

Also, one problem with the gnome remote desktop being enabled from the GUI is it requires me to be logged in order to get a remote desktop session, but I would prefer to be able to remote in while my server is in a different room without a monitor.

Also, when I enable gnome-remote-desktop and reboot, there’s no GUI on login (i have autoLogin enabled). I can ssh, and see that the status is enabled grdctl status and I have to grdctl rdp disable and reboot in order to get a GUI on the main monitor again.

I found Xrdp - ArchWiki which seems to have some good info for this scenario. I will see if going through some of those steps help.

Im also planning to try sunshine. I don’t need any particular remote desktop solution, i just need to be able to get a GUI remotely every now and again

FYI: updating config such as changing services.xrdp.defaultWindowManager and running sudo nixos-rebuild switch does not restart the xrdp-sesman.service, so sudo systemctl restart xrdp-sesman.service is required too.

I’ve got services.xrdp.defaultWindowManager = "${pkgs.xterm}/bin/xterm"; working successfully.

FYI: the config specified by Remote Desktop - NixOS Wiki worked for showing a loading screen, but then the screen was completely blank:

services.xserver.enable = true;
services.xserver.displayManager.sddm.enable = true;
services.xserver.desktopManager.plasma5.enable = true;

services.xrdp.enable = true;
services.xrdp.defaultWindowManager = "startplasma-x11";
services.xrdp.openFirewall = true;

also, the physical display did not show a login screen nor autoLogIn my user. completely blank screen there.

commenting out my nvidia-770.nix allowed physical display to display the GUI and autoLogin worked.

however, RDP session still has blank window

If I login with root, i get a GUI

note… I need to use services.xserver.videoDrivers = [ "nvidia" ];
and not services.xserver.videoDrivers = [ "legacy_470" ];

ok so i created a new user,

  users.users.sgtpookirdp = {
    isNormalUser = true;
    home = "/home/sgtpookirdp";
    description = "RDP-only user";
    extraGroups = [ "wheel" "networkmanager" "audio" "video" "disk" "input" "render" ];
    hashedPassword = "REDACTED";
  };

and was able to rdp successfully with that user… any idea how i can clear out whatever config is blocking sgtpooki user from a successful RDP?