Template hard-set `en_US.UTF-8`, so a consumer setting `i18n.defaultLocale`
in the private inventory hit a conflicting-definition eval error. Wrap the
template default in `lib.mkDefault` per the overrides-are-options contract.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Shutdown stalls are hard to debug because journald is torn down mid-way,
so late hangs never reach the journal. `modules/shutdown-debug.nix`
exposes `local.shutdownDebug.*`: verbose systemd logging routed to kmsg
(recoverable from pstore after a forced power-off), an opt-in tty9 debug
shell, and a shortened `DefaultTimeoutStopSec` preset (system + user) so
a hung unit is killed and logged in seconds instead of spinning at 90s.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Home-manager's Hyprland module enables `xdg.portal` and pins the portal
search dir to the user profile with only the Hyprland backend, which has
no FileChooser implementation. File dialogs in Chromium/Electron apps
(signal, brave) fail with a DBus "No such interface
org.freedesktop.portal.FileChooser" error. Add `xdg-desktop-portal-gtk`
at the home-manager layer (system-level extraPortals aren't in the pinned
dir) and route FileChooser to it.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bare Wayland session ships no `org.freedesktop.secrets` provider, so
libsecret/qtkeychain apps can't persist credentials. Run gnome-keyring
and unlock it at the greetd login via PAM.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>