From 9cb11c26a2fc2d6db99c2c0bdb84791470138b9a Mon Sep 17 00:00:00 2001 From: Samiser Date: Thu, 23 Jul 2026 15:10:06 +0000 Subject: [PATCH] noctalia: init at 5.0.0-beta.4 --- pkgs/by-name/no/noctalia/package.nix | 146 +++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 pkgs/by-name/no/noctalia/package.nix diff --git a/pkgs/by-name/no/noctalia/package.nix b/pkgs/by-name/no/noctalia/package.nix new file mode 100644 index 000000000000..8e3972a6fdad --- /dev/null +++ b/pkgs/by-name/no/noctalia/package.nix @@ -0,0 +1,146 @@ +{ + lib, + stdenv, + fetchFromGitHub, + nix-update-script, + + # build + meson, + ninja, + pkg-config, + wayland-scanner, + makeBinaryWrapper, + + # libraries + cairo, + curl, + fontconfig, + freetype, + glib, + harfbuzz, + jemalloc, + libGL, + libqalculate, + librsvg, + libsecret, + libsodium, + libwebp, + libxkbcommon, + libxml2, + md4c, + nlohmann_json, + pam, + pango, + pipewire, + polkit, + sdbus-cpp_2, + stb, + systemdLibs, + tomlplusplus, + wayland, + wayland-protocols, + wireplumber, + + # runtime + gitMinimal, +}: + +let + # nixpkgs stb doesn't have stb_image_resize2.h which noctalia needs + stb' = stb.overrideAttrs { + version = "0-unstable-2025-10-26"; + src = fetchFromGitHub { + owner = "nothings"; + repo = "stb"; + rev = "f1c79c02822848a9bed4315b12c8c8f3761e1296"; + hash = "sha256-BlyXJtAI7WqXCTT3ylww8zoG0hBxaojJnQDvdQOXJPE="; + }; + }; +in +stdenv.mkDerivation (finalAttrs: { + __structuredAttrs = true; + + pname = "noctalia"; + version = "5.0.0-beta.4"; + + src = fetchFromGitHub { + owner = "noctalia-dev"; + repo = "noctalia"; + tag = "v${finalAttrs.version}"; + hash = "sha256-jXz2vFHgidbyU46ScROLSuBIhsqqtyqNu2M0tmGX/FA="; + }; + + strictDeps = true; + + nativeBuildInputs = [ + meson + ninja + pkg-config + wayland-scanner + makeBinaryWrapper + ]; + + buildInputs = [ + cairo + curl + fontconfig + freetype + glib + harfbuzz + jemalloc + libGL + libqalculate + librsvg + libsecret + libsodium + libwebp + libxkbcommon + libxml2 + md4c + nlohmann_json + pam + pango + pipewire + polkit + sdbus-cpp_2 + stb' + systemdLibs + tomlplusplus + wayland + wayland-protocols + wireplumber + ]; + + mesonBuildType = "release"; + + # plugins are installed by cloning their repos + postFixup = '' + wrapProgram $out/bin/noctalia \ + --prefix PATH : ${lib.makeBinPath [ gitMinimal ]} + ''; + + # remove --version=unstable once 5.0.0 stable is released + passthru.updateScript = nix-update-script { + extraArgs = [ + "--version=unstable" + "--version-regex" + "v(5\\..*)" + ]; + }; + + meta = { + description = "A sleek, customizable desktop shell crafted for Wayland."; + homepage = "https://github.com/noctalia-dev/noctalia"; + changelog = "https://github.com/noctalia-dev/noctalia/releases/tag/v${finalAttrs.version}"; + license = with lib.licenses; [ + mit + asl20 # material_color_utilities is Apache 2.0 + ]; + mainProgram = "noctalia"; + maintainers = with lib.maintainers; [ + samiser + pyrox0 + ]; + platforms = lib.platforms.linux; + }; +})