1{ lib, config, user, helpers, ... }:
2
3with lib;
4let
5 cfg = config.modules.server;
6in helpers.darwinAttrs {
7 options.modules.server = {
8 disableSleep = mkOption {
9 default = cfg.enable;
10 example = true;
11 description = "Whether to disable sleep";
12 type = types.bool;
13 };
14 };
15
16 config = mkIf cfg.disableSleep {
17 system.activationScripts.postActivation.text = ''
18 defaults write com.apple.screensaver idleTime 0
19 pmset -a powernap 0
20 pmset -a sms 0
21 pmset -a sleep 0
22 pmset -a hibernatemode 0
23 pmset -a disablesleep 1
24 '';
25
26 power = {
27 restartAfterFreeze = true;
28 sleep = {
29 allowSleepByPowerButton = false;
30 computer = "never";
31 };
32 };
33 };
34}