nix/nixos/hosts/framework-server/rdesktop.nix

43 lines
1.2 KiB
Nix
Raw Normal View History

2023-12-04 12:40:54 +01:00
{ pkgs, ... }: {
# Enabling Gnome causes the machien to sleep. Disable all of these.
2023-12-04 07:58:15 +01:00
systemd.targets.sleep.enable = false;
systemd.targets.suspend.enable = false;
systemd.targets.hibernate.enable = false;
systemd.targets.hybrid-sleep.enable = false;
2023-12-04 09:44:09 +01:00
2023-12-04 10:22:51 +01:00
services.xrdp = {
enable = true;
2023-12-04 13:52:29 +01:00
defaultWindowManager = "${pkgs.gnome.gnome-session}/bin/gnome-session";
2023-12-04 10:22:51 +01:00
openFirewall = true;
2023-12-05 11:46:05 +01:00
# confDir = "/etc/xrdp/conf";
2023-12-04 10:22:51 +01:00
};
2023-12-04 12:15:35 +01:00
2023-12-05 11:46:05 +01:00
environment.systemPackages = [
pkgs.xrdp
];
2023-12-04 12:15:35 +01:00
# XRDP needs IPv6 disabled to function.
2023-12-04 12:58:23 +01:00
boot.kernel.sysctl = {
"net.ipv6.conf.enp0s13f0u1.disable_ipv6" = true;
"net.ipv6.conf.all.disable_ipv6" = true;
"net.ipv6.conf.wlp170s0.disable_ipv6" = true;
};
2023-12-05 11:46:05 +01:00
# https://nixos.wiki/wiki/Polkit
security.polkit.extraConfig = ''
polkit.addRule(function(action, subject) {
if (
subject.isInGroup("users")
&& (
action.id == "org.freedesktop.login1.reboot" ||
action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
action.id == "org.freedesktop.login1.power-off" ||
action.id == "org.freedesktop.login1.power-off-multiple-sessions"
)
)
{
return polkit.Result.YES;
}
})
'';
2023-12-04 03:54:07 +01:00
}