45 lines
1,015 B
Nix
45 lines
1,015 B
Nix
{ lib, osConfig, pkgs, ... }:
|
|
|
|
let
|
|
inherit (lib) mkIf;
|
|
inherit (builtins) elem;
|
|
features = osConfig.ooknet.host.hardware.features;
|
|
ookbrightness = pkgs.writeShellApplication {
|
|
name = "ookbrightness";
|
|
runtimeInputs = with pkgs; [brillo libnotify];
|
|
text = /* bash */ ''
|
|
BRIGHTNESS=$(brillo -G | awk -F'.' '{print$1}')
|
|
notify() {
|
|
notify-send --app-name="system-notify" -h string:x-canonical-private-synchronous:sys-notify " $BRIGHTNESS%"
|
|
}
|
|
option() {
|
|
case "$1" in
|
|
up)
|
|
brillo -q -u 30000 -A 5
|
|
;;
|
|
down)
|
|
brillo -q -u 30000 -U 5
|
|
;;
|
|
*)
|
|
echo "Invalid argument"
|
|
;;
|
|
esac
|
|
}
|
|
main() {
|
|
option "$@"
|
|
notify
|
|
}
|
|
main "$@"
|
|
'';
|
|
};
|
|
in
|
|
|
|
{
|
|
config = mkIf (elem "backlight" features) {
|
|
home.packages = [ ookbrightness ];
|
|
ooknet.binds.brightness = {
|
|
up = "ookbrightness up";
|
|
down = "ookbrightness down";
|
|
};
|
|
};
|
|
}
|