Bug 516802 - When there are two apps with the same name, after restarting plasmashell, Kickoff only shows one of them
Summary: When there are two apps with the same name, after restarting plasmashell, Kic...
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Application Launcher (Kickoff) widget (other bugs)
Version First Reported In: 6.6.1
Platform: Arch Linux Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-02-27 15:14 UTC by Jin Liu
Modified: 2026-06-19 02:51 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: Frameworks 6.28
Sentry Crash Report:


Attachments
Screenshot showing two different Calculator entries in kickoff's All Apps grid (29.24 KB, image/png)
2026-06-02 10:19 UTC, cwo
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jin Liu 2026-02-27 15:14:27 UTC
STEPS TO REPRODUCE
1. Install both "kalk" and "gnome-calculator".
2. Open Kickoff - All Applications

OBSERVED RESULT
Kickoff only shows one "Calculator" in "All Applications". But searching for "calculator" finds both.

EXPECTED RESULT
Both apps shown.

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 6.6.1
KDE Frameworks Version: 6.23.0
Qt Version: 6.10.2
Kernel Version: 6.18.13-arch1-1 (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 5600H with Radeon Graphics
Memory: 16 GiB of RAM (15.0 GiB usable)
Graphics Processor: AMD Radeon Graphics
Comment 1 Nate Graham 2026-03-02 21:52:07 UTC
I can't reproduce this issue with the Flatpak versions of those apps. I assume you've got them from Arch packaging?  Can you confirm that both show up in All Applications when one or both are Flatpaks?
Comment 2 Jin Liu 2026-03-03 02:16:46 UTC
I can reproduce with Flatpak, on KDE-linux. After

  flatpak install org.kde.kalk org.gnome.Calculator

Both apps show up in Kickoff. But after reboot, only one of them shows.

Operating System: KDE Linux 2026-03-01
KDE Plasma Version: 6.6.80
KDE Frameworks Version: 6.24.0
Qt Version: 6.10.2
Kernel Version: 6.18.13-zen1-1-zen (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 5600H with Radeon Graphics
Memory: 8 GiB of RAM (7.7 GiB usable)
Graphics Processor: virgl
Comment 3 Nate Graham 2026-03-03 13:33:55 UTC
Thanks, I can reproduce that issue.
Comment 4 cwo 2026-05-24 14:12:32 UTC
I can't reproduce this on Fedora - installed both via Flatpak. rebooted, and both are listed in "All Applications".

Tried it on two different computers, one with master the other with 6.6, same result on both.
Comment 5 Jin Liu 2026-06-02 09:24:55 UTC
(In reply to cwo from comment #4)
> I can't reproduce this on Fedora - installed both via Flatpak. rebooted, and
> both are listed in "All Applications".
> 
> Tried it on two different computers, one with master the other with 6.6,
> same result on both.

Do both app have the same name in your setup?
Comment 6 cwo 2026-06-02 10:19:10 UTC
Created attachment 192814 [details]
Screenshot showing two different Calculator entries in kickoff's All Apps grid

Yes. I've attached a screenshot (this one is in grid view style, but I get the same in list view).
Comment 7 Jin Liu 2026-06-02 10:40:34 UTC
I can still reproduce in 6.7beta2, with a new user, but only in zh_CN locale. No problem in en_US.

Worse, in grid view, all entries starting with a Chinese character disappeared. So I guess the problem is probably in the grouping algorithms in both grid view and list view, at least regarding non-Latin characters. And they are wrong in different ways.

Haven't tested in the latest KDE-Linux yet. Will do.
Comment 8 Jin Liu 2026-06-02 11:17:04 UTC
kde-linux 202606020254, same as above:
en_US, no problem
zh_CN: list view, only one calculator; grid view: all entries beginning with Chinese characters disappeared.
Comment 9 Bug Janitor Service 2026-06-02 15:03:42 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6670
Comment 10 cwo 2026-06-02 15:06:46 UTC
I can reproduce both issues in zh_CN. The MR above should fix apps starting with Chinese characters not showing up in kickoff's grid style at all.

The second app of the same name missing I still have to investigate.
Comment 11 Bug Janitor Service 2026-06-02 17:46:26 UTC
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kservice/-/merge_requests/237
Comment 12 cwo 2026-06-04 11:24:37 UTC
Git commit 7422f4fed2c1afde6fb1a6de69845fd8c5a8028c by Christoph Wolk.
Committed on 04/06/2026 at 10:39.
Pushed by cwo into branch 'master'.

applets/kicker: make group upper case for Han/Katakana

Similar to d4a2cd18a7138bf8cbd3f552ffeafbfbde7e4a14

Kicker backend transliterates Chinese initial characters in app names
to set the group, so that they are alphabetically listed under the
corresponding Latin character. It uses the lower-case form of the letter
though, which breaks Kickoff's custom ListOfGridsView sections which
require them to be upper case, as opposed to the regular ListView, which
collates upper and lower case letters on its own. Similarly for apps
starting with Japanese Katakana characters.

Instead, return the upper-case version of the letter, just like we now
do for apps with lower-case Latin initial letters.

M  +1    -1    applets/kicker/appentry.cpp

https://invent.kde.org/plasma/plasma-workspace/-/commit/7422f4fed2c1afde6fb1a6de69845fd8c5a8028c
Comment 13 Bug Janitor Service 2026-06-04 11:48:57 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6679
Comment 14 cwo 2026-06-04 13:09:40 UTC
Git commit 70fd21929e70d4b76476140e46dcf3e3b0a3899b by Christoph Wolk.
Committed on 04/06/2026 at 11:48.
Pushed by cwo into branch 'Plasma/6.7'.

applets/kicker: make group upper case for Han/Katakana

Similar to d4a2cd18a7138bf8cbd3f552ffeafbfbde7e4a14

Kicker backend transliterates Chinese initial characters in app names
to set the group, so that they are alphabetically listed under the
corresponding Latin character. It uses the lower-case form of the letter
though, which breaks Kickoff's custom ListOfGridsView sections which
require them to be upper case, as opposed to the regular ListView, which
collates upper and lower case letters on its own. Similarly for apps
starting with Japanese Katakana characters.

Instead, return the upper-case version of the letter, just like we now
do for apps with lower-case Latin initial letters.


(cherry picked from commit 7422f4fed2c1afde6fb1a6de69845fd8c5a8028c)

Co-authored-by: Christoph Wolk <cwo.kde@posteo.net>

M  +1    -1    applets/kicker/appentry.cpp

https://invent.kde.org/plasma/plasma-workspace/-/commit/70fd21929e70d4b76476140e46dcf3e3b0a3899b
Comment 15 Marco Martin 2026-06-05 13:08:10 UTC
isn't this commit enough to fix the issue?
Comment 16 cwo 2026-06-05 15:15:39 UTC
(In reply to Marco Martin from comment #15)
> isn't this commit enough to fix the issue?

This only fixes the problem that entries starting with a Chinese character do not show up at all if Kickoff is set to grid view for All Applications.

It does not fix the issue that when two apps have the same name and generic name, only one might show up in any view - the KService MR is required to fix that.
Comment 17 cwo 2026-06-18 07:16:46 UTC
Git commit 7e643dbcd3d780894278a036417ce50ef46a5ebd by Christoph Wolk.
Committed on 18/06/2026 at 05:44.
Pushed by cwo into branch 'master'.

services/kservicegroup: include storageId in sorting key

KServiceGroupPrivate::entries uses a QMap for sorting, using the
sort key as the key to the map. The sort key is the display name of the
application and its generic name (with the order being determined by a
parameter). This will fail if two separate apps have the same name and
generic name; both evaluate to the same key, so only one is added to the
final list and the other just goes away. (This is in particular common
for simple apps where the name is itself a generic name, like
"Calculator", especially now that apps often don't have a generic name
set).

Instead, also add the storageId to the sort key, which should make it
unique.

M  +2    -2    src/services/kservicegroup.cpp

https://invent.kde.org/frameworks/kservice/-/commit/7e643dbcd3d780894278a036417ce50ef46a5ebd