From e147fd8f4d5d36381dafca4bd5cd9fa70e9e6bfc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 22 Apr 2026 12:34:17 +0000 Subject: [PATCH 1/2] Initial plan From 448c4b909454971eb0319c1ff62ed2703f448eca Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 22 Apr 2026 12:37:36 +0000 Subject: [PATCH 2/2] Fix no-sleep module to skip desktop role Agent-Logs-Url: https://github.com/naturallaw777/staging_alpha/sessions/d008099d-2fd3-4b86-a10c-ed7f9337e51c Co-authored-by: naturallaw777 <99053422+naturallaw777@users.noreply.github.com> --- modules/core/no-sleep.nix | 46 ++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/modules/core/no-sleep.nix b/modules/core/no-sleep.nix index db24662..4ba76c6 100644 --- a/modules/core/no-sleep.nix +++ b/modules/core/no-sleep.nix @@ -1,6 +1,9 @@ # ── modules/core/no-sleep.nix ───────────────────────────────────────────────── # Prevents the machine from ever sleeping or suspending at the system level. # +# Only applies to server_plus_desktop and node roles. Desktop-only installs +# retain normal OS sleep/suspend behaviour. +# # This operates at two layers below GNOME: # 1. systemd-logind — ignores all hardware power events (lid, suspend key, etc.) # 2. systemd targets — masks sleep/suspend/hibernate targets so nothing can @@ -9,27 +12,30 @@ # This is intentional for a 24/7 server/node. The GNOME-layer power settings in # sovran_systemsos-desktop.nix remain in place as a belt-and-suspenders complement # for active user sessions. -{ ... }: +{ config, lib, ... }: { - # ── Layer 1: logind hardware event handling ──────────────────────────────── - services.logind = { - lidSwitch = "ignore"; - lidSwitchDocked = "ignore"; - lidSwitchExternalPower = "ignore"; - settings.Login = { - HandleSuspendKey = "ignore"; - HandleHibernateKey = "ignore"; - HandlePowerKey = "ignore"; - IdleAction = "ignore"; - IdleActionSec = 0; - }; - }; + config = lib.mkIf (!config.sovran_systemsOS.roles.desktop) { - # ── Layer 2: mask systemd sleep targets ─────────────────────────────────── - # Nothing on the system can suspend/hibernate — not root, not GNOME, not D-Bus. - systemd.targets.sleep.enable = false; - systemd.targets.suspend.enable = false; - systemd.targets.hibernate.enable = false; - systemd.targets.hybrid-sleep.enable = false; + # ── Layer 1: logind hardware event handling ────────────────────────────── + services.logind = { + lidSwitch = "ignore"; + lidSwitchDocked = "ignore"; + lidSwitchExternalPower = "ignore"; + settings.Login = { + HandleSuspendKey = "ignore"; + HandleHibernateKey = "ignore"; + HandlePowerKey = "ignore"; + IdleAction = "ignore"; + IdleActionSec = 0; + }; + }; + + # ── Layer 2: mask systemd sleep targets ───────────────────────────────── + # Nothing on the system can suspend/hibernate — not root, not GNOME, not D-Bus. + systemd.targets.sleep.enable = false; + systemd.targets.suspend.enable = false; + systemd.targets.hibernate.enable = false; + systemd.targets.hybrid-sleep.enable = false; + }; }