From fed3758a2c8f46878aa9f40c276f5c479320c37f Mon Sep 17 00:00:00 2001 From: Celes Renata Date: Fri, 12 Dec 2025 13:46:27 -0800 Subject: [PATCH] Use symlinkJoin to wrap quickshell --- flake.nix | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/flake.nix b/flake.nix index f9c74c1..fd7e75e 100644 --- a/flake.nix +++ b/flake.nix @@ -26,20 +26,21 @@ { overlays.default = final: prev: { # Enhanced quickshell wrapper with Qt5Compat support for dots-hyprland - quickshell = final.writeShellScriptBin "quickshell" '' - # Add Qt5Compat, QtPositioning, and quickshell config directories to QML import path - export QML2_IMPORT_PATH="${final.kdePackages.qt5compat}/lib/qt-6/qml:${final.kdePackages.qtpositioning}/lib/qt-6/qml:${final.kdePackages.qtlocation}/lib/qt-6/qml:$HOME/.config/quickshell/ii:$HOME/.config/quickshell:$QML2_IMPORT_PATH" - - # Set critical environment variables for dots-hyprland functionality - export ILLOGICAL_IMPULSE_VIRTUAL_ENV="$HOME/.local/state/quickshell/.venv" - export XDG_DATA_DIRS="$XDG_DATA_DIRS:${final.gsettings-desktop-schemas}/share" - - # Ensure child processes (execDetached) have access to system libraries for Python virtual environment - export LD_LIBRARY_PATH="${final.stdenv.cc.cc.lib}/lib:${final.glibc}/lib:${final.zlib}/lib:${final.libffi}/lib:${final.openssl}/lib:${final.bzip2.out}/lib:${final.xz.out}/lib:${final.ncurses}/lib:${final.readline}/lib:${final.sqlite.out}/lib:$LD_LIBRARY_PATH" - - # Execute quickshell from nixpkgs - exec ${prev.quickshell}/bin/quickshell "$@" - ''; + # Wraps the quickshell from nixpkgs (which must already be in prev) + quickshell = if prev ? quickshell then + final.symlinkJoin { + name = "quickshell-wrapped"; + paths = [ prev.quickshell ]; + buildInputs = [ final.makeWrapper ]; + postBuild = '' + wrapProgram $out/bin/quickshell \ + --prefix QML2_IMPORT_PATH : "${final.kdePackages.qt5compat}/lib/qt-6/qml:${final.kdePackages.qtpositioning}/lib/qt-6/qml:${final.kdePackages.qtlocation}/lib/qt-6/qml:$HOME/.config/quickshell/ii:$HOME/.config/quickshell" \ + --set ILLOGICAL_IMPULSE_VIRTUAL_ENV "$HOME/.local/state/quickshell/.venv" \ + --prefix XDG_DATA_DIRS : "${final.gsettings-desktop-schemas}/share" \ + --prefix LD_LIBRARY_PATH : "${final.stdenv.cc.cc.lib}/lib:${final.glibc}/lib:${final.zlib}/lib:${final.libffi}/lib:${final.openssl}/lib:${final.bzip2.out}/lib:${final.xz.out}/lib:${final.ncurses}/lib:${final.readline}/lib:${final.sqlite.out}/lib" + ''; + } + else prev.quickshell; }; packages = forAllSystems (system: