Locking Wine applications in the launcher is not permanent

I happily run Word 2007 via Wine on my Ubuntu 12.04 desktop. I prefer having it sit in the launcher for easy access, however, every time I start a new session (that is, logging in or booting up), the Word launcher has disappeared.

Could this be a bug or am I doing something wrong?


Solution 1:

The problem is that the .desktop file is NOT in a standard directory. Launcher favorites need to be in either the /usr/share/applications directory or the ~/.local/share/applications folder (and NOT a subdirectory as my wine .desktop files are). Copy the .desktop file there and then drag it to the launcher to lock it there.

The other option is to set the full path to the launcher using gsettings, but that's a pain.

EDIT on further investigation, when I add the desktop file for Word on my system (residing in ~/.local/share/applications/wine/Programs/Microsoft Office/), its name is added in gsettings with - instead of / for its location. Doing the following with gsettings to correct it made it permanent for me:

gsettings get  com.canonical.Unity.Launcher favorites > myfavs.txt

Edit myfavs.txt to replace - with /:

['nautilus-home.desktop', .... , 'wine-Programs-Microsoft Office-Microsoft Office Word 2007.desktop']

becomes:

['nautilus-home.desktop', .... , 'wine/Programs/Microsoft Office/Microsoft Office Word 2007.desktop']

Then set it:

gsettings set com.canonical.Unity.Launcher favorites "`cat myfavs.txt`"

I filed a bug report here so that one shouldn't have to do this: https://bugs.launchpad.net/unity/+bug/1033577

Solution 2:

You are not doing anything wrong. That is just how wine is build.

To have Word 2007 in you launcher at all times, you can create a .desktop file that starts Word and drag it in your launcher. However this has the distinct disadvantage, that while Word is running to icons for it will sit in your launcher.

The desktop file could look like this (I don't use wine so not tested):

[Desktop Entry]
Name=Word 2007
Comment=Open Word 2007
Exec=wine ~/.wine/drive_c/Program\ Files/word.exe
Icon=network
Terminal=false
Type=Application
StartupNotify=true
Categories=GNOME;
OnlyShowIn=GNOME;Unity;
X-GNOME-Keywords=Applications;WinWord;
Name[en_US]=Word 2007

Of course in this line

Exec=wine ~/.wine/drive_c/Program\ Files/word.exe

you need to replace the path with the real path to your word executable (which will most likely be in $HOME/.wine/).

It's not perfect, but the best I can do.