1{
2 pkgs,
3 lib,
4 config,
5 ...
6}:
7
8let
9 cfg = config.programs.feedbackd;
10in
11{
12 options = {
13 programs.feedbackd = {
14 enable = lib.mkEnableOption ''
15 the feedbackd D-BUS service and udev rules.
16
17 Your user needs to be in the `feedbackd` group to trigger effects
18 '';
19 package = lib.mkPackageOption pkgs "feedbackd" { };
20 theme-package = lib.mkPackageOption pkgs "feedbackd-device-themes" {
21 nullable = true;
22 };
23 };
24 };
25 config = lib.mkIf cfg.enable {
26 environment.systemPackages = [
27 cfg.package
28 ]
29 ++ (if cfg.theme-package != null then [ cfg.theme-package ] else [ ]);
30
31 services.dbus.packages = [ cfg.package ];
32 services.udev.packages = [ cfg.package ];
33
34 # TODO: also enable systemd unit fbd-alert-slider for OnePlus 6/6T devices, see release notes of feedbackd v0.5.0
35
36 users.groups.feedbackd = { };
37 };
38}