Created attachment 177374 [details] Settings 1 See the attached screenshots. The global shortcuts for KWin effects are all grouped under a System Settings entry, which is different from the second System Settings entry that has entries from other KCMs (like kscreen, screenlocker and users). The .desktop files all seem to be generated via kcmutils_generate_desktop_file(), which sets X-KDE-AliasFor=systemsettings, but it is unclear why the entries are not all grouped together. Not following X-KDE-AliasFor and having separate shortcut settings for kwin, kscreen etc would be even better.
Created attachment 177375 [details] Settings 2
The second one is the "real" systemsettings. Not sure how your kwin shortcuts ended up that way
Yeah the first one appears to be a mis-named "KWin" group. Does this reproduce in a new clean user account, Raphael?
Hmm, I ran `kbuildsycoca6` and logged in again and this bug was gone -- there's just one System Settings entry and I now have a "KWin" group under "System Services". This is an old installation so something must've screwed up ~/.config/kglobalshortcutsrc at some point. With that said, I also tested this on a Neon image and noticed that there were two "KWin" components, one of which should have been called "Session Management". This global shortcuts code is a bit fragile, with pieces in kxmlgui, kglobalaccel, kglobalacceld and plasma-workspace, but I think I have a fix for this specific case and will piggyback on this bug in the commit message.
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/255
Git commit 702a8fe3e75b04c376ed2db95ed39b0b29a9ff17 by Raphael Kubo da Costa. Committed on 21/01/2025 at 22:57. Pushed by rkcosta into branch 'master'. ksldapp: Set componentDisplayName property for global Lock Session action This is used by kglobalacceld as the "friendly name" of a given component, which kcm_keys then uses as a name in the Shortcuts KCM list. When not set, the application name is used. Although different plugins and libraries (e.g. plasma-workspace's startkde/session-shortcuts and KScreenLockerSettings here) register global shortcuts for the "ksmserver" component with the "Session Management" display name, KSldApp::initialize() might be the first to register a ksmserver global shortcut. When testing the latest Neon stable release (neon-user-20250119-0743) with a new installation, kwin_wayland would often be the first to call KSldApp::initialize(), so we would end up with a new component called "ksmserver" with a friendly name of "KWin". In practice, we would end up with two KWin components in the Shortcuts KCM, the real one and the one that should be called "Session Management", which has "Lock Session", "Log Out" etc. M +3 -0 ksldapp.cpp https://invent.kde.org/plasma/kscreenlocker/-/commit/702a8fe3e75b04c376ed2db95ed39b0b29a9ff17
I'm closing this bug; as mentioned in the MR above, after a quick look at LXR and this was the only occurrence I could find of a missing component display name; the others were applications (in which case it made sense for KActionCollection to use the application name) or places where "componentDisplayName" was already being set. I'd be glad to fix other occurrences if someone can finds some more.