Commit Graph
13 Commits
Author SHA1 Message Date
nevaforget 95e502e60a fix(stasis): put swaylock and brightnessctl on the unit PATH
stasis does not run the configured actions through a login shell, so
/etc/profile never applies and nothing resolves via
/run/current-system/sw/bin. The old comment claimed the opposite and listed
only the binaries stasis spawns directly, which left swaylock unreachable:
`niri msg` worked, so the chain looked healthy while the lock step never ran.

The failure is silent. The spawn fails, stasis logs the action as started,
sees the immediate exit, treats the step as finished and stops there -- the
daemon then sits in "waiting for idle" with no lock and no dpms.

Verified: with an absolute path in the config, `stasis trigger lock_screen`
locks; with a bare `swaylock` and the old PATH it exits instantly.

brightnessctl comes along for the laptop's brightness step, which has the
same problem.
2026-09-01 19:33:49 +02:00
nevaforget 60b6daf4f3 fix(services): give quickshell the session path
As a spawn-at-startup it inherited niri's environment; the unit got systemd's
minimal one, so every widget that shells out failed to start its process --
niri, nmcli, powerprofilesctl, the moonarch scripts and a dozen more.
2026-08-31 12:59:03 +02:00
nevaforget b81f7ca7f2 feat(services): run quickshell as a user service
Mirrors the unit moonarch now ships. spawn-at-startup never restarted it, so a
crash cost the bar for the rest of the session.
2026-08-31 12:55:16 +02:00
nevaforget ea12f2ca51 fix(stasis): correct the unit path and pick up the config fix
The actions run as `sh -lc`, which sources /etc/profile and therefore resolves
swaylock and brightnessctl on its own; only a shell has to be present. niri,
pactl and notify-send are spawned directly, past the shell, so those stay. bash
resolved to bashInteractive, which pulled readline in for nothing.

The moonarch bump carries the suspend inhibit knobs, without which stasis
discarded the seeded config on every start.
2026-08-31 12:43:03 +02:00
nevaforget b1ed5d087b refactor(stasis): take the package from nixpkgs
nixpkgs carries stasis 1.5.1, so the pinned input and pkgs/stasis.nix go. It
ships no unit and has no NixOS module, so modules/services.nix keeps declaring
one; its actions run as `sh -lc` and it spawns niri and pactl directly, hence
the unit path.

stasis prefers a user config over /etc and generates its own when none exists,
so moonarch's is seeded into the home directory instead of only reaching /etc.
2026-08-31 11:58:33 +02:00
nevaforget 16625ef503 refactor(services): power-profiles-daemon replaces auto-cpufreq
amd-pstate in active mode reads only the min/max and EPP registers and
ignores the requested performance level, so the governor auto-cpufreq
switches decides nothing. ppd writes those registers and the ACPI
platform_profile; on the testvm, where neither exists, it falls back to
the placeholder driver instead of polling sysfs a virtio guest lacks.

The NixOS module asserts against auto-cpufreq, so the two cannot run at
the same knob. Matches the moonarch tree this flake deploys from.
2026-08-25 08:33:29 +02:00
nevaforget 3e40a701e7 fix(desktop): add the archiver, image viewer and cpufreq backend
Gaps against moonarch/packages/official.txt: zip, unzip and viewnior were
missing outright, and thunar-archive-plugin was installed without
xarchiver, which left its menu entries inert.

services.auto-cpufreq is the backend of the Quickshell CpuGov widget,
which calls 'auto-cpufreq --get-state' and 'pkexec auto-cpufreq --force';
without it the indicator has no state and the popout cannot switch.
2026-08-24 10:28:28 +02:00
nevaforget bf915d66bb Install only the helper scripts that are still called
cpugov, sink-switcher and nightlight were referenced solely by the waybar
config; the Quickshell popouts cover all three. btnote, capsnote, vpn and
waybar-hidpp are unreferenced anywhere.

Adds the two system units for battery threshold restore and camera
shutoff, which had been missed.
2026-08-07 17:12:53 +02:00
nevaforget e824177113 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.
2026-08-07 16:21:14 +02:00
nevaforget f6140c07b6 Do not deploy the empty kanshi config
defaults/xdg/kanshi/config is a 0-byte placeholder, unused on Arch as
well, where kanshi reads ~/.config/kanshi/config instead. Deploying it
made kanshi fail to parse and restart in a loop. The unit now starts only
when a user config exists.
2026-08-07 15:36:51 +02:00
nevaforget d6c42526fb Drop waybar and swaync from the desktop set
Both are marked 'kept as a reserve' in the Arch config, a note left over
from the migration to the Quickshell bar. A fresh setup has no reason to
carry them, so the packages, their configs and the waybar-only helper
scripts stay out.
2026-08-07 15:02:39 +02:00
nevaforget d9d616c45d Fix niri config discovery, polkit path, wallpaper stack
- NIRI_CONFIG points niri at /etc/xdg; without it niri writes its own
  default config, so none of the Moonarch settings applied.
- config.kdl spawns the polkit agent by FHS path, provided via tmpfiles
  instead of diverging the config shared with Arch.
- waypaper was missing entirely, hence no wallpaper. It invokes swww,
  which the maintained awww provides under a different name.
2026-08-07 13:17:46 +02:00
nevaforget d485783cf7 Add NixOS modules for desktop, greetd and services 2026-08-07 12:26:46 +02:00