add a nixos module to set up pinnacle as an available session. a user
service/targets are still required to actually run the compositor --
these are best configured via home-manager, using a module I intend to
PR to home-manager once this PR has been merged into nixpkgs.
GDM 50 falls back to launching `gnome-session` as the user session
command when the AccountsService record has `Session=` empty and
`services.displayManager.defaultSession` is unset. On a Niri-only
machine the spawn fails with ENOENT and the user is bounced back to
the greeter — an indefinite login loop after a fresh install or after
the AccountsService record gets reset.
GDM 49 hit the same fallback path but happened to find gnome-session
on PATH; the user's first session pick then got stashed in
AccountsService and subsequent logins worked. GDM 50's tighter
environment removed the accidental save.
Setting `services.displayManager.defaultSession = lib.mkDefault "niri"`
inside `programs.niri` makes a Niri-only install boot straight into
the compositor. Users running multiple session packages can still
override via a plain assignment.
Refs https://github.com/NixOS/nixpkgs/issues/523332
Also remove from enableAllTerminfo list.
Since vte: 0.82.3 → 0.84.0 custom patches applied to vte in termite are
broken. The package has been without upstream for 5 years for now.
18de7682e9https://github.com/NixOS/nixpkgs/issues/122929
On startup, Hyprland tries to set its own scheduling policy to SCHED_RR
for a boost in responsiveness when the system is under load. This requires
the cap_sys_nice capability to function.
The packaged user unit bakes the niri store path into ExecStart, so
any rebuild of niri (including transitive dependency bumps) makes
switch-to-configuration restart it, killing the graphical session.
Mirror the display-manager modules and mark the unit
restartIfChanged = false. Disable the default PATH injection so the
generated drop-in does not override the environment imported by
niri-session.
This makes no sense, because uwsm is _not_ a display manager,
it's simply a session provider. Enabling this while not enabling
an actual display manager _service_ is basically always wrong,
and especially wrong after #480050.
Because my displayed name and username on GitHub are not the same, some users may mistakenly think that [rewine](https://github.com/rewine) is my account.