Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I've installed Eclipse from the Ubuntu Software Center and things are working as expected apart from one little thing, the icon in the Unity launcher. As you can see from the image below the icon is the default one and it should be the one shown on the desktop as this is the one I prefer. I've done an updatedb, located all eclipse.png files and replaced them with the new one and still the default icon shows. Is there some kind of cache that the launcher uses? Thanks in advance.

http://postimg.org/image/bmopwxnal/

share|improve this question
    
Have you looked under /usr/share/pixmaps/ ? It is a usual location for icons for the applications. –  hakermania Aug 21 '13 at 17:24
    
@hakermania The icon is the same as the one shown on the desktop. –  user1408643 Aug 21 '13 at 19:04
    
If you search for Eclipse on the dash, which icon do you get? –  Salem Aug 21 '13 at 19:23
    
Also which version of Ubuntu are you using? –  Salem Aug 21 '13 at 19:26
    
@Salem I get the new icon when I search for Eclipse in the dash and I'm using Ubuntu 12.04. –  user1408643 Aug 21 '13 at 19:36

2 Answers 2

I have the feeling that Unity indeed "caches" the icon used. But I guess the real problem is that you forgot to change something in the application launcher or icons.

To identify where the launcher is stored , first open Eclipse. Alter that, in a terminal use the following command:

$ xprop

Your mouse cursor should change to a cross. Then click on any part of the Eclipse window. You should get a lot of text (like the ASCII version of the icons used). There find for NET_WM_DESKTOP_FILE. In my case I get the following:

_NET_WM_DESKTOP_FILE(STRING) = "/home/<myusername>/.local/share/applications/eclipse_android.desktop"

Then just open that file (you may need root permission) and check you are really using the correct icon.

Also note that the Eclipse icon probably should be stored in many different sizes, so you will need to replace everyone. Using apt-file I get the following:

$ apt-file search eclipse.png
eclipse-platform-data: /usr/share/icons/hicolor/16x16/apps/eclipse.png
eclipse-platform-data: /usr/share/icons/hicolor/256x256/apps/eclipse.png
eclipse-platform-data: /usr/share/icons/hicolor/32x32/apps/eclipse.png
eclipse-platform-data: /usr/share/icons/hicolor/48x48/apps/eclipse.png
eclipse-platform-data: /usr/share/pixmaps/eclipse.png

As those files probably will be rewritten in any Eclipse update, probably it is easier if you place your custom icon in /usr/share/icons for example, and just replace the Icon stanza (from the Eclipse .desktop) with the full path to that icon.

If the problem is indeed caching, then I really don't know how to fix it.

share|improve this answer
    
I used the apt-file command and it seems that the icon for Eclipse is placed all over the system and it doesn't make any sense to change it if Eclipse is going to override it when it gets updated. Thanks for your help. –  user1408643 Aug 21 '13 at 20:18
    
So the other solution did work (changing the "Icon" stanza in eclipse.desktop)? Or it really is a caching problem? –  Salem Aug 21 '13 at 20:32

As I know (and see in 13.04) Unity doesn’t use cache for app icons and if you change an app icon, the change will be shown in few seconds.

To change the icon permamently, simply put the SVG or PNG into ~/.icons – create one if it doesn’t exist. The name of SVG/PNG should be the same as in .desktop file, in this case eclipse.

share|improve this answer
    
I've put the eclipse.png file in the ~/.icons directory that I created myself so that I don't have to override the icon if and when Eclipse is updated, but no change. It's cool though. I guess they fixed it in 13.04 as Unity doesn't cache app icons. –  user1408643 Aug 21 '13 at 23:44

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.