After upgrading the KDE Frameworks to version 5.70, I discovered strange behavior of the working environment. My shortcuts, which include launching in the Terminal, stopped working. For example, I have the .desktop shortcut:
Comment=Midnight Commander, a free Norton Commander Clone
When I try to start the application using this shortcut, I get an error: "Could not find the program 'konsole'". Before the update, this worked fine.
# pkg info | grep konsole
konsole-20.04.1 KDE terminal emulator
pkg info | grep Midnight
mc-4.8.24 Midnight Commander, a free Norton Commander Clone
Can someone help me?
When I try to start the application using shortcut, which include launching in the Terminal, I see plasmashell messages in the log:
QKqueueFileSystemWatcherEngine::addPaths: open: No such file or directory
Internal program error. QStandardPaths::findExecutable couldn't find "konsole" but our own logic found it at "/usr/local/bin/konsole" . Please report a bug at https://bugs.kde.org
I found that this issue is being discussed here https://bugs.kde.org/show_bug.cgi?id=421374.
This is a KDE Frameworks 5.70 bug, which should be fixed in 5.71.
Thanks for the report and the link to upstream -- the fix has been added to the tree now.
Let me know if that does not yet solve the issue for you.
A commit references this bug:
Date: Sun May 24 20:22:13 UTC 2020
New revision: 536419
devel/kf5-kio: add upstream bug fix: "Could not find the program ?konsole?"
From upstrams  bug report
Fix service file specifying 'Run in terminal' giving an error code 100
Happens because KIO::DesktopExecParser::resultingArguments() prepends
the terminal application to the command line. If this is a relative path,
as it is most likely to be (and will be in the default 'konsole' case),
the "realExecutable" check in KProcessRunner::KProcessRunner() is triggered
and the job aborts with an error.
Expand the specified terminal executable into a full path in resultingArguments(),
and return an error immediately if it cannot be found. This full terminal path
is not relative for the KProcessRunner::KProcessRunner() check and does not fail.
Check that resultingArguments() is not empty (an error return) before accessing
the first word of the command, so that it does not assert if the list is empty.
Also only call resultingArguments() once.
Reported by: Serge Volkov <email@example.com>
Thanks, Tobias! It's fixed for me.
Cool, I close this then.