nixpkgs/nixos/modules/services/desktops/gnome/gnome-remote-desktop.nix
Nanotwerp 33cafd77e7
nixos/gnome-remote-desktop: support gnome 46 features
Add package to environment.systemPackages, services.dbus.packages, create gnome-remote-desktop user and group (fixes for GNOME 46)

This adds the `g-r-d` package to environment.systemPackages (allowing the usage of the `grdctl` command along with enabling `g-r-d`'s polkit rule), makes its dbus-related files recognizable to dbus, and creates the `gnome-remote-desktop` user and group necessary for systemd's running of the `gnome-remote-desktop-daemon` with the `--system` subcommand and enabling Remote Login.
2024-04-22 21:11:26 +02:00

47 lines
1.2 KiB
Nix

# Remote desktop daemon using Pipewire.
{ config, lib, pkgs, ... }:
with lib;
{
meta = {
maintainers = teams.gnome.members;
};
# Added 2021-05-07
imports = [
(mkRenamedOptionModule
[ "services" "gnome3" "gnome-remote-desktop" "enable" ]
[ "services" "gnome" "gnome-remote-desktop" "enable" ]
)
];
###### interface
options = {
services.gnome.gnome-remote-desktop = {
enable = mkEnableOption "Remote Desktop support using Pipewire";
};
};
###### implementation
config = mkIf config.services.gnome.gnome-remote-desktop.enable {
services.pipewire.enable = true;
services.dbus.packages = [ pkgs.gnome.gnome-remote-desktop ];
environment.systemPackages = [ pkgs.gnome.gnome-remote-desktop ];
systemd.packages = [ pkgs.gnome.gnome-remote-desktop ];
systemd.tmpfiles.packages = [ pkgs.gnome.gnome-remote-desktop ];
# TODO: if possible, switch to using provided g-r-d sysusers.d
users = {
users.gnome-remote-desktop = {
isSystemUser = true;
group = "gnome-remote-desktop";
home = "/var/lib/gnome-remote-desktop";
};
groups.gnome-remote-desktop = { };
};
};
}