summaryrefslogtreecommitdiffstats
path: root/nixos/modules/programs/feedbackd.nix
blob: 7ee006e381cd3fee65bda1b89e0d8ad019a79ddf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
{
  pkgs,
  lib,
  config,
  ...
}:

let
  cfg = config.programs.feedbackd;
in
{
  options = {
    programs.feedbackd = {
      enable = lib.mkEnableOption ''
        the feedbackd D-BUS service and udev rules.

        Your user needs to be in the `feedbackd` group to trigger effects
      '';
      package = lib.mkPackageOption pkgs "feedbackd" { };
      theme-package = lib.mkPackageOption pkgs "feedbackd-device-themes" {
        nullable = true;
      };
    };
  };
  config = lib.mkIf cfg.enable {
    environment.systemPackages = [
      cfg.package
    ]
    ++ (if cfg.theme-package != null then [ cfg.theme-package ] else [ ]);

    services.dbus.packages = [ cfg.package ];
    services.udev.packages = [ cfg.package ];

    # TODO: also enable systemd unit fbd-alert-slider for OnePlus 6/6T devices, see release notes of feedbackd v0.5.0

    users.groups.feedbackd = { };
  };
}