makeAutostartItem: only use sed on Exec key

Fix cases when using `makeStartupItem` and it's `prependExtraArgs` or
`appendExtraArgs` option with a desktop file having a `TryExec` key.

The `TryExec` key must either be an absolute path to the binary or the
binary name (if present in $PATH). When using either of the two options
above, the `TryExec` key will be modified to have the flags as it's
content, which is invalid and will break the desktop file.

The change to the sed command makes it so only lines starting with
`Exec` are changed, ignoring `TryExec` and preventing the issue from
happening.

Link to the FDO specification:
https://specifications.freedesktop.org/desktop-entry/latest/recognized-keys.html
This commit is contained in:
Gliczy
2026-06-14 04:11:53 +02:00
parent e60a9afdb6
commit 72a2c77772
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
target=${name}.desktop
cp ${package}/share/applications/${srcPrefix}${name}.desktop $target
${lib.optionalString (prependExtraArgs != [ ] || appendExtraArgs != [ ]) ''
sed -i -r "s/(Exec=)([^ \n]*) *(.*)/\1\2 ${prependArgs}\3${appendArgs}/" $target
sed -i -r "s/^(Exec=)([^ \n]*) *(.*)/\1\2 ${prependArgs}\3${appendArgs}/" $target
''}
chmod +rw $target
echo "X-KDE-autostart-phase=${phase}" >> $target