ocamlPackages.hxd: 0.3.2 -> 0.3.3 (#364231)
[NixPkgs.git] / nixos / modules / services / hardware / handheld-daemon.nix
blob4ea5eb79593fd06573d7fde83696f0145778e39e
2   config,
3   lib,
4   pkgs,
5   ...
6 }:
7 with lib;
8 let
9   cfg = config.services.handheld-daemon;
12   options.services.handheld-daemon = {
13     enable = mkEnableOption "Handheld Daemon";
14     package = mkPackageOption pkgs "handheld-daemon" { };
16     ui = {
17       enable = mkEnableOption "Handheld Daemon UI";
18       package = mkPackageOption pkgs "handheld-daemon-ui" { };
19     };
21     user = mkOption {
22       type = types.str;
23       description = ''
24         The user to run Handheld Daemon with.
25       '';
26     };
27   };
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 ];
37     systemd.services.handheld-daemon = {
38       description = "Handheld Daemon";
40       wantedBy = [ "multi-user.target" ];
42       restartIfChanged = true;
44       path = mkIf cfg.ui.enable [
45         cfg.ui.package
46         pkgs.lsof
47       ];
49       serviceConfig = {
50         ExecStart = "${lib.getExe cfg.package} --user ${cfg.user}";
51         Nice = "-12";
52         Restart = "on-failure";
53         RestartSec = "10";
54       };
55     };
56   };
58   meta.maintainers = [ maintainers.appsforartists ];