{ config, pkgs, lib, ... }: { boot.kernelModules = [ "coretemp" ]; boot.extraModulePackages = with config.boot.kernelPackages; [ x86_energy_perf_policy ]; hardware = { bluetooth = { enable = true; powerOnBoot = false; package = pkgs.bluezFull; }; pulseaudio = { extraModules = with pkgs; [ pulseaudio-modules-bt ]; }; }; systemd.services.bluetooth.wantedBy = lib.mkForce []; systemd.timers.bluetooth = { description = "Delayed startup of Bluetooth"; wantedBy = [ "timers.target" ]; timerConfig = { OnActiveSec = "1 min"; }; }; environment.systemPackages = with pkgs; [ blueman bluez-tools powerstat powertop arandr autorandr disper ]; programs.light.enable = true; services.autorandr.enable = true; services.logind.extraConfig = '' IdleAction=suspend IdleActionSec=600 ''; services.acpid = { enable = true; lidEventCommands = '' ${pkgs.autorandr}/bin/autorandr --batch --change ''; }; services.physlock = { enable = true; # Already need to enter disk encryption password lockOn.hibernate = false; }; services.tlp = { enable = true; extraConfig = '' CPU_SCALING_GOVERNOR_ON_BAT=powersave ''; }; services.xserver = { libinput = { enable = lib.mkDefault true; naturalScrolling = true; disableWhileTyping = true; }; displayManager.sessionCommands = '' ${pkgs.autorandr}/bin/autorandr --change --force ''; }; systemd.services.nixos-upgrade.unitConfig.ConditionACPower = true; systemd.services.nix-gc.unitConfig.ConditionACPower = true; imports = [ ../user-interface.nix ]; }