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:
parent
5e59fe27d9
commit
71f48ed456
|
@ -57,6 +57,17 @@ in {
|
|||
echo "exec -a \"\$0\" ${cfg.prefix} $file \"\$@\"" >> "$out/bin/$(basename $file)"
|
||||
chmod +x "$out/bin/$(basename $file)"
|
||||
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
|
||||
'';
|
||||
}));
|
||||
|
|
Loading…
Reference in a new issue