Noctalia V5 + LabWC on NixOS

Noctalia V5 + LabWC on NixOS

Noctalia V5 isn't released yet but you already can try it on Linux distro like Artix, Arch, NixOS. Please follow the official Noctalia documentation or copy the parts you need from my configuration.nix. The ram usage on NixOS is 366Mb for Noctalia V5 + LabWC, I also Ly as minimal login manager.

# /etc/nixos/configuration.nix
{ config, pkgs, ... }:

let
  noctalia = import (fetchTarball "https://github.com/noctalia-dev/noctalia/archive/cachix.tar.gz") {};
in

{
  imports = [
    ./hardware-configuration.nix
    noctalia.nixosModule
  ];

  nix.settings = {
    experimental-features = [ "nix-command" "flakes" ];
    extra-substituters = [ "https://noctalia.cachix.org" ];
    extra-trusted-public-keys = [ "noctalia.cachix.org-1:pCOR47nnMEo5thcxNDtzWpOxNFQsBRglJzxWPp3dkU4=" ];
  };

  nix.gc = {
    automatic = true;
    dates = "weekly";
    options = "--delete-older-than 30d";
  };

  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;

  networking.hostName = "nixos";
  networking.networkmanager.enable = true;

  time.timeZone = "Europe/Rome";

  i18n.defaultLocale = "en_US.UTF-8";
  i18n.extraLocaleSettings = {
    LC_ADDRESS = "it_IT.UTF-8";
    LC_IDENTIFICATION = "it_IT.UTF-8";
    LC_MEASUREMENT = "it_IT.UTF-8";
    LC_MONETARY = "it_IT.UTF-8";
    LC_NAME = "it_IT.UTF-8";
    LC_NUMERIC = "it_IT.UTF-8";
    LC_PAPER = "it_IT.UTF-8";
    LC_TELEPHONE = "it_IT.UTF-8";
    LC_TIME = "it_IT.UTF-8";
  };

  services.xserver.enable = true;

  services.displayManager.ly.enable = true;

  services.displayManager.sessionPackages = [ pkgs.labwc ];

  programs.noctalia = {
    enable = true;
    systemd.enable = true;
  };

  programs.xwayland.enable = true;
  programs.dconf.enable = true;
  security.polkit.enable = true;
  services.xserver.desktopManager.runXdgAutostartIfNone = true;

  services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
  };
  security.rtkit.enable = true;

  hardware.bluetooth.enable = true;
  services.power-profiles-daemon.enable = true;
  services.upower.enable = true;

  users.users.g = {
    isNormalUser = true;
    description = "user";
    extraGroups = [ "networkmanager" "wheel" "docker" ];
  };

  environment.systemPackages = with pkgs; [
    opencode
    labwc
    wayland
    fastfetch
    wl-clipboard
    kitty
    micro
    htop
    fzf
    ncdu
    nano
    brave
  ];

  nixpkgs.config.allowUnfree = true;

  system.stateVersion = "26.05";
}