Summary: | Launcher runner prefers .desktop file with Exec= line in it over one which lacks it, which causes KCMs to be opened in KCMShell instead of System Settings under certain circumstances | ||
---|---|---|---|
Product: | [Plasma] krunner | Reporter: | Nate Graham <nate> |
Component: | general | Assignee: | Alexander Lohnau <alexander.lohnau> |
Status: | RESOLVED FIXED | ||
Severity: | minor | CC: | alexander.lohnau, notmart, plasma-bugs, sitter |
Priority: | NOR | Keywords: | regression |
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 5.25 | |
Sentry Crash Report: |
Description
Nate Graham
2020-11-24 16:10:01 UTC
Have you tried running `kbuildsycoca5` and then restarting KRunner. Might be an issue inside of KServive which has been fixed. Yeah, that doesn't fix it. :( The only way this can happen is that you have old .desktop files lying around. In the new versions the Exec line was completely removed and is internally in KService generated. But the old files still have the Exec line, consequently KService does not override that value. Can you please say which KCMs specifically and check that they are up-to-date with master? All of them. Every single one. :) The problem isn't not stale files because I just cleared out my entire built-from-source installation and rebuilt everything from scratch today. KCMs opened from Kickoff etc and KRunner are still opening in KCMShell rather than System Settings. I can't reproduce this on neon unstable FWIW @Nate can you please check that the KCM desktop files from your built-from-source stuff are the ones that are being launched? Just try a notify command in the Exec= And next please do the same with one of the files in /usr. Yes, if I add "Exec=notify-send foo bar" to /home/nate/kde/usr/share/kservices5/kcm_workspace.desktop and then open the workspace KCM from KRunner or Kickoff, I see a notification rather than the KCM opening. Ah I think I see the problem. My distro-provided desktop files have "Exec=kcmshell5 [whatever]" in them. My built-from-source ones do not. The KRunner runner that finds KCMs appears to prefer the distro's .desktop files because they have an Exec= line in them. If I remove the Exec= line from the distro-provided desktop files, or add "Exec=systemsettings5 kcm_workspace" to my built-from source desktop files, everything works. So the bug is that a desktop file with Exec= in it is preferred over one which does not. Thankfully users shouldn't hit this, but it's still annoying for devs. :) Resolved recently. |