mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-20 04:19:00 +02:00
light: support brightness control keys
This commit is contained in:
parent
2c7f3c0fb7
commit
5e329241e8
|
@ -9,6 +9,7 @@ in
|
|||
{
|
||||
options = {
|
||||
programs.light = {
|
||||
|
||||
enable = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
|
@ -17,11 +18,60 @@ in
|
|||
and udev rules granting access to members of the "video" group.
|
||||
'';
|
||||
};
|
||||
|
||||
brightnessKeys = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to enable brightness control with keyboard keys.
|
||||
|
||||
This is mainly useful for minimalistic (desktop) environments. You
|
||||
may want to leave this disabled if you run a feature-rich desktop
|
||||
environment such as KDE, GNOME or Xfce as those handle the
|
||||
brightness keys themselves. However, enabling brightness control
|
||||
with this setting makes the control independent of X, so the keys
|
||||
work in non-graphical ttys, so you might want to consider using this
|
||||
instead of the default offered by the desktop environment.
|
||||
|
||||
Enabling this will turn on {option}`services.actkbd`.
|
||||
'';
|
||||
};
|
||||
|
||||
step = mkOption {
|
||||
type = types.int;
|
||||
default = 10;
|
||||
description = ''
|
||||
The percentage value by which to increase/decrease brightness.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [ pkgs.light ];
|
||||
services.udev.packages = [ pkgs.light ];
|
||||
services.actkbd = mkIf cfg.brightnessKeys.enable {
|
||||
enable = true;
|
||||
bindings = let
|
||||
light = "${pkgs.light}/bin/light";
|
||||
step = toString cfg.brightnessKeys.step;
|
||||
in [
|
||||
{
|
||||
keys = [ 224 ];
|
||||
events = [ "key" ];
|
||||
# Use minimum brightness 0.1 so the display won't go totally black.
|
||||
command = "${light} -N 0.1 && ${light} -U ${step}";
|
||||
}
|
||||
{
|
||||
keys = [ 225 ];
|
||||
events = [ "key" ];
|
||||
command = "${light} -A ${step}";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue