2019-09-11 17:17:56 +04:00

59 lines
1.6 KiB
Nix

{ config, pkgs, lib, ... }: {
programs.light.enable = config.deviceSpecific.isLaptop;
services.actkbd = {
enable = config.deviceSpecific.isLaptop;
bindings = map (x:
x // {
events = ["key"];
attributes = ["exec"];
}) ((if config.device == "ASUS-Laptop" then [
{
keys = [229];
command =
"expr -1 + `cat '/sys/class/leds/asus::kbd_backlight/brightness'` > '/sys/class/leds/asus::kbd_backlight/brightness'";
}
{
keys = [230];
command =
"expr 1 + `cat '/sys/class/leds/asus::kbd_backlight/brightness'` > '/sys/class/leds/asus::kbd_backlight/brightness'";
}
{
keys = [560];
command = toString (pkgs.stdenv.mkDerivation {
name = "als-script";
src = ./als-script.hs;
buildInputs = [pkgs.ghc];
buildPhase = "ghc $src -o $out";
unpackPhase = "true";
installPhase = "true";
});
}
] else
[]) ++ [
{
keys = [225];
command = "${pkgs.light}/bin/light -A 10";
}
{
keys = [224];
command = "${pkgs.light}/bin/light -U 10";
}
{
keys = [431];
command = (toString (pkgs.writeTextFile {
name = "dark-script";
text = ''
if [[ `${pkgs.light}/bin/light` -eq 0 ]]
then
${pkgs.light}/bin/light -I
else
${pkgs.light}/bin/light -O
${pkgs.light}/bin/light -S 0
fi'';
executable = true;
}));
}
]);
};
}