flake: make this a user package instead

This commit is contained in:
2025-03-02 23:06:52 -08:00
parent 6a574597c5
commit 0a86dbed49

View File

@@ -53,42 +53,25 @@
user = lib.mkOption { user = lib.mkOption {
type = lib.types.str; type = lib.types.str;
default = "queuecube"; description = "User account under which QueueCube runs (required)";
description = "User account under which QueueCube runs";
};
group = lib.mkOption {
type = lib.types.str;
default = "queuecube";
description = "Group under which QueueCube runs";
}; };
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
users.users.${cfg.user} = lib.mkIf (cfg.user == "queuecube") { users.users.${cfg.user} = {
isSystemUser = true; packages = [ self.packages.${pkgs.system}.queuecube ];
group = cfg.group;
description = "QueueCube service user";
home = "/var/lib/queuecube";
createHome = true;
}; };
users.groups.${cfg.group} = lib.mkIf (cfg.group == "queuecube") {}; systemd.user.services.queuecube = {
systemd.services.queuecube = {
description = "QueueCube media player service"; description = "QueueCube media player service";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "default.target" ];
after = [ "network.target" ]; after = [ "pipewire.service" "pipewire-pulse.service" ];
serviceConfig = { serviceConfig = {
ExecStart = "${self.packages.${pkgs.system}.queuecube}/bin/queuecube"; ExecStart = "${self.packages.${pkgs.system}.queuecube}/bin/queuecube";
Restart = "on-failure"; Restart = "on-failure";
User = cfg.user; RestartSec = 5;
Group = cfg.group;
# Audio/Video access
SupplementaryGroups = [ "audio" "video" ];
# Allow access to X11 for mpv # Allow access to X11 for mpv
Environment = [ "DISPLAY=:0" ]; Environment = [ "DISPLAY=:0" ];
}; };
@@ -203,4 +186,4 @@
nixosModules.default = nixosModule; nixosModules.default = nixosModule;
nixosModules.queuecube = nixosModule; nixosModules.queuecube = nixosModule;
}; };
} }