Bug 403984 - Application launcher is using a low-resolution icon
Summary: Application launcher is using a low-resolution icon
Status: RESOLVED UPSTREAM
Alias: None
Product: lattedock
Classification: Plasma
Component: application (show other bugs)
Version: 0.8.5
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Michail Vourlakos
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-02-06 06:40 UTC by Andrew Shark
Modified: 2019-02-06 11:46 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Shark 2019-02-06 06:40:23 UTC
SUMMARY
In FAQ there is such a question, which suggests you to add StartupWMClass to desktop file with corresponding value. But it doesn't work. Its said that plasma developers have taken special care to map gimp's wm_class through /etc/xdg/taskmanagerrulesrc, but gimp's icon is still pixelated.

STEPS TO REPRODUCE
1. Unpin gimp application if pinned 
2. Launch gimp
3. Gimp icon will appear in dock

OBSERVED RESULT
Icon is very low resolution

EXPECTED RESULT
Icon should be high resolution

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 5.14.5
Qt Version: 5.12.1
KDE Frameworks Version: 5.54.0
latte-dock 0.8.5-1

ADDITIONAL INFORMATION
Also tested with Davinci Resolve and also checked with adding StartupWMClass=resolve to its desktop file - the same result.
Comment 1 Michail Vourlakos 2019-02-06 06:51:08 UTC
1. where your gimp desktop file is placed?
2. what is your gimp version?
3. what is your gimp desktop file contents?
4. what is your /etc/xdg/taskmanagerrulesrc contents?

as a note, in my system gimp appears beautifully in high-res icon. So we must find what breaks in your system.
Comment 2 Andrew Shark 2019-02-06 07:06:28 UTC
1. /usr/share/applications/gimp.desktop
2. extra/gimp 2.10.8-1
3. cat /usr/share/applications/gimp.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=GNU Image Manipulation Program
Name[..]=...
GenericName=Image Editor
GenericName[..]=...
Comment=Create images and edit photographs
Comment[..]=...
# Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
Keywords=GIMP;graphic;design;illustration;painting;
Keywords[..]=...
Exec=gimp-2.10 %U
TryExec=gimp-2.10
Icon=gimp
Terminal=false
Categories=Graphics;2DGraphics;RasterGraphics;GTK;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=GIMP
X-GNOME-Bugzilla-Component=General
X-GNOME-Bugzilla-Version=2.10.8
X-GNOME-Bugzilla-OtherBinaries=gimp-2.10
StartupNotify=true
MimeType=image/bmp;image/g3fax;image/gif;image/x-fits;image/x-pcx;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-psd;image/x-sgi;image/x-tga;image/x-xbitmap;image/x-xwindowdump;image/x-xcf;image/x-compressed-xcf;image/x-gimp-gbr;image/x-gimp-pat;image/x-gimp-gih;image/tiff;image/jpeg;image/x-psp;application/postscript;image/png;image/x-icon;image/x-xpixmap;image/x-exr;image/x-webp;image/heif;image/heic;image/svg+xml;application/pdf;image/x-wmf;image/jp2;image/x-xcursor;

4. cat /etc/xdg/taskmanagerrulesrc
[Mapping]
Gimp-2.8=GIMP
Google-chrome=Google Chrome
Google-chrome-stable=Google Chrome
Systemsettings=System Settings
oracle-ide-boot-Launcher=Oracle SQL Developer
Dragon=dragonplayer
VirtualBox Manager=virtualbox
VirtualBox Machine=virtualbox

[Settings]
MatchCommandLineFirst=perl
TryIgnoreRuntimes=perl
SkipTaskbar=Soffice

I have not edited these files. I only ommited translated strings of gimp.desktop to not clutter here.
As for me, it only looks hi-res in Plasma layout, but not in My Layout or Unity layout.
Comment 3 Michail Vourlakos 2019-02-06 07:35:30 UTC
(In reply to Ashark from comment #2)
>

ok, you are probably using as me plasma<=5.14, I think this has been updated in plasma 5.15, meaning that /etc/xdg/taskmanagerrulesrc contains a record:
Gimp-2.10=GIMP

BUT you can also try the following that I also propose:
1. At your /usr/share/applications/gimp.desktop add the following record:
StartupWMClass=gimp-2.10

OR
2.
2a. cp /usr/share/applications/gimp.desktop ~/.local/share/applications/gimp.desktop
2b. add in ~/.local/share/applications/gimp.desktop the following record:
StartupWMClass=gimp-2.10

I propose [2] because in [1] if you update Gimp you wont have to redo [1] again

welcome to high-res gimp icon...
Comment 4 Michail Vourlakos 2019-02-06 07:36:59 UTC
(In reply to Ashark from comment #0)
> ADDITIONAL INFORMATION
> Also tested with Davinci Resolve and also checked with adding
> StartupWMClass=resolve to its desktop file - the same result.

what is the "xprop" output for Davinci Resolve in your system?
Comment 5 Andrew Shark 2019-02-06 08:14:57 UTC
Oh, yes, I missed that it 2.8 vs 2.10 difference. Yes, following note #3 method 1 fixed the problem. Even without restarting gimp, just after saving file! Very good.

Now about davinci resolve. Its icon is hi-res only while there is any window of this application (even if you added StartupWMClass=resolve) or if you dropped desktop file from /usr/share/applications to dock. This is a scenario when you see low-res icon:
1. Unpin any dr icons from dock
2. Start dr
3. Its icon will appear in dock, pin it
4. You can see low-res icon after closing application. More of that, if you pinned it rather quickly after start, it may then appear as a low-res X icon instead of dr icon.
Also you can see it becomes low res when no any application window exists, f.e. after splash screen disappears and before project manager window opens. 

$ xprop
_NET_WM_ICON_GEOMETRY(CARDINAL) = 891, 1079, 69, 1
_KDE_NET_WM_ACTIVITIES(STRING) = "00000000-0000-0000-0000-000000000000"
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE
_KDE_NET_WM_FRAME_STRUT(CARDINAL) = 4, 4, 29, 4
_NET_FRAME_EXTENTS(CARDINAL) = 4, 4, 29, 4
_NET_WM_DESKTOP(CARDINAL) = 0
WM_STATE(WM_STATE):
                window state: Normal
                icon window: 0x0
_NET_WM_USER_TIME(CARDINAL) = 247293
_NET_WM_STATE(ATOM) = _NET_WM_STATE_MODAL
WM_TRANSIENT_FOR(WINDOW): window id # 0x7200004
_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 247265
_NET_WM_ICON(CARDINAL) =        Icon (48 x 48):
                                                        
                           ░▒▒▒▒▒▒▒▒░                   
                       ░░▒░░░░░░░░░░░░▒░░               
                     ░▒░░░░▒▒▒▒▒▒▒▒▒▒▒░░░▒░             
                    ▒░░░▒▒▓▒▓▓▓▓▓▓▓▓▓▒▒▒▒░░▒            
                  ░░░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒░▒░          
                 ▒░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░░▒         
                ▒░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒░▒        
               ▒░▒▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▒░▒       
              ▒░▒▓▓▓▓▓▓▓▓▓▓▓▒░░░░░░▒▓▓▓▓▓▓▓▓▓▓▓▒░▒      
             ░░░▓▓▓▓▓▓▓▓▓▓▓▒░░░░░░░░▒▓▓▓▓▓▓▓▓▓▓▓▒░░     
             ░░▒▓▓▓▓▓▓▓▓▓▓▒░░░░░░░░░░▒▓▓▓▓▓▓▓▓▓▓▓▒▒     
            ▒░▒▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░▓▓▓▓▓▓▓▓▓▓▓▒░▒    
           ░░░▓▓▓▓▓▓▓▓▓▓▓▒░░░░░░░░░░░░▓▓▓▓▓▓▓▓▓▓▓▓▒▒░   
           ▒░▒▓▓▓▓▓▓▓▓▓▓▓▒░░░░░░░░░░░░▒▓▓▓▓▓▓▓▓▓▓▓▒░▒   
          ░░▒▓▓▓▓▓▓▓▓▓▓▓▓▒░░░░░░░░░░░░▒▓▓▓▓▓▓▓▓▓▓▓▓▒▒░  
          ░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▒░▒  
          ░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒  
          ░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░░░░░░░░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒  
         ░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░    ░░░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░░ 
         ░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░      ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░▒ 
         ▒░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒     ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒ 
         ░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒    ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒ 
         ░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒  ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒ 
         ░░▓▓▓▓▓▓▓▓▓▒░░   ░░▒▓▓▓▓▓▓▒▒░░░░░▒▒▓▓▓▓▓▓▓▓▓▒▒ 
         ░░▓▓▓▓▓▓▓▓░          ░▓▓░      ░░░░▒▓▓▓▓▓▓▓▓▒▒ 
         ▒░▓▓▓▓▓▓▓░            ▒▒      ░░░░░░▒▓▓▓▓▓▓▓▒▒ 
         ░░▓▓▓▓▓▓▒             ▓▓      ░░░░░░░▒▓▓▓▓▓▓░▒ 
         ░░▒▓▓▓▓▓░            ░▓▓░     ░░░░░░░░▓▓▓▓▓▒░░ 
          ░░▓▓▓▓▓             ▒▓▓▒   ░░░░░▒▒▒▒░▓▓▓▓▓▒▒  
          ░░▓▓▓▓▒             ▓▓▓▓░░░░░░░░▒▒▒▒▒▓▓▓▓▓▒▒  
          ░ ▓▓▓▓▓            ░▓▓▓▓░░░░░░░▒▒▒▒▒▒▓▓▓▓▓▒▒  
          ░░░▓▓▓▓░     ░░░░░░▓▓▓▓▓▓░░░░░░▒▒▒▒▒▒▓▓▓▓▒▒░  
           ░░▓▓▓▓▒ ░ ░░░░░░░▒▓▓▓▓▓▓▒░░░░▒▒▒▒▒▒▒▓▓▓▓▒▒   
           ░░░▓▓▓▓░      ░░░▓▓▓▓▓▓▓▓░░░░░░░░░▒▓▓▓▓▒▒░   
            ▒ ▒▓▓▓▓░      ░▓▓▓▓▓▓▓▓▓▓░░░░░░░▒▓▓▓▓▓▒▒    
             ░░▓▓▓▓▓▓░░░░▒▓▓▓▓▓▓▓▓▓▓▓▓▒▒░▒▒▓▓▓▓▓▓▒▒     
             ░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒░     
              ░ ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░▒      
               ▒ ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░▒       
                ▒░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░▒        
                 ░░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░░▒         
                  ░░░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░▒░          
                    ▒░░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒░░▒            
                     ░▒░░░░▒▒▓▓▓▓▓▓▒▒▒░░░▒░             
                       ░░▒░░░░░░░░░░░░▒░░               
                           ░░▒▒▒▒▒▒▒░                   
                                                        


XdndAware(ATOM) = BITMAP
_NET_WM_NAME(UTF8_STRING) = "Project Manager"
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x6, 0x1, 0x0, 0x3, 0x0
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DIALOG, _KDE_NET_WM_WINDOW_TYPE_OVERRIDE, _NET_WM_WINDOW_TYPE_NORMAL
_XEMBED_INFO(_XEMBED_INFO) = 0x0, 0x1
WM_CLIENT_LEADER(WINDOW): window id # 0x7200004
WM_HINTS(WM_HINTS):
                Client accepts input or input focus: True
                Initial state is Normal State.
_NET_WM_PID(CARDINAL) = 7173
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 119537818
WM_CLASS(STRING) = "resolve", "resolve"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                user specified location: 420, 135
                user specified size: 1080 by 810
                program specified minimum size: 830 by 640
                program specified maximum size: 1440 by 810
                window gravity: NorthWest
Comment 6 Michail Vourlakos 2019-02-06 09:05:12 UTC
and what is the resolve desktop file contents?
Comment 7 Andrew Shark 2019-02-06 09:08:09 UTC
cat /usr/share/applications/com.blackmagicdesign.resolve
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Name=DaVinci Resolve
GenericName=DaVinci Resolve
Comment=Professional non-linear editing
Path=/opt/resolve/
Exec=/opt/resolve/bin/resolve
Terminal=false
MimeType=application/x-resolveproj;
Icon=/opt/resolve/graphics/DV_Resolve.png
StartupNotify=true
Name[en_US]=DaVinci Resolve
Categories=AudioVideo;AudioVideoEditing;
StartupWMClass=resolve
Comment 8 Michail Vourlakos 2019-02-06 09:11:55 UTC
1. Shouldn't that file end with
.desktop extension?

2. How do you open resolve? Because it is installed at a not standard path
Comment 9 Andrew Shark 2019-02-06 09:14:58 UTC
1. Sorry, yes, it it /usr/share/applications/com.blackmagicdesign.resolve.desktop
2. Just clicked at /usr/share/applications/com.blackmagicdesign.resolve.desktop file.
Comment 10 Michail Vourlakos 2019-02-06 09:17:44 UTC
(In reply to Ashark from comment #9)
> 1. Sorry, yes, it it
> /usr/share/applications/com.blackmagicdesign.resolve.desktop
> 2. Just clicked at
> /usr/share/applications/com.blackmagicdesign.resolve.desktop file.

Does resolve appear at your application launcher?
Comment 11 Andrew Shark 2019-02-06 09:19:56 UTC
You mean is it listed in start menu (sorry, a Windows term)? Yes, it is there.
Comment 12 Michail Vourlakos 2019-02-06 09:26:03 UTC
(In reply to Ashark from comment #11)
> You mean is it listed in start menu (sorry, a Windows term)? Yes, it is
> there.


nice, try the following, 

1. unpin resolve from Latte
2. drag DaVinci Resolve from Start menu onto the dock

The new DaVinci launcher is still low-res?
Comment 13 Andrew Shark 2019-02-06 09:31:58 UTC
No, it is hi-res.
Seems dragging from start menu (kikoff menu) is tantamount to dragging from /usr/share/applications.
Comment 14 Michail Vourlakos 2019-02-06 09:36:44 UTC
Nice...

as it appears probably the DaVinci startup window does not have wm_class=resolve and that messes things up.

To confirm you can do also the following:
1. Unpin resolve from Latte
2. Start resolve from Start menu
3. Wait until the resolve main window appears
4. Try to right click now resolve from Latte and Pin it

I believe it should also work right
Comment 15 Michail Vourlakos 2019-02-06 09:36:53 UTC
Nice...

as it appears probably the DaVinci startup window does not have wm_class=resolve and that messes things up.

To confirm you can do also the following:
1. Unpin resolve from Latte
2. Start resolve from Start menu
3. Wait until the resolve main window appears
4. Try to right click now resolve from Latte and Pin it

I believe it should also work right
Comment 16 Andrew Shark 2019-02-06 09:59:50 UTC
Do you mean a splash screen window under "sturtup window"? Anyway, that startup window has "resolve" wmclass. I have figured out previously, that that wmclass string depends on file name, which was used for launching application. In this case the binary is /opt/resolve/bin/resolve, so it becomes "resolve". If I start application using /usr/bin/davinci-resolve which is a symlink to actual binary, wmclass becomes "davinci-resolve". It doesn't depend on StartupWMClass line in desktop file, at least in kde.
2. Offtop, but how to add kickoff menu to latte dock?
3. Under "main window" you mean real main window with timeline or project selection window? Anyway, all windows (splash screen at both time stages, project manager window, main window with timeline) have WM_CLASS(STRING) = "resolve", "resolve"
4. Tried to pin at all stages:
4.1.1 splash screen very early
4.1.2 splash screen after some time
4.2 project manager window
4.3 main window with timeline
In all cases it was left low-res after closing application and in 4.1.1 it was even X icon low-res instead of dr icon.
Comment 17 Michail Vourlakos 2019-02-06 11:46:54 UTC
(In reply to Ashark from comment #16)
> 

> 2. Offtop, but how to add kickoff menu to latte dock?

Latte supports all plasma widgets, just drag n' drop from Plasma Widgets Explorer. BUT it is not necessary the kickoff menu to be in a Latte panel/dock it can be also present in a plasma panel, in that case you can still drag n' drop launchers from it inside Latte dock

> 3. Under "main window" you mean real main window with timeline or project
> selection window? Anyway, all windows (splash screen at both time stages,
> project manager window, main window with timeline) have WM_CLASS(STRING) =
> "resolve", "resolve"
> 4. Tried to pin at all stages:
> 4.1.1 splash screen very early
> 4.1.2 splash screen after some time
> 4.2 project manager window
> 4.3 main window with timeline
> In all cases it was left low-res after closing application and in 4.1.1 it
> was even X icon low-res instead of dr icon.

so strange that is probably some plasma libtaskmanager strange behavior