SUMMARY If installing a specific game (*) using steam with proton, proton would create a corrupted desktop file ".desktop" (exactly the name), to corrupt all gtk app icons used in decoration and "big icon" alt-tab switcher. The offending game is https://store.steampowered.com/app/1372300/Iwaihime/ But since the cause the ".desktop" in .local/share/applications, it doesn't need the game to do the trick. STEPS TO REPRODUCE 1. Create file ".local/share/applications/.desktop" with whatever icon you like 2. Check the icon of the window decoration of any running gtk applications 3. Check the icon of "big icon" alt-tab window OBSERVED RESULT Most GTK applications get wrong icon from the ".desktop" file. EXPECTED RESULT GTK applications still follow their original icon. SOFTWARE/OS VERSIONS Linux/KDE Plasma: Arch KDE Plasma Version: 5.20.2 KDE Frameworks Version: 5.75.0 Qt Version: 5.15.1 ADDITIONAL INFORMATION Maybe it's a bug in gtk icon cache? But strangely I only found the following icons get affects: - GTK app icons in window decoration (if enabled) - GTK app icons in big/small icon alt-tab task switcher QT applications like konsole, dolphin doesn't get affected. And of course, with that ".desktop" file renamed, everything comes back to normal.
It sounds like the issue to me is the bad .desktop file that Steam are providing, not a KDE issue. Perhaps they need to call the desktop file asterisk.desktop.
Yes, steam is the cause, but the problem is, shouldn't KDE be robust enough to detect such malfunctioning desktop file and don't allow it to corrupt other app's icon?
True I guess this could be solidified more to verify a .desktop file is within spec and if not, ignore it completely.
I guess that's the correct way to go. Although the only invalid part is the file name. ".desktop". Everything else is pretty OK, and I'm not sure if the name ".desktop" really breaks any spec though.
I would guess this has to do with how libtaskmanager resolves/guesses the desktop entry for a window, but I haven't looked closer
Cannot reproduce in 5.27
Git commit 506fd06e5d07717bd0b52bdfc5970b181454228f by Fushan Wen. Committed on 25/07/2023 at 01:43. Pushed by fusionfuture into branch 'master'. libtaskmanager: skip empty appId when matching '*.appId.desktop' When appId is empty, "*..desktop" can be a match. Some games like Touhou tend to add an extra dot at the end of the desktop name, which causes Marisa to exist everywhere. Related: bug 472576 FIXED-IN: 5.27.7 A +8 -0 libtaskmanager/autotests/data/applications/marisa..desktop M +3 -0 libtaskmanager/autotests/tasktoolstest.cpp M +1 -1 libtaskmanager/tasktools.cpp https://invent.kde.org/plasma/plasma-workspace/-/commit/506fd06e5d07717bd0b52bdfc5970b181454228f
Git commit 5b59a1334c92d3edaf44b774df3fa608016913e8 by Fushan Wen. Committed on 25/07/2023 at 02:08. Pushed by fusionfuture into branch 'Plasma/5.27'. libtaskmanager: skip empty appId when matching '*.appId.desktop' When appId is empty, "*..desktop" can be a match. Some games like Touhou tend to add an extra dot at the end of the desktop name, which causes Marisa to exist everywhere. Related: bug 472576 FIXED-IN: 5.27.7 (cherry picked from commit 506fd06e5d07717bd0b52bdfc5970b181454228f) A +8 -0 libtaskmanager/autotests/data/applications/marisa..desktop M +3 -0 libtaskmanager/autotests/tasktoolstest.cpp M +1 -1 libtaskmanager/tasktools.cpp https://invent.kde.org/plasma/plasma-workspace/-/commit/5b59a1334c92d3edaf44b774df3fa608016913e8