steam: Do $PATH lookup in steam.desktop instead of hardcoding derivation

The desktop application and the absoloute path work fine.
But consider desktop environments such as KDE where, in the application
menu, one can right click entries and pin them to widgets/panels, add
them to the desktop, etc.

Doing so effectively means copying
/run/current-system/sw/share/applications/steam.desktop to
~/.local/share/plasma_icons/ or ~/Desktop/, i.e. managed stated gets
duplicated outside the nix scope.

The problem here is that steam.desktop hardcodes

	Exec=/nix/store/<derivation hash>-steam/bin/steam %U

this means such copies will point at wrong/outdated derivations once
the steam package changes, i.e. widgets/panels/desktop icons will no
longer work and must be recreated.

Therefore replace the absoloute path with a $PATH lookup to allow "safe"
copying;  this isn't optimal but other applications such Firefox and
Thunderbrid currently behave the same way ($PATH lookup in their
.desktop file).
This commit is contained in:
Klemens Nanni 2020-10-27 16:12:02 +01:00 committed by Andreas Rammhold
parent 30ea1f1288
commit db236e588d

View File

@ -223,7 +223,7 @@ in buildFHSUserEnv rec {
mkdir -p $out/share/applications mkdir -p $out/share/applications
ln -s ${steam}/share/icons $out/share ln -s ${steam}/share/icons $out/share
ln -s ${steam}/share/pixmaps $out/share ln -s ${steam}/share/pixmaps $out/share
sed "s,/usr/bin/steam,$out/bin/steam,g" ${steam}/share/applications/steam.desktop > $out/share/applications/steam.desktop sed "s,/usr/bin/steam,steam,g" ${steam}/share/applications/steam.desktop > $out/share/applications/steam.desktop
''; '';
profile = '' profile = ''