nixos/openrazer: add additional battery notifier options (#273761)

This commit is contained in:
Noah S-C 2024-05-01 15:52:22 +01:00 committed by GitHub
parent ce8cd6dfc9
commit b4df506a48
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -19,7 +19,9 @@ let
[Startup]
sync_effects_enabled = ${toPyBoolStr cfg.syncEffectsEnabled}
devices_off_on_screensaver = ${toPyBoolStr cfg.devicesOffOnScreensaver}
mouse_battery_notifier = ${toPyBoolStr cfg.mouseBatteryNotifier}
battery_notifier = ${toPyBoolStr (cfg.mouseBatteryNotifier || cfg.batteryNotifier.enable)}
battery_notifier_freq = ${builtins.toString cfg.batteryNotifier.frequency}
battery_notifier_percent = ${builtins.toString cfg.batteryNotifier.percentage}
[Statistics]
key_statistics = ${toPyBoolStr cfg.keyStatistics}
@ -86,6 +88,41 @@ in
'';
};
batteryNotifier = mkOption {
description = ''
Settings for device battery notifications.
'';
default = {};
type = types.submodule {
options = {
enable = mkOption {
type = types.bool;
default = true;
description = ''
Mouse battery notifier.
'';
};
frequency = mkOption {
type = types.int;
default = 600;
description = ''
How often battery notifications should be shown (in seconds).
A value of 0 disables notifications.
'';
};
percentage = mkOption {
type = types.int;
default = 33;
description = ''
At what battery percentage the device should reach before
sending notifications.
'';
};
};
};
};
keyStatistics = mkOption {
type = types.bool;
default = false;
@ -107,6 +144,13 @@ in
};
config = mkIf cfg.enable {
warnings = flatten [
(optional cfg.mouseBatteryNotifier ''
The option openrazer.mouseBatteryNotifier is deprecated.
Please use openrazer.batteryNotifier instead to enable and configure battery notifications.
'')
];
boot.extraModulePackages = [ kernelPackages.openrazer ];
boot.kernelModules = drivers;
@ -127,15 +171,15 @@ in
systemd.user.services.openrazer-daemon = {
description = "Daemon to manage razer devices in userspace";
unitConfig.Documentation = "man:openrazer-daemon(8)";
# Requires a graphical session so the daemon knows when the screensaver
# starts. See the 'devicesOffOnScreensaver' option.
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
serviceConfig = {
Type = "dbus";
BusName = "org.razer";
ExecStart = "${daemonExe} --foreground";
Restart = "always";
# Requires a graphical session so the daemon knows when the screensaver
# starts. See the 'devicesOffOnScreensaver' option.
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
serviceConfig = {
Type = "dbus";
BusName = "org.razer";
ExecStart = "${daemonExe} --foreground";
Restart = "always";
};
};
};