Noctalia V5 NixOS
Currently Noctalia v5 is still in the alpha, but I still decided to adapt already, as it works better with my current setup.
I’m using an Impermanent NixOS System and didn’t want to persist the .cache folder (really don’t want to, caches should be cleared …). And unfortunately Noctalia v4 stores the current Wallpaper in there, so if you don’t persist it, each restart Noctalia has the Wallpaper set to the default one with the own …
Well in Noctalia 5 this is no longer the case, everything is now more cleanly defined in a TOML-File
So how to switch? Well the old flake path, now points anyway to v5, if you haven’t specified a commit / branch, so one a flake update, you’d anyway be switched to 5.
But here the flake input anyway
noctalia = {
url = "github:noctalia-dev/noctalia";
inputs.nixpkgs.follows = "nixpkgs";
};
Config Format Change
Also the import Home Manager Import changed to: inputs.noctalia.homeModules.default from the previous noctalia-shell thing.
Previously I had a noctalia.json in my config, loaded via noctalia-shell.settings = builtins.fromJSON ./noctalia.json;.
Now it looks like this:
{ inputs, ... }:
{
imports = [ inputs.noctalia.homeModules.default ];
programs.noctalia = {
enable = true;
settings = builtins.fromTOML (builtins.readFile ./config.toml);
};
}
Loading a config.toml instead, also a few settings changed, so I kinda had to make my whole config from scratch. Luckily its pretty good documentated in the noctalia docs.
The new config also allows having multiple bars instead of a single one and many more cool things, and also comes with extreme performance improvements by completely ditching qt & quickshell, and rewriting everything in C++ (Why not Rust? TT).
[theme]
mode = "dark"
source = "wallpaper"
wallpaper_scheme = "m3-content"
[wallpaper]
enabled = true
transition_on_startup = true
directory = "~/Pictures/Wallpapers"
[nightlight]
enabled = true
temperature_day = 6500
temperature_night = 3500
[location]
auto_locate = false
sunset = "20:30"
sunrise = "06:30"
...
pretty clean in my opinion.
Command Changes
The IPC commands also changed, so your window manager (e.g. niri) shortcuts will probably stop working.
The new commands look like this: noctalia msg panel-toggle launcher
// Launcher
Mod+Space { spawn "noctalia" "msg" "panel-toggle" "launcher"; }
// Locker
CTRL+Alt+L { spawn "noctalia" "msg" "session" "lock"; }
If you need more keybindings with the new format, e.g. for volume etc. you might check out my current niri keybindings as reference. Note: these are based on ryan4yin’s nix config, which at the time of my writing still use noctalia v4 syntax.