diff --git a/hosts/common/system/configs/powertop/default.nix b/hosts/common/system/configs/powertop/default.nix new file mode 100644 index 0000000..4052fe2 --- /dev/null +++ b/hosts/common/system/configs/powertop/default.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ powertop ]; +} diff --git a/hosts/eirene/default.nix b/hosts/eirene/default.nix index 83a99d5..01d5582 100644 --- a/hosts/eirene/default.nix +++ b/hosts/eirene/default.nix @@ -31,6 +31,7 @@ ../common/system/configs/ntp ../common/system/configs/pipewire ../common/system/configs/plymouth + ../common/system/configs/powertop ../common/system/configs/printing ../common/system/configs/ranger ../common/system/configs/sops @@ -47,6 +48,10 @@ ./users/nick.nix ]; + networking.hostName = "eirene"; + i18n.defaultLocale = "en_US.UTF-8"; + sops.defaultSopsFile = ./secrets/secrets.yaml; + # https://github.com/NixOS/nixos-hardware/tree/master/lenovo/legion/16achg6 hardware = { enableAllFirmware = true; @@ -83,9 +88,12 @@ }; }; - networking.hostName = "eirene"; - i18n.defaultLocale = "en_US.UTF-8"; - sops.defaultSopsFile = ./secrets/secrets.yaml; + powerManagement = { + enable = true; + powertop.enable = true; + }; + + systemd.services.powertop.postStart = builtins.readFile ./scripts/mouse.sh; services = { xserver.videoDrivers = [ "nvidia" ]; diff --git a/hosts/eirene/scripts/mouse.sh b/hosts/eirene/scripts/mouse.sh new file mode 100644 index 0000000..c85501d --- /dev/null +++ b/hosts/eirene/scripts/mouse.sh @@ -0,0 +1,13 @@ +SEARCH_STRINGS=( + "Mouse" + "Razer DeathAdder Elite" +) + +for search_string in "${SEARCH_STRINGS[@]}"; do + echo "Searching for devices matching: ${search_string}" + + for f in $(grep -l "${search_string}" /sys/bus/usb/devices/*/product 2>/dev/null | sed "s/product/power\\/control/"); do + echo "Setting power control to 'on' for: ${f}" + echo on >| "${f}" + done +done