yasu
May 28, 2020, 3:36pm
1
Hi,
I use NixOS 20.03.
XRDP doesnt work as advertised
https://nixos.wiki/wiki/Remote_Desktop
Would somone please post a working configuration.nix?
When I specify the ICEW as in the link and log in via RDP, the system just asks for username and password and after that I just get a teal background screen with no buton
I am puzzled that there aren’t many posting about XRDP in NixOS. Do people just use SSH or X window manager and not many people use XRDP? Or do people just use something like the VNCServer?
dalto
May 28, 2020, 4:19pm
2
I just tested it. It works fine here. I am using xorg.
I copy/pasted it straight from the wiki:
services.xrdp.enable = true;
services.xrdp.defaultWindowManager = "${pkgs.icewm}/bin/icewm";
networking.firewall.allowedTCPPorts = [ 3389 ];
Here is the full configuration.nix from the VM I use for testing random nixos stuff. It isn’t very clean
configuration.nix
# The vm used for testing
{ config, pkgs, ... }:
let
unstable = import <nixos-unstable> { config = { allowUnfree = true; }; };
in {
imports =
[
./modules/common.nix
./modules/zsh.nix
./modules/sddm-theme.nix
./modules/vmware.nix
];
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Enable the KDE Desktop Environment.
services.xserver.desktopManager.plasma5.enable = true;
services.xserver.displayManager.sddm = {enable = true; extraConfig = ''
[General]
InputMethod=
'';};
services.sddmTheme = {enable = true; backgroundFile = /wallpapers/slimepink.png;};
networking.interfaces.ens33.useDHCP = true;
networking.hostName = "nixos";
environment.systemPackages = with pkgs; [
unzip
ffmpeg
kate
firefox
flameshot
gwenview
okular
gimp
falkon
(vivaldi.override { proprietaryCodecs = true; enableWidevine = true; })
smplayer
vlc
sayonara
latte-dock
appimage-run
unstable.vscodium
inxi
lm_sensors
glxinfo
mpv
];
# Open ports in the firewall.
networking.firewall.enable = true;
networking.firewall.allowedTCPPorts = [ 3389 ];
# networking.firewall.allowedUDPPorts = [ ... ];
services.printing.enable = true;
# Enable sound.
sound.enable = true;
hardware.pulseaudio.enable = true;
# Enable the X11 windowing system.
services.xserver.enable = true;
services.xserver.layout = "us";
# services.xserver.xkbOptions = "eurosign:e";
users.users.dalto = {
isNormalUser = true;
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
};
system.stateVersion = "20.03"; # Did you read the comment?
nixpkgs.config.allowUnfree = true;
# zfs
boot.initrd.supportedFilesystems = [ "zfs" ];
boot.zfs.devNodes = "/dev/disk/by-partuuid";
services.zfs.autoScrub.enable = true;
networking.hostId = "6b4fb61d";
# automatic upgrades
system.autoUpgrade = {enable = true; allowReboot = true;};
services.xrdp.enable = true;
services.xrdp.defaultWindowManager = "${pkgs.icewm}/bin/icewm";
}
Speaking only for myself, I use ssh 90% of the time. When I need a graphical session I usually use my virtualization platform to get access to the console.
yasu
May 28, 2020, 8:21pm
3
Thank you so much! Let me try soon! Is it the case that I need to turn off the native X session running with the video caed before I can use the XRDP version, maybe? Anyway, let me try!
dalto
May 28, 2020, 8:40pm
4
I don’t think so. I was able to log into the plasma session via the console and rdp concurrently.
That being said, I didn’t test extensively.
@yasu I am using XRDP + remmina (the RDP client) for work extensively. This module should work for 20.03. Hope it helps. Btw, I am using xfce on remote server, haven’t tested the others yet.
yasu
July 14, 2020, 2:51pm
6
I have just tried again - using the same configuration, I still get the same old problem - just a teal background screen
yasu
July 14, 2020, 3:10pm
7
This XRDP setting is so frustrating. I have no idea what I am doing wrong.
These are the relevant lines from my /etc/nixos/configuration.nix
``
services.xrdp.enable = true;
services.xrdp.defaultWindowManager = “${pkgs.xterm}/bin/xterm”;
networking.firewall.allowedTCPPorts = [ 3389 ];
``
Would some please post a complete configuration that does work? (Please make it as “declarative” as possible - no missing dependencies or anything)
I don’t care what kind of Window Manger - just please post something that does work (meaning, I can launch programs)
I am so curious why this takes such an effort. Doesn’t almost everybody who runs graphical applications from a remote terminal use XRDP? Or do people use other methods like VNC?
tbenst
July 14, 2020, 3:36pm
8
I’ve been using x11vnc which does work but crashes frequently for unknown reasons. x11 forwarding on ssh works with good stability however
yasu
July 15, 2020, 11:29pm
9
It appears that the following is necessary to make it work.
There can only be a single desktopManager. Add multiple lines and XRDP won’t work
services.xserver.desktopManager.gnome3.enable = true;
Even if only a single desktopManager is specified as above, only ICEWM would work. No other desktopManager will work (other than the default xterm).
services.xrdp.defaultWindowManager = "${pkgs.icewm}/bin/icewm";
In the github link below, anything that includes:
config.services.xserver.displayManager.session.script
will fail, because the daisy chaining by “.” (dot) will fail in the middle of the expression.
The expression fails because one of the elements joined by “.” is a list of 2 elements, instead of a single set.
https://github.com/NixOS/nixpkgs/issues/57717
tbenst
November 25, 2020, 6:57am
10
A working solution for KDE has been found (xrdp server missing KDE option · Issue #57717 · NixOS/nixpkgs · GitHub ):
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";
networking.firewall.allowedTCPPorts = [ 3389 ];
Make sure to reboot after rebuilding.
yasu
November 25, 2020, 12:22pm
11
Thank you:smile: - I have recently switched to GNU Guix but I still use NixOS o my wife’s machine. This is good to know!
I tried that solution. I got the x11 login windows, I saw plasma starting/loading but then I just got a black screen. I’m using Nixos Unstable.
Any idea why it’s not working anymore?
Figured it out: I first needed to log out on the remove machine before connecting with RDP.
I’m trying to use gnome, can you give me the link to the wiki where these lines of code are.
services.xrdp.enable = true;
services.xrdp.defaultWindowManager = "${pkgs.icewm}/bin/icewm";
networking.firewall.allowedTCPPorts = [ 3389 ];
dalto
September 13, 2022, 9:45pm
14
That was over two years ago. It has probably changed quite a bit since then. This is probably the section you want:
https://nixos.wiki/wiki/Remote_Desktop
Thanks for responding. We got it working.