Systant is designed as a userspace controller rather than a system
daemon, so it makes more sense to run as a user service with access
to the user's environment, PATH, and session (for audio control, etc).
Changes:
- Remove user/group options (runs as current user)
- Use systemd.user.services instead of systemd.services
- Remove hardening options (not needed and would restrict access)
- Add package to environment.systemPackages
Enable with: systemctl --user enable --now systant
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- nix/package.nix: two-phase build with fixed-output derivation for deps
- nix/nixos-module.nix: systemd service with systant.enable and systant.configFile
- flake.nix: expose nixosModules.default and overlays.default
Usage in NixOS config:
systant.enable = true;
systant.configFile = ./systant.toml;
When deps change, update hash: nix build .#systant 2>&1 | grep 'got:'
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>