Bug 493200

Summary: Opening Kickoff with Meta key (and Alt+F1) stopped working after doing `plasmashell --replace`
Product: [Plasma] plasmashell Reporter: Rocky Prabowo <rocky.prabowo+kdebugtracker>
Component: Application Launcher (Kickoff)Assignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: minor CC: bugseforuns, fanzhuyifan, iodreamify, kde, mikel5764, nate, noahadvs, szotsaki
Priority: NOR    
Version: 6.1.90   
Target Milestone: 1.0   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In: Frameworks 6.7
Sentry Crash Report:
Attachments: This is the log after plasmashell --replace is invoked.

Description Rocky Prabowo 2024-09-16 13:43:25 UTC
Created attachment 173723 [details]
This is the log after plasmashell --replace is invoked.

SUMMARY
Opening Kickoff with Meta key and Alt+F1 combination stopped working after invoking `plasmashell --replace` . Kickoff is only accessible by clicking the widget in the panel.

STEPS TO REPRODUCE
1. Execute `plasmashell --replace` in KRunner.
2. Plasma will restart.
3. Press the Meta key or Alt+F1 to open Kickoff.

OBSERVED RESULT
Kickoff won't open with the Meta key presses or Alt+F1 combination. The behaviour persists until the user logged out.

EXPECTED RESULT
Kickoff should open like it used to even after plasmashell restarted with `plasmashell --replace` command. 

SOFTWARE/OS VERSIONS
Linux: Arch Linux with linux-lts kernel (6.6.51-1.1-lts)
KDE Plasma Version: 6.1.90 (6.2 Beta)
KDE Frameworks Version: 6.5.0
Qt Version: 6.8.0

ADDITIONAL INFORMATION
There is no error/warning that could be related to this issue logged into the system log. I'll provide the log after executing `plasmashell --replace` anyway.
I believe I have this issue with 6.1.5 but I don't really have time to report the issue here.
Comment 1 Nate Graham 2024-09-16 13:48:17 UTC
Can reproduce. Restarting plasma using systemd (`systemctl restart --user plasma-plasmashell.service`) works fine though.
Comment 2 cwo 2024-09-16 14:22:26 UTC
*** Bug 490684 has been marked as a duplicate of this bug. ***
Comment 3 David Edmundson 2024-09-19 09:26:39 UTC
Systemd order of events:

systemd tells old plasmashell to close
old plasmashell  unregisters org.kde.plasmashell
old plasmashell  tells kglobalaccel to unregister all the old shortcuts
systemd waits for the old plasmashell to exit
new plasmashell starts
new plasmashell  tells kglobalaccel to register all the new shortcuts 

plasmashell --replace order of events:
new plasmashell starts
it tells oldplasmashell to close
old plasmashell  unregisters org.kde.plasmashell
(new one is just waiting for or.g.kde.plasmashell to disappear before continuing)
new plasmashell  tells kglobalaccel to register all the new shortcuts 

old plasmashell  tells kglobalaccel to unregister all the old shortcuts
Comment 4 Nate Graham 2024-09-19 16:27:39 UTC
Git commit 7431ea1f8a5f08d412e447a3ddd3d668a7c1ca28 by David Edmundson.
Committed on 19/09/2024 at 13:28.
Pushed by cullmann into branch 'master'.

kdbusservice: Don't unregister service name slightly before exit

The DBus service name will be revoked when the application closes
automatically by the daemon. Doing so early just means that the original
service has not fully cleaned up yet.

When using "plasmashell --replace" it means the new instance launches
slightly before the old one has fully quit saving files and before it
the old instance unregisters it's own keyboard shortcuts, which breaks
the new one.

M  +0    -6    src/kdbusservice.cpp
M  +2    -7    src/kdbusservice.h

https://invent.kde.org/frameworks/kdbusaddons/-/commit/7431ea1f8a5f08d412e447a3ddd3d668a7c1ca28
Comment 5 Patrick Silva 2024-09-21 10:59:41 UTC
*** Bug 486246 has been marked as a duplicate of this bug. ***
Comment 6 Szőts Ákos 2024-09-22 18:56:22 UTC
*** Bug 492633 has been marked as a duplicate of this bug. ***