1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7let
8 cfg = config.services.ratbagd;
9in
10{
11 ###### interface
12
13 options = {
14 services.ratbagd = {
15 enable = lib.mkEnableOption "ratbagd for configuring gaming mice";
16
17 package = lib.mkPackageOption pkgs "libratbag" { };
18 };
19 };
20
21 ###### implementation
22
23 config = lib.mkIf cfg.enable {
24 # Give users access to the "ratbagctl" tool
25 environment.systemPackages = [ cfg.package ];
26
27 services.dbus.packages = [ cfg.package ];
28
29 systemd.packages = [ cfg.package ];
30 };
31}