Created attachment 134245 [details] screenshot showing the problem SUMMARY See subject and attached screenshot. Using Neon and systemsettings 4:5.20.4+p20.04+git20201216.0239-0 SOFTWARE/OS VERSIONS Linux/KDE Plasma: KDE Plasma Version: 5.20.80 KDE Frameworks Version: 5.78.0 Qt Version: 5.15.2 ADDITIONAL INFORMATION When changing the type of display for the keyboard indicator, under System Settings -> Hardware -> Keyboard, for example to "flag", only one of the keyboard indicator changes its UI - the left one in the system tray (which is the top one in the system tray settings dialog, with the "keyboard" icon) stays the same.
Also, the left keyboard indicator can be disabled in the system tray settings dialog, while the "correct" one cannot be disabled - only hidden.
Thanks for reporting and forwarding it to me. This is a known temporal problem until we don't have full functionality in new applet. Context menu and flags support are pending: https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/181#note_160486 There is some issue with flags displayed a bit dithering, but overall plan is to remove old layout widget when we reach feature parity. Until then, I don't see a good solution for this. So let's reopen later maybe?
The solution is probably not to release the new one until it has feature parity with the old one, and then replace the old one. Having both visible at the same time is weird. Re-opening.
Not releasing a new one is too radical - we would left without any indicator on Wayland. So it doesn't seem like a good solution to me. Still, agree it's weird to have both visible. But we had a third one - with IBus panel, visible by default also and seems no one complained..
Ah, so I wasn't crazy. I asummed I just had some leftover kded module running resulting in a duplicated tray icon. Yeah, the current state is a no-go for a release...
As a quick and dirty solution, could we just change default settings so the old one wont show up on new installs?
How about we show the old feature-complete-but-non-wayland-compatible one on X11, and the new incomplete one on Wayland because it's better than nothing?
New applet is platform-agnostic and shouldn't know which platform it currently run on. So to implement this check, we would need to incorporate hacks in the code, which in turn could bring further confusions. I'm not in favor of this. To be clear, new applet is almost feature-reach. But is has some rough corners currently: - flag icons look a bit dithering, and in context menu they are additionally resized to square and looks ugly there. I don't know easy solution for this, other than change initial icon's aspect maybe. The situation should be better when we move away from old .png icons in deprecated kdelibs4support in favor of standard ones: https://phabricator.kde.org/T13722 - lack of separator in context menu between layouts in loop and spare ones - lack of shortcut to Keyboard KCM, should be trivial - something I missed/not aware of, but those are all minor hopefully So I would really encourage people to use new one. I could make an update script disabling old applet for existing installations. But then we would probably need some way to explain users they should re-enable it shall they prefer the old variant.
In that case, perhaps we should replace the old one with the new one and polish it up incrementally. But we can't have both active by default. That's an unacceptable UX.
(In reply to Andrey from comment #4) > Still, agree it's weird to have both visible. But we had a third one - with > IBus panel, visible by default also and seems no one complained.. I saw the ibus indicator but I identified it as ibus related and "fixed" it by killing ibus. I didn't see it as plasma related and so didn't complain to KDE.
The ibus indicator is indirectly our fault because we required ibus dev packages for the emoji picker, and distros installed the runtime ones as well for simplicity. But yes, this is sucky too.
(In reply to Nate Graham from comment #9) > In that case, perhaps we should replace the old one with the new one and > polish it up incrementally. > > But we can't have both active by default. That's an unacceptable UX. Then why not to replace the old one but just disable it with update script? IMO it could be a good compromise. We can't predict our users expectations. Maybe for some of them the icons sharpness will be decision maker. The applets do not interfere each other in any way. When we solve our current problems, we will kill old applet entirely.
(Completely forgot one more feature currently lack in new applet - it has no support for flag icon and text label language representations simultaneously. This also depends on new icons support, but then it might look even better than the old one.)
I will repeat myself: I don't think it's acceptable to display two competing keyboard layout applets in the System Tray simultaneously. There are multiple ways we can fix this, but leaving the problem for users to deal with is not one of them.
This is what I was speaking about - disabling old applet in update script will leave only new one in systray. This happens automatically when user runs updated Plasma. No manual intervention required. But leaves possibility to return to legacy applet. Only in that case user would have to switch it back on in KCM. Hopefully it's more clear now.
(In reply to Andrey from comment #15) > ... disabling old applet in update script will leave only new one in systray. ... > But leaves possibility to return to legacy applet. Only in that case user > would have to switch it back on in KCM. I think this is reasonable - if users are missing some features in the new applet they can report them. I'm still on X11 for a while (regardless, due to other issues) so I can keep an eye on the X11 behavior. I would also appreciate instructions on how to revert the behavior in KCM so I can QA that a bit as well.
Nice, let's do it such way then. Reverting behavior is as simple as setting "Show layout indicator" tick in Keyboard KCM to ON - as you can see, it only influences old applet, because presence of new one, by design, is regulated in standard way by disabling it in systray's Configure.. screen instead.
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/297
Eventually, the new applet was disabled by default for X11, while it's not fully in feature-parity with legacy yet.
Git commit 718c1872f66a7ab82bc19b13d0dda218b1858181 by Andrey Butirsky. Committed on 11/05/2021 at 18:54. Pushed by butirsky into branch 'master'. feat: [Keyboard Layout applet] add spare layouts support For now, X11 only To support spare layouts in new Keyboard Layouts applet via existing DBus API, they are appended to the main ones and passed to the applet alongside in a row. When spare layout selected in applet's context menu, layout swapping logic takes place - the spare layout activates and placed in last position of the main layouts loop, preempting previous layout there in current keymap. That way the actual keymap can be dynamically modified from the menu, without reconfiguring in KCM. No DBus API/applet changes are needed currently. M +21 -2 kcms/keyboard/keyboard_daemon.cpp https://invent.kde.org/plasma/plasma-desktop/commit/718c1872f66a7ab82bc19b13d0dda218b1858181
Git commit a845e67aba7232a2561b3388ba84db6a60b7cfdc by Andrey Butirsky. Committed on 11/05/2021 at 19:05. Pushed by butirsky into branch 'master'. [kcms/keyboard] Drop legacy keyboard indicator A new applet was created that speaks DBus. Having the old settings is a very confusing user experience. It is also a lot of now obsoleted code. M +0 -3 kcms/keyboard/CMakeLists.txt M +8 -8 kcms/keyboard/bindings.cpp M +1 -1 kcms/keyboard/bindings.h M +0 -132 kcms/keyboard/flags.cpp M +0 -29 kcms/keyboard/flags.h M +10 -50 kcms/keyboard/kcm_keyboard.ui M +4 -28 kcms/keyboard/kcm_keyboard_widget.cpp M +1 -8 kcms/keyboard/kcm_view_models.cpp M +0 -30 kcms/keyboard/keyboard_config.cpp M +0 -19 kcms/keyboard/keyboard_config.h M +2 -27 kcms/keyboard/keyboard_daemon.cpp M +0 -3 kcms/keyboard/keyboard_daemon.h D +0 -123 kcms/keyboard/layout_tray_icon.cpp D +0 -63 kcms/keyboard/layout_tray_icon.h D +0 -136 kcms/keyboard/layouts_menu.cpp D +0 -56 kcms/keyboard/layouts_menu.h M +1 -1 kcms/keyboard/tests/CMakeLists.txt https://invent.kde.org/plasma/plasma-desktop/commit/a845e67aba7232a2561b3388ba84db6a60b7cfdc