From 0a86dbed49e09ebabdac0252e08fdc5857b1faa9 Mon Sep 17 00:00:00 2001 From: James Magahern Date: Sun, 2 Mar 2025 23:06:52 -0800 Subject: [PATCH] flake: make this a user package instead --- flake.nix | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/flake.nix b/flake.nix index 4f220c7..af2ba9c 100644 --- a/flake.nix +++ b/flake.nix @@ -53,42 +53,25 @@ user = lib.mkOption { type = lib.types.str; - default = "queuecube"; - description = "User account under which QueueCube runs"; - }; - - group = lib.mkOption { - type = lib.types.str; - default = "queuecube"; - description = "Group under which QueueCube runs"; + description = "User account under which QueueCube runs (required)"; }; }; config = lib.mkIf cfg.enable { - users.users.${cfg.user} = lib.mkIf (cfg.user == "queuecube") { - isSystemUser = true; - group = cfg.group; - description = "QueueCube service user"; - home = "/var/lib/queuecube"; - createHome = true; + users.users.${cfg.user} = { + packages = [ self.packages.${pkgs.system}.queuecube ]; }; - users.groups.${cfg.group} = lib.mkIf (cfg.group == "queuecube") {}; - - systemd.services.queuecube = { + systemd.user.services.queuecube = { description = "QueueCube media player service"; - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" ]; + wantedBy = [ "default.target" ]; + after = [ "pipewire.service" "pipewire-pulse.service" ]; serviceConfig = { ExecStart = "${self.packages.${pkgs.system}.queuecube}/bin/queuecube"; Restart = "on-failure"; - User = cfg.user; - Group = cfg.group; + RestartSec = 5; - # Audio/Video access - SupplementaryGroups = [ "audio" "video" ]; - # Allow access to X11 for mpv Environment = [ "DISPLAY=:0" ]; }; @@ -203,4 +186,4 @@ nixosModules.default = nixosModule; nixosModules.queuecube = nixosModule; }; -} \ No newline at end of file +}