Noctalia Shell

Revision as of 22:31, 23 August 2026 by Lowcache (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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.

❄︎ /etc/nixos/configuration.nix
environment.systemPackages = with pkgs; [
  noctalia-shell
];

Noctalia Shell Flake

You can also get the latest Git version of Noctalia by using flakes.

❄︎ flake.nix
{
  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:

❄︎ noctalia.nix
{ 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:

❄︎ noctalia.nix
{ 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