Improved? battery life + pkgs functions

This commit is contained in:
Aleksandr Lebedev 2025-08-11 23:28:50 +02:00
parent 3d5d222c1d
commit ed48a77b93
7 changed files with 115 additions and 21 deletions

View file

@ -24,7 +24,7 @@ in {
ExecStart = "${pkgs.writeShellScript "run-emacs" ''
${emacs}/bin/emacs --fg-daemon
''}";
Restart = "on-failure";
Restart = "always";
RestartSec = 5;
};
};

View file

@ -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.";

View file

@ -30,9 +30,82 @@ in {
};
};
config = mkIf cfg.enable (import ./batteryStatus.nix {
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;
};
});
}

View file

@ -44,6 +44,10 @@ in {
});
})
];
hardware.intel-gpu-tools.enable = true;
services.thermald.enable = true;
hardware.enableRedistributableFirmware = true;
environment.systemPackages = [
pkgs.framework-tool

View file

@ -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;}

View file

@ -1,11 +1,11 @@
{
custom,
writeCppScriptBin,
lib,
jq,
deploy-rs,
...
}:
custom.writeCppScriptBin {
writeCppScriptBin {
name = "deploy-rs-online";
code = ''
#include <string>