diff --git a/packages/writeCppScriptBin/default.nix b/functions/writeCppScriptBin/default.nix similarity index 100% rename from packages/writeCppScriptBin/default.nix rename to functions/writeCppScriptBin/default.nix diff --git a/homes/x86_64-linux/kylekrein/emacs.nix b/homes/x86_64-linux/kylekrein/emacs.nix index 4446f56..4c17dbd 100644 --- a/homes/x86_64-linux/kylekrein/emacs.nix +++ b/homes/x86_64-linux/kylekrein/emacs.nix @@ -24,7 +24,7 @@ in { ExecStart = "${pkgs.writeShellScript "run-emacs" '' ${emacs}/bin/emacs --fg-daemon ''}"; - Restart = "on-failure"; + Restart = "always"; RestartSec = 5; }; }; diff --git a/homes/x86_64-linux/kylekrein/niri/niri.nix b/homes/x86_64-linux/kylekrein/niri/niri.nix index e771f51..de77281 100644 --- a/homes/x86_64-linux/kylekrein/niri/niri.nix +++ b/homes/x86_64-linux/kylekrein/niri/niri.nix @@ -46,11 +46,6 @@ in "${lib.getExe pkgs.networkmanagerapplet}" ]; } - { - command = [ - "${lib.getExe pkgs.networkmanagerapplet}" - ]; - } { command = [ "dbus-update-activation-environment" @@ -275,7 +270,7 @@ in settings.listener = let secondary = "${systemctl} suspend"; in - lib.mkIf (osConfig.custom.hardware.battery.enable) [ + lib.optionals (osConfig.custom.hardware.battery.enable) [ #{ # timeout = 30; # command = "pidof hyprlock && ${secondary}"; @@ -290,13 +285,6 @@ in } ]; }; - services = { - mako = { - enable = false; - settings = { - }; - }; - }; systemd.user.services.lisgd-niri = lib.mkIf (osConfig.custom.hardware.framework12.enable) { Unit = { Description = "Makes sure that you have touchscreen gestures."; diff --git a/modules/nixos/hardware/battery/default.nix b/modules/nixos/hardware/battery/default.nix index 733503d..4f5c2bd 100644 --- a/modules/nixos/hardware/battery/default.nix +++ b/modules/nixos/hardware/battery/default.nix @@ -30,9 +30,82 @@ in { }; }; - config = mkIf cfg.enable (import ./batteryStatus.nix { - inherit config; - inherit namespace; - inherit pkgs; - }); + config = mkIf cfg.enable ((import ./batteryStatus.nix { + inherit config; + inherit namespace; + inherit pkgs; + }) + // { + # one of "ignore", "poweroff", "reboot", "halt", "kexec", "suspend", "hibernate", "hybrid-sleep", "suspend-then-hibernate", "lock" + services.logind.lidSwitch = + if config.${namespace}.hardware.hibernation.enable + then "suspend-then-hibernate" + else "suspend"; + ### NixOS power management + #https://discourse.nixos.org/t/battery-life-still-isnt-great/41188/7 + powerManagement = { + enable = true; + #cpuFreqGovernor = "schedutil"; + }; + services.power-profiles-daemon.enable = false; + services.auto-cpufreq.enable = true; + services.auto-cpufreq.settings = { + battery = { + governor = "powersave"; + turbo = "never"; + }; + charger = { + governor = "performance"; + turbo = "auto"; + }; + }; + + ### KERNEL + boot.kernelParams = [ + "ahci.mobile_lpm_policy=3" + "rtc_cmos.use_acpi_alarm=1" + ]; + + ### HWP + systemd.tmpfiles.rules = [ + "w /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference - - - - balance_power" + ]; + + ### TLP + services.tlp = { + enable = true; + settings = { + CPU_SCALING_GOVERNOR_ON_AC = "performance"; + CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; + + CPU_ENERGY_PERF_POLICY_ON_AC = "performance"; + CPU_ENERGY_PERF_POLICY_ON_BAT = "power"; + + PLATFORM_PROFILE_ON_AC = "performance"; + PLATFORM_PROFILE_ON_BAT = "low-power"; + + CPU_BOOST_ON_AC = 1; + CPU_BOOST_ON_BAT = 0; + + CPU_HWP_DYN_BOOST_ON_AC = 1; + CPU_HWP_DYN_BOOST_ON_BAT = 0; + + CPU_MIN_PERF_ON_AC = 0; + CPU_MAX_PERF_ON_AC = 100; + CPU_MIN_PERF_ON_BAT = 0; + CPU_MAX_PERF_ON_BAT = 20; + + #Optional helps save long term battery health + #START_CHARGE_THRESH_BAT0 = 60; # 60 and below it starts to charge + #STOP_CHARGE_THRESH_BAT0 = 90; # 90 and above it stops charging + }; + }; + + ### SYSTEM 76 SCHEDULER + services.system76-scheduler = { + enable = true; + useStockConfig = true; + settings.cfsProfiles.enable = true; + }; + }); } diff --git a/modules/nixos/hardware/framework12/default.nix b/modules/nixos/hardware/framework12/default.nix index 136e9ff..bf18d98 100644 --- a/modules/nixos/hardware/framework12/default.nix +++ b/modules/nixos/hardware/framework12/default.nix @@ -44,6 +44,10 @@ in { }); }) ]; + + hardware.intel-gpu-tools.enable = true; + services.thermald.enable = true; + hardware.enableRedistributableFirmware = true; environment.systemPackages = [ pkgs.framework-tool diff --git a/overlays/functions/default.nix b/overlays/functions/default.nix new file mode 100644 index 0000000..fa696c5 --- /dev/null +++ b/overlays/functions/default.nix @@ -0,0 +1,29 @@ +{ + channels, + namespace, + inputs, + lib, + ... +}: + final: prev: let + inherit (lib.snowfall.fs) get-snowfall-file get-directories get-default-nix-files-recursive; + inherit (lib.attrsets) nameValuePair listToAttrs; + + srcDir = get-snowfall-file "functions"; + dirs = get-directories srcDir; + nixFiles = + lib.concatMap get-default-nix-files-recursive dirs; + functions = listToAttrs (map + (file: + let + dirName = + builtins.unsafeDiscardStringContext + (builtins.baseNameOf + (builtins.unsafeDiscardStringContext + (builtins.toString + (builtins.dirOf file)))); + in + nameValuePair dirName (final.callPackage file {})) + nixFiles); +in +functions // {${namespace} = functions;} diff --git a/packages/deploy-rs-online/default.nix b/packages/deploy-rs-online/default.nix index 703d36b..608b4b5 100644 --- a/packages/deploy-rs-online/default.nix +++ b/packages/deploy-rs-online/default.nix @@ -1,11 +1,11 @@ { - custom, + writeCppScriptBin, lib, jq, deploy-rs, ... }: -custom.writeCppScriptBin { +writeCppScriptBin { name = "deploy-rs-online"; code = '' #include