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.
1 Like
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.
1 Like
@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.
1 Like
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?
1 Like
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
2 Likes
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.
2 Likes
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.
2 Likes
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.