noctalia: init at 5.0.0-beta.4

This commit is contained in:
Samiser
2026-07-23 18:18:43 +00:00
parent be05a0d922
commit 9cb11c26a2
+146
View File
@@ -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;
};
})