nixgl: make desktop files point to wrapped exe

Some desktop files will refer to the absolute path of the original
derivation, which would bypass nixGL wrapping. So we need to replace the
path with the path to the wrapper derivation to ensure the wrapped
version is always launched.
This commit is contained in:
Mel Bourgeois 2024-06-19 18:25:56 -05:00 committed by Robert Helgesson
parent 446293584f
commit bbd4254d00
No known key found for this signature in database
GPG key ID: 96E745BD17AA17ED

View file

@ -57,6 +57,17 @@ in {
echo "exec -a \"\$0\" ${cfg.prefix} $file \"\$@\"" >> "$out/bin/$(basename $file)" echo "exec -a \"\$0\" ${cfg.prefix} $file \"\$@\"" >> "$out/bin/$(basename $file)"
chmod +x "$out/bin/$(basename $file)" chmod +x "$out/bin/$(basename $file)"
done done
# If .desktop files refer to the old package, replace the references
for dsk in "$out/share/applications"/*.desktop ; do
if ! grep "${pkg.out}" "$dsk" > /dev/null; then
continue
fi
src="$(readlink "$dsk")"
rm "$dsk"
sed "s|${pkg.out}|$out|g" "$src" > "$dsk"
done
shopt -u nullglob # Revert nullglob back to its normal default state shopt -u nullglob # Revert nullglob back to its normal default state
''; '';
})); }));