Why does my custom launcher open under a separate icon?
If an application produces a second icon, not being a generic one
If an application generates a second icon in the Unity launcher other than a a grey, generic icon, there must be already an (other) existing launcher, calling p4v
in its main command:
An application's .desktop
file by definition has a "main" command in the first line, starting with Exec=
. This is the command that is run when the icon is clicked in the (Unity
) launcher. Apart from that, a .desktop
file can have one or more shortcut- sections, available when you right-click on the representing icon in the Unity
launcher.
Multiple .desktop files calling the same application in their main command
The symptoms you are experiencing can happen when more than one .desktop
file in either /usr/share/applications
or ~/.local/share/applications
have the same ("main-") command in their first Exec=
line, but the files are differently named.
P4v by default should install (and probably has installed) a .desktop
file, named p4vasp.desktop
in /usr/share/applications
.
How to fix
Your problem should be fixed if you remove your own (probably local) .desktop
file, then run p4v
from Dash and pin it to the launcher.
What if you want to customize the existing launcher?
If you want to change the .desktop
file's behaviour or e.g. its icon:
- copy the file from
/usr/share/applications
to~/.local/share/applications
- don't change the file's name
- open the file in
gedit
(drag it over an openedgedit
window) and make the changes you'd like - log out and back in, the local version of the
.desktop
file will overrule the global one.
To revert, simply remove the local one, log out and back in.
Related to this post
Solution that worked for me on ubuntu 18.04 when struggling with getting an AppImage added to my favorites. This solution is summarised from https://beamtic.com/duplicated-icons-in-launcher
Get window class of your program with double icon by executing
xprop WM_CLASS
Select the main window of that program by clicking on it. I received two strings and just took the first one (lower case).
Add the following line to the
.desktop
file (I had my.desktop
file in~/.local/share/applications
) and replace[Name_of_Window_Class]
with the output of the xprop command:StartupWMClass=[Name_of_Window_Class]
Start/Restart the application, done!