aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--modules/services/default.nix2
-rw-r--r--modules/services/thermald/default.nix10
-rw-r--r--modules/services/tlp/default.nix24
3 files changed, 35 insertions, 1 deletions
diff --git a/modules/services/default.nix b/modules/services/default.nix
index 9a5338b..2e04cac 100644
--- a/modules/services/default.nix
+++ b/modules/services/default.nix
@@ -1 +1 @@
-{ ... }: { imports = [ ./ssh-server ./tailscale ]; }
+{ ... }: { imports = [ ./ssh-server ./tailscale ./thermald ./tlp ]; }
diff --git a/modules/services/thermald/default.nix b/modules/services/thermald/default.nix
new file mode 100644
index 0000000..8325b86
--- /dev/null
+++ b/modules/services/thermald/default.nix
@@ -0,0 +1,10 @@
+# thermal control management
+{ config, lib, ... }:
+let cfg = config.my.services.thermald;
+in {
+ options.my.services.thermald = {
+ enable = lib.mkEnableOption "thermald configuration";
+ };
+
+ config = lib.mkIf cfg.enable { services.thermald = { enable = true; }; };
+}
diff --git a/modules/services/tlp/default.nix b/modules/services/tlp/default.nix
new file mode 100644
index 0000000..2f818e5
--- /dev/null
+++ b/modules/services/tlp/default.nix
@@ -0,0 +1,24 @@
+# TLP power management
+{ config, lib, ... }:
+let cfg = config.my.services.tlp;
+in {
+ options.my.services.tlp = {
+ enable = lib.mkEnableOption "TLP power management configuration";
+ };
+
+ config = lib.mkIf cfg.enable {
+ services.tlp = {
+ enable = true;
+
+ settings = {
+ # Set CPU scaling aggressively when power is not an issue
+ CPU_SCALING_GOVERNOR_ON_AC = "performance";
+ CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
+
+ # Keep charge between 60% and 80% to preserve battery life
+ START_CHARGE_THRESH_BAT0 = 60;
+ STOP_CHARGE_THRESH_BAT0 = 80;
+ };
+ };
+ };
+}