citrix-workspace: rewrite desktop launchers for wrapped binaries

Rewrite the generated desktop entries to call the wrapped commands from $out/bin instead of the upstream install paths. Keep selfservice as the launcher target for menu and citrixapp URI handling, and keep adapter as the ICA file handler entrypoint.
This commit is contained in:
Austin Horstman
2026-04-23 12:45:40 -05:00
parent 7af1514108
commit 0ad49a3280
@@ -268,7 +268,7 @@ stdenv.mkDerivation rec {
mkWrappers = lib.concatMapStringsSep "\n";
toWrap = [
"wfica"
"adapter"
"selfservice"
"util/configmgr"
"util/conncenter"
@@ -320,6 +320,33 @@ stdenv.mkDerivation rec {
echo "Copy .desktop files."
cp $out/opt/citrix-icaclient/desktop/* $out/share/applications/
for desktop in $out/share/applications/*.desktop; do
sed -i \
-e "s#/opt/Citrix/ICAClient#$ICAInstDir#g" \
-e "s#$ICAInstDir/util/ctxwebhelper#ctxwebhelper#g" \
"$desktop"
case "$(basename "$desktop")" in
citrixapp.desktop)
sed -i \
-e 's#^TryExec=.*#TryExec=selfservice#' \
-e 's#^Exec=.*#Exec=selfservice %u#' \
"$desktop"
;;
selfservice.desktop)
sed -i \
-e 's#^TryExec=.*#TryExec=selfservice#' \
-e 's#^Exec=.*#Exec=selfservice#' \
"$desktop"
;;
wfica.desktop)
sed -i \
-e 's#^TryExec=.*#TryExec=adapter#' \
-e 's#^Exec=.*#Exec=adapter %f#' \
"$desktop"
;;
esac
done
# We introduce a dependency on the source file so that it need not be redownloaded everytime
echo $src >> "$out/share/workspace_dependencies.pin"