grafana-alloy: don't build the frontend twice
[NixPkgs.git] / nixos / modules / services / misc / tp-auto-kbbl.nix
blob4ea356a133d80732253f5bc5f6fa65e9719c68cc
1 { config, lib, pkgs, ... }:
3 with lib;
5 let cfg = config.services.tp-auto-kbbl;
7 in {
8   meta.maintainers = with maintainers; [ sebtm ];
10   options = {
11     services.tp-auto-kbbl = {
12       enable = mkEnableOption "auto toggle keyboard back-lighting on Thinkpads (and maybe other laptops) for Linux";
14       package = mkPackageOption pkgs "tp-auto-kbbl" { };
16       arguments = mkOption {
17         type = types.listOf types.str;
18         default = [ ];
19         description = ''
20           List of arguments appended to `./tp-auto-kbbl --device [device] [arguments]`
21         '';
22       };
24       device = mkOption {
25         type = types.str;
26         default = "/dev/input/event0";
27         description = "Device watched for activities.";
28       };
30     };
31   };
33   config = mkIf cfg.enable {
34     environment.systemPackages = [ cfg.package ];
36     systemd.services.tp-auto-kbbl = {
37       serviceConfig = {
38         ExecStart = concatStringsSep " "
39           ([ "${cfg.package}/bin/tp-auto-kbbl" "--device ${cfg.device}" ] ++ cfg.arguments);
40         Restart = "always";
41         Type = "simple";
42       };
44       unitConfig = {
45         Description = "Auto toggle keyboard backlight";
46         Documentation = "https://github.com/saibotd/tp-auto-kbbl";
47         After = [ "dbus.service" ];
48       };
50       wantedBy = [ "multi-user.target" ];
51     };
52   };