{ lib, stdenvNoCC, symlinkJoin, makeWrapper, quickshell, nova-stats, nova-shaders, glib, }: let shellSrc = lib.cleanSourceWith { src = lib.cleanSource ../.; filter = path: _type: !(lib.hasSuffix ".frag" path); }; shell = stdenvNoCC.mkDerivation { pname = "nova-shell-qml"; version = "0.1.0"; src = shellSrc; dontBuild = true; installPhase = '' runHook preInstall mkdir -p $out/share/nova-shell cp -r shell/shell.qml shell/modules shell/services shell/applets shell/dock shell/lock shell/assets $out/share/nova-shell/ runHook postInstall ''; }; in symlinkJoin { name = "nova-shell-0.1.0"; paths = [ shell nova-shaders ]; nativeBuildInputs = [ makeWrapper ]; postBuild = '' mkdir -p $out/bin makeWrapper ${lib.getExe quickshell} $out/bin/nova-shell \ --add-flags "-p $out/share/nova-shell/shell.qml" \ --prefix PATH : ${ lib.makeBinPath [ nova-stats glib ] } ''; meta = { description = "Minimal Quickshell bar for niri"; mainProgram = "nova-shell"; platforms = lib.platforms.linux; }; }