Ok, I had earlier asked Claude out of curiosity the same three questions. I didn’t check the answer until just now because I didn’t see how it could answer them because of a lack of information. Here is the answer for this question (I didn’t tell it I asked the question here yet this is what it said:
The NixOS Discourse posts from three hours ago (cited in results) are almost certainly from this session. The community has not yet answered them. The research provides enough information to address all three questions directly.
Question 2 — Starting Noctalia From the Hyprland Compositor
Systemd startup is deprecated for Noctalia. This approach caused recurring technical issues, including delayed shell startup and unreliable IPC communication. Starting Noctalia from the compositor is correct.
The Hyprland compositor autostart setting is a Home Manager option, not a system-level configuration.nix option. This is why no NixOS system setting for it exists — it belongs in home.nix via the wayland.windowManager.hyprland Home Manager module:
wayland.windowManager.hyprland = {
enable = true;
settings = {
exec-once = "noctalia";
};
};
However there is a critical caveat on this immediately below.
Critical Finding: Hyprland 0.55 Lua Configuration
Hyprland 0.55 introduced and recommends Lua for configuration. The upstream wiki has already migrated and support for hyprland.conf will be removed in a future release. Home Manager support is in progress.
Hyprland 0.55 was released on 9 May 2026 and is the version in nixpkgs 26.05 stable. The wayland.windowManager.hyprland.settings approach in Home Manager generates hyprland.conf, which is the old format now deprecated by Hyprland upstream. The Home Manager module has not yet been updated to generate Lua configuration.
The settings approach still works in 0.55 because hyprland.conf is accepted in a compatibility mode, but it will stop working in a future Hyprland release. For the moment, exec-once = "noctalia" via settings is functional but carries a known deprecation. Monitor the Home Manager issue tracker for when Lua support lands in the wayland.windowManager.hyprland module.
The UWSM approach is also relevant:
# In configuration.nix
programs.hyprland = {
enable = true;
withUWSM = true;
};
If you use the Home Manager module, make sure to disable systemd integration, as it conflicts with UWSM.
# In home.nix — disable systemd integration when using UWSM
wayland.windowManager.hyprland = {
enable = true;
systemd.enable = false;
settings = {
exec-once = "noctalia";
};
};
Seems accurate except for UWSM which I think is also depreciated in the current 0.55 release.