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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user