Jump to content

Noctalia Shell

From Official NixOS Wiki

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-shell";
      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-shell = {
      enable = true;
      settings = {
        # configure options
      };
    };
  };
}