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}