I frequently run a windows program with wine. When I open this program it shows up in the unity launcher as wine instead of the actual opened program.

I have made a desktop launcher with the right icon but dragging this to the unity launcher reverts the icon back to the wineglass icon. When starting the application it's denominated as Wine Windows Program Loader instead of its actual name.


enter image description here


Workaround on Ubuntu 12.04 LTS and up


This workaround requires a working launcher for your Wine application. Here's a tutorial on how to create one. The workaround also applies to applications installed with PlayOnLinux scripts. More recent versions of PlayOnLinux automatically add the StartupWMClass line to their launcher.


Open your .desktop launcher in your favorite text editor and append this line to the file:


where application.exe is the base name of the executable you want to launch in Wine.

Don't use the the full path, only the base name. And make sure it's unqoted (a general rule you should follow with desktop files).


Application icons and descriptions should be rendered fine now:

enter image description here

Source: https://bugs.launchpad.net/unity-2d/+bug/702452

| improve this answer | |
  • I can confirm, that this works also with PlayOnLinux Applications on Ubuntu 12.04 – TIIUNDER Feb 2 '13 at 17:20
  • 3
    I should clarify that it should be only the name of the executable, not the full path, no quoting, or anything extra of that sort. – Jonah Jul 17 '13 at 3:50
  • 1
    I can confirm that this worked with Ubuntu 13.10 . @Jonah Can you please edit your answer and add that little detail cause it's really important :) – thelinuxer Oct 25 '13 at 17:11
  • 1
    @thelinuxer Glad the answer helped you. I edited the part Jonah pointed out. – Glutanimate Oct 25 '13 at 20:47
  • 3
    Here's my variation, works for 14.04: if it's available, select "create desktop shortcut" in the app's installer. Then move this shortcut to /usr/share/applications, and add the StartupWMClass=XXX.exe line to it (for instance using gksudo gedit XXX.desktop) – Dominic Comtois May 2 '14 at 19:34
  1. This is where you will find your icons or place your custom icons in here:

    $ cd ~/.local/share/icons/hicolor/256x256/apps/
    $ ls
  2. Go to the following directory:

    $ cd ~/.local/share/applications/wine/Programs/Microsoft\ Office
    $ ls
    Microsoft Excel 2010.desktop\
    Microsoft Office 2010 Tools\
    Microsoft PowerPoint 2010.desktop\
    Microsoft Word 2010.desktop\
  3. Edit .desktop files:

    $ sudo nano Microsoft\ Word\ 2010.desktop
    [Desktop Entry]
    Name=Microsoft Word 2010
    Icon=29F5_WINWORD.0.png (or name of icon as in above folder)
  4. You are done!

| improve this answer | |
  • Do you have any idea why I am able to use the existing icon of Word in the Icon folder, but not something I put in that folder myself, to use in my .desktop file? – Heisenberg Dec 5 '13 at 3:43
  • Nevermind. It seems like the icon must be .png instead of jpg? – Heisenberg Dec 5 '13 at 3:49

There are several logged bugs on this issue.

In one of the bugs (post 3), someone has reported a possible workaround. However two further posts below that note that it doesnt always work.

| improve this answer | |

I'm not using Unity, so I really don't know if it will work.

You problem could be beacause of the program launcher. I assume your .desktop file contains Exec=wine '/home/user/.wine/dosdevices/c:/Program...' and so on. Try making a bash binary wich contains something like this:

cd '/home/aldomann/.wine/dosdevices/c:/Archivos de programa/Warcraft II BNE'
wine 'Warcraft II BNE.exe'

Name it for instance warcraft2 and move it to /usr/bin (or any PATH variable, wich you can know by typing echo $PATH on the Terminal)

Then in your .desktop file instead of Exec=wine '...' use Exec=warcraft2. I think Unity will assume this is not a wine program and will use your icon, but it is only conjecture.

Hope it works ;)

By default your Wine apps .desktops are placed on /home/user/.local/share/applications/wine

Instead of modifying an existing .desktop file you can create a new one and place it on /home/user/.local/share/applications. It should be something like this:

[Desktop Entry]

Tip: If you place your icon on /home/user/.icons/ (i.e app-icon.png) you will only have to put Icon=app-icon.

| improve this answer | |
  • I am not sure how to find the .desktop file to give this a shot. – zorkerz May 3 '11 at 22:17
  • It should be on /home/user/.local/share/applications/wine – Alfredo Hernández May 3 '11 at 22:41

I've written a script to fix this and other problems with MSO in Unity. https://ubuntulogia.wordpress.com/2015/01/25/fix_mso_unity/ It works for me, but any suggestions are welcome. If someone test it and found any improvements, please share it to me. To run the script, you must copy the code in a text file (using gedit, for example), and save it. Then, you must run it using "sh". For example, if you save the file in your Home folder as "fixmso.sh", the command for running the script is: sh fixmso.sh

| improve this answer | |

You can do that really simply over the GUI with a program called alacratz. Here's a pretty simple how-to. Bottom chapter is what your looking for http://develop.alpdesigns.ch/pages/linux/add_exe_program_to_linux.html

| improve this answer | |
  • Simply posting a link is not as helpful as summarizing the steps included in the link. We like our users to be able to solve problems without having to click out. – user323419 Oct 1 '15 at 19:46

Use Alacarte (the old menu editor, you might need to install it) to create an old style menu entry with an icon and a executable that launches your program. Than search for this via alt + F2 and pin it to the launcher.

| improve this answer | |

You can easily change any installed program in your Ubuntu using "Main Menu" (package name is "alacarte"). You can download it from Software Center by typing "Main Menu" and then:

enter image description here

  1. Run "Main Menu" program.
  2. From right panel called "Menus" find your program (in this case it is in "Wine" node) and select it in "Items" panel.
  3. Click on properties button.
  4. From showed dialogue select icon button that located on top left.
  5. Finally browse the location of your new icon in your file system.

After doing above steps you will see your new icon in Unity launcher and panel.

Have a nice time.

| improve this answer | |
  • Saeed I don't think you really understand the question. Sure it may be possible to change the icon of any program as you've described, but the point is that Wine is a wrapper for a number of different programs - so one must change the icon depending on the actual program being run. You describe a way to change the Wine icon - not the underlying program. – user101181 Oct 26 '12 at 19:59
  • However, Alacarte can be used just for that (you just need to put wine your_program into the executable field). – sup Feb 13 '13 at 11:51

I had the same issue, and I found out it was because I put the shortcut files (that PlayOnLinux places on the Desktop) into a separate folder. I took them out of the folder and put them on the Desktop and it works fine (the icon is displayed). Hope this helps!

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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