Improved? battery life + pkgs functions
This commit is contained in:
parent
3d5d222c1d
commit
ed48a77b93
7 changed files with 115 additions and 21 deletions
|
|
@ -24,7 +24,7 @@ in {
|
||||||
ExecStart = "${pkgs.writeShellScript "run-emacs" ''
|
ExecStart = "${pkgs.writeShellScript "run-emacs" ''
|
||||||
${emacs}/bin/emacs --fg-daemon
|
${emacs}/bin/emacs --fg-daemon
|
||||||
''}";
|
''}";
|
||||||
Restart = "on-failure";
|
Restart = "always";
|
||||||
RestartSec = 5;
|
RestartSec = 5;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -46,11 +46,6 @@ in
|
||||||
"${lib.getExe pkgs.networkmanagerapplet}"
|
"${lib.getExe pkgs.networkmanagerapplet}"
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
{
|
|
||||||
command = [
|
|
||||||
"${lib.getExe pkgs.networkmanagerapplet}"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
command = [
|
command = [
|
||||||
"dbus-update-activation-environment"
|
"dbus-update-activation-environment"
|
||||||
|
|
@ -275,7 +270,7 @@ in
|
||||||
settings.listener = let
|
settings.listener = let
|
||||||
secondary = "${systemctl} suspend";
|
secondary = "${systemctl} suspend";
|
||||||
in
|
in
|
||||||
lib.mkIf (osConfig.custom.hardware.battery.enable) [
|
lib.optionals (osConfig.custom.hardware.battery.enable) [
|
||||||
#{
|
#{
|
||||||
# timeout = 30;
|
# timeout = 30;
|
||||||
# command = "pidof hyprlock && ${secondary}";
|
# 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) {
|
systemd.user.services.lisgd-niri = lib.mkIf (osConfig.custom.hardware.framework12.enable) {
|
||||||
Unit = {
|
Unit = {
|
||||||
Description = "Makes sure that you have touchscreen gestures.";
|
Description = "Makes sure that you have touchscreen gestures.";
|
||||||
|
|
|
||||||
|
|
@ -30,9 +30,82 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable (import ./batteryStatus.nix {
|
config = mkIf cfg.enable ((import ./batteryStatus.nix {
|
||||||
inherit config;
|
inherit config;
|
||||||
inherit namespace;
|
inherit namespace;
|
||||||
inherit pkgs;
|
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;
|
||||||
|
};
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,10 @@ in {
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
hardware.intel-gpu-tools.enable = true;
|
||||||
|
services.thermald.enable = true;
|
||||||
|
|
||||||
hardware.enableRedistributableFirmware = true;
|
hardware.enableRedistributableFirmware = true;
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
pkgs.framework-tool
|
pkgs.framework-tool
|
||||||
|
|
|
||||||
29
overlays/functions/default.nix
Normal file
29
overlays/functions/default.nix
Normal 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;}
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
{
|
{
|
||||||
custom,
|
writeCppScriptBin,
|
||||||
lib,
|
lib,
|
||||||
jq,
|
jq,
|
||||||
deploy-rs,
|
deploy-rs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
custom.writeCppScriptBin {
|
writeCppScriptBin {
|
||||||
name = "deploy-rs-online";
|
name = "deploy-rs-online";
|
||||||
code = ''
|
code = ''
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue