Personal Nix setup

Disable sleep on macOS

Changed files
+37 -5
modules
+1 -1
modules/server/caddy.nix
···
-
{ lib, config, hostname, ... }:
+
{ lib, config, hostname, helpers, ... }:
with lib;
let
+1 -4
modules/server/default.nix
···
};
};
-
config.modules.server = {
-
enable = if helpers.isLinux then (mkDefault false) else (mkForce false);
-
};
-
} // helpers.linuxAttrs {
imports = [
./sshd.nix
./tailscale.nix
···
./jellyfin.nix
./home-assistant.nix
./podman.nix
+
./macos.nix
];
}
+35
modules/server/macos.nix
···
+
{ lib, config, user, helpers, ... }:
+
+
with lib;
+
let
+
cfg = config.modules.server;
+
in helpers.darwinAttrs {
+
options.modules.server = {
+
disableSleep = mkOption {
+
default = cfg.enable;
+
example = true;
+
description = "Whether to disable sleep";
+
type = types.bool;
+
};
+
};
+
+
config = mkIf cfg.disableSleep {
+
system.activationScripts.postActivation.text = ''
+
defaults write com.apple.screensaver idleTime 0
+
pmset -a powernap 0
+
pmset -a sms 0
+
pmset -a sleep 0
+
pmset -a hibernatemode 0
+
pmset -a disablesleep 1
+
'';
+
+
power = {
+
restartAfterFreeze = true;
+
restartAfterPowerFailure = true;
+
sleep = {
+
allowSleepByPowerButton = false;
+
computer = "never";
+
};
+
};
+
};
+
}