From e824177113b2cd89973929b32a4b3cb51be95f06 Mon Sep 17 00:00:00 2001 From: nevaforget <> Date: Fri, 7 Aug 2026 16:21:14 +0200 Subject: [PATCH] Wire stasis into the desktop and add its user service Upstream ships a systemd unit in the Arch package but not in the source tarball, so it is declared in the module. --- modules/desktop.nix | 1 + modules/services.nix | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/modules/desktop.nix b/modules/desktop.nix index e87259b..2c9feb6 100644 --- a/modules/desktop.nix +++ b/modules/desktop.nix @@ -164,6 +164,7 @@ in moonarchPkgs.moonlock moonarchPkgs.moonset moonarchPkgs.sweet-cursors + moonarchPkgs.stasis moonarch-scripts # Compositor extras diff --git a/modules/services.nix b/modules/services.nix index 1e43b83..6dcad98 100644 --- a/modules/services.nix +++ b/modules/services.nix @@ -1,7 +1,7 @@ # ABOUTME: systemd user and system services for the Moonarch session. # ABOUTME: Rebuilt from defaults/etc/systemd/ because the units use FHS paths. -{ pkgs, lib, ... }: +{ pkgs, lib, moonarchPkgs, ... }: { # --- Audio --- @@ -45,6 +45,22 @@ }; }; + # Upstream ships a unit in the Arch package but not in the tarball, so it is + # declared here. Mirrors /usr/lib/systemd/user/stasis.service. + systemd.user.services.stasis = { + description = "Stasis Wayland Idle Manager"; + partOf = [ "graphical-session.target" ]; + after = [ "graphical-session.target" ]; + wantedBy = [ "graphical-session.target" ]; + serviceConfig = { + Type = "simple"; + ExecStart = "${lib.getExe moonarchPkgs.stasis}"; + ExecReload = "${lib.getExe moonarchPkgs.stasis} reload"; + Restart = "on-failure"; + RestartSec = 2; + }; + }; + systemd.user.services.cliphist-text = { description = "Clipboard history manager (text)"; partOf = [ "graphical-session.target" ];