at 25.11-pre 1.3 kB view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7with lib; 8let 9 cfg = config.services.handheld-daemon; 10in 11{ 12 options.services.handheld-daemon = { 13 enable = mkEnableOption "Handheld Daemon"; 14 package = mkPackageOption pkgs "handheld-daemon" { }; 15 16 ui = { 17 enable = mkEnableOption "Handheld Daemon UI"; 18 package = mkPackageOption pkgs "handheld-daemon-ui" { }; 19 }; 20 21 user = mkOption { 22 type = types.str; 23 description = '' 24 The user to run Handheld Daemon with. 25 ''; 26 }; 27 }; 28 29 config = mkIf cfg.enable { 30 services.handheld-daemon.ui.enable = mkDefault true; 31 environment.systemPackages = [ 32 cfg.package 33 ] ++ lib.optional cfg.ui.enable cfg.ui.package; 34 services.udev.packages = [ cfg.package ]; 35 systemd.packages = [ cfg.package ]; 36 37 systemd.services.handheld-daemon = { 38 description = "Handheld Daemon"; 39 40 wantedBy = [ "multi-user.target" ]; 41 42 restartIfChanged = true; 43 44 path = mkIf cfg.ui.enable [ 45 cfg.ui.package 46 pkgs.lsof 47 ]; 48 49 serviceConfig = { 50 ExecStart = "${lib.getExe cfg.package} --user ${cfg.user}"; 51 Nice = "-12"; 52 Restart = "on-failure"; 53 RestartSec = "10"; 54 }; 55 }; 56 }; 57 58 meta.maintainers = [ maintainers.appsforartists ]; 59}