Use symlinkJoin to wrap quickshell

This commit is contained in:
Celes Renata
2025-12-12 13:46:27 -08:00
parent 18b50c2010
commit fed3758a2c
+15 -14
View File
@@ -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: