From 91aa5543661e73725810043322cdef7544b15a0d Mon Sep 17 00:00:00 2001 From: Sven Over Date: Thu, 11 Dec 2025 12:04:40 +0000 Subject: [PATCH] noctalia-shell: init at 3.7.5 --- pkgs/by-name/no/noctalia-shell/package.nix | 121 +++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 pkgs/by-name/no/noctalia-shell/package.nix diff --git a/pkgs/by-name/no/noctalia-shell/package.nix b/pkgs/by-name/no/noctalia-shell/package.nix new file mode 100644 index 000000000000..5fa2706a6bcb --- /dev/null +++ b/pkgs/by-name/no/noctalia-shell/package.nix @@ -0,0 +1,121 @@ +{ + fetchFromGitHub, + lib, + nix-update-script, + stdenvNoCC, + + # build + qt6, + quickshell, + + # runtime deps + brightnessctl, + cava, + cliphist, + ddcutil, + matugen, + wlsunset, + wl-clipboard, + imagemagick, + wget, + gpu-screen-recorder, + + # calendar support + python3, + evolution-data-server, + libical, + glib, + libsoup_3, + json-glib, + gobject-introspection, + + brightnessctlSupport ? true, + cavaSupport ? true, + cliphistSupport ? true, + ddcutilSupport ? true, + matugenSupport ? true, + wlsunsetSupport ? true, + wl-clipboardSupport ? true, + imagemagickSupport ? true, + gpuScreenRecorderSupport ? stdenvNoCC.hostPlatform.system == "x86_64-linux", + calendarSupport ? false, +}: +let + runtimeDeps = [ + wget + ] + ++ lib.optional brightnessctlSupport brightnessctl + ++ lib.optional cavaSupport cava + ++ lib.optional cliphistSupport cliphist + ++ lib.optional ddcutilSupport ddcutil + ++ lib.optional matugenSupport matugen + ++ lib.optional wlsunsetSupport wlsunset + ++ lib.optional wl-clipboardSupport wl-clipboard + ++ lib.optional imagemagickSupport imagemagick + ++ lib.optional gpuScreenRecorderSupport gpu-screen-recorder + ++ lib.optional calendarSupport (python3.withPackages (pp: [ pp.pygobject3 ])); + + giTypelibPath = lib.makeSearchPath "lib/girepository-1.0" [ + evolution-data-server + libical + glib.out + libsoup_3 + json-glib + gobject-introspection + ]; +in +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "noctalia-shell"; + version = "3.7.5"; + + src = fetchFromGitHub { + owner = "noctalia-dev"; + repo = "noctalia-shell"; + tag = "v${finalAttrs.version}"; + hash = "sha256-TBrsYS+n+8AsXRAP4wA3JNOdT604QmPo8yeSTT/p61I="; + }; + + nativeBuildInputs = [ + qt6.wrapQtAppsHook + ]; + + buildInputs = [ + qt6.qtbase + qt6.qtmultimedia + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/noctalia-shell $out/bin + ln -s ${quickshell}/bin/qs $out/bin/noctalia-shell + + cp -R \ + Assets Bin Commons CREDITS.md Helpers Modules Services Shaders Widgets shell.qml \ + $out/share/noctalia-shell + + rm -R $out/share/noctalia-shell/Assets/Screenshots + rm -R $out/share/noctalia-shell/Bin/dev + + runHook postInstall + ''; + + preFixup = '' + qtWrapperArgs+=( + --prefix PATH : ${lib.makeBinPath runtimeDeps} + --add-flags "-p $out/share/noctalia-shell" + ${lib.optionalString calendarSupport "--prefix GI_TYPELIB_PATH : ${giTypelibPath}"} + ) + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Sleek and minimal desktop shell thoughtfully crafted for Wayland, built with Quickshell"; + homepage = "https://github.com/noctalia-dev/noctalia-shell"; + license = lib.licenses.mit; + mainProgram = "noctalia-shell"; + maintainers = with lib.maintainers; [ spacedentist ]; + platforms = quickshell.meta.platforms; + }; +})