Noctalia Shell
Noctalia Shell is a sleek and minimal desktop shell thoughtfully crafted for Wayland.
Noctalia provides native support for Niri, Hyprland, Sway, Scroll, Labwc and MangoWC. Other Wayland compositors may work but could require additional configuration for compositor-specific features like workspaces and window management.[1]
Installation[2]
A Nix package for Noctalia is currently available on the unstable channel.
environment.systemPackages = with pkgs; [
noctalia-shell
];
Noctalia Shell Flake
You can also get the latest Git version of Noctalia by using flakes.
{
description = "NixOS configuration with Noctalia";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
noctalia = {
url = "github:noctalia-dev/noctalia";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs@{ self, nixpkgs, ... }: {
nixosConfigurations.awesomebox = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
# ... other modules
./noctalia.nix
];
};
};
}
If not using the NixOS or Home Manager module, we can install Noctalia using:
{ pkgs, inputs, ... }:
{
environment.systemPackages = with pkgs; [
inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default
];
}
Alternatively, we can just enable Noctalia using the NixOS or Home Manager module. For example, for Home Manager:
{ pkgs, inputs, ... }:
{
home-manager.users.foobar = {
# import the home manager module
imports = [
inputs.noctalia.homeModules.default
];
programs.noctalia = {
enable = true;
settings = {
# configure options
};
};
};
}
Configuration
Noctalia's settings can be declared through the Home Manager module's programs.noctalia.settings option, which writes ~/.config/noctalia/config.toml from the Nix store. The file is generated only when settings is non-empty, so leaving it unset is one way to keep that file under your own control — for example by managing ~/.config/noctalia as an out-of-store symlink.[3] Note that customPalettes is written to ~/.config/noctalia/palettes/ independently of this option.
See also
- Noctalia Architecture — Volatile NixOS Configuration — a worked v5 configuration: bar and plugin layout, and a generated Material 3 palette shared with the terminal and prompt.