{ config, pkgs, lib, ... }: with rec { inherit (config) device devices deviceSpecific; }; with deviceSpecific; { services.udev.extraRules = if isLaptop then '' ACTION=="add|change", KERNEL=="sd*[!0-9]|sr*", ATTR{queue/scheduler}="bfq" ACTION=="change", SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="${ pkgs.systemd }/bin/systemctl start battery" ACTION=="change", SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="${ pkgs.systemd }/bin/systemctl start ac" ACTION=="add|change", SUBSYSTEM=="backlight", MODE:="0777" '' + (if device == "ASUS-Laptop" then '' ACTION=="add|change", SUBSYSTEM=="net", KERNEL=="wlan*" RUN+="${ pkgs.iw }/bin/iw dev %k set power_save off" '' else "") else ""; systemd.services.battery = { enable = isLaptop; description = "Executes commands needed on battery power"; script = '' ${ pkgs.linuxPackages_latest.cpupower }/bin/cpupower frequency-set -g powersave ${pkgs.hdparm}/bin/hdparm -B 1 /dev/sda echo "500" > /sys/class/backlight/*/brightness ''; }; systemd.services.ac = { enable = isLaptop; description = "Executes commands needed on ac power"; script = '' ${ pkgs.linuxPackages_latest.cpupower }/bin/cpupower frequency-set -g performance ${pkgs.hdparm}/bin/hdparm -B 255 /dev/sda echo "900" > /sys/class/backlight/*/brightness ''; }; systemd.services.leds_setup = { enable = (device == "ASUS-Laptop"); description = "Set up leds triggers"; wantedBy = ["multi-user.target"]; script = '' echo "phy0rx" > /sys/class/leds/asus-wireless\:\:airplane/trigger ''; }; }