at 24.11-pre 957 B view raw
1{ config 2, lib 3, pkgs 4, ... 5}: 6with lib; let 7 cfg = config.services.handheld-daemon; 8in 9{ 10 options.services.handheld-daemon = { 11 enable = mkEnableOption "Enable Handheld Daemon"; 12 package = mkPackageOption pkgs "handheld-daemon" { }; 13 14 user = mkOption { 15 type = types.str; 16 description = '' 17 The user to run Handheld Daemon with. 18 ''; 19 }; 20 }; 21 22 config = mkIf cfg.enable { 23 environment.systemPackages = [ cfg.package ]; 24 services.udev.packages = [ cfg.package ]; 25 systemd.packages = [ cfg.package ]; 26 27 systemd.services.handheld-daemon = { 28 description = "Handheld Daemon"; 29 30 wantedBy = [ "multi-user.target" ]; 31 32 restartIfChanged = true; 33 34 serviceConfig = { 35 ExecStart = "${ lib.getExe cfg.package } --user ${ cfg.user }"; 36 Nice = "-12"; 37 Restart = "on-failure"; 38 RestartSec = "10"; 39 }; 40 }; 41 }; 42 43 meta.maintainers = [ maintainers.appsforartists ]; 44}