Take a look at the *.desktop file of jEdit (it's a text editor written in Java and ships in Ubuntu's universal repository). First of all: create a copy of jedit.desktop and modify all the relevant entries. Most of them are relevant.
Now the problematic entry is StartupWMClass. If you don't set up this correctly, Unity won't be able to "identify" the process/window that is launched by the executable specified by the "Exec" entry.
You can start up SQuirreL and use xprop to get the correct value. I'll help you: it's "net-sourceforge-squirrel_sql-client-Main"
So a proper squirrel.desktop file looks like this:
[Desktop Entry]
Name=SQuirreL
GenericName=SQuirreL SQL Client
Comment=Browse/edit SQL databases
Exec=/opt/SQuirreLSQLClient/squirrel-sql.sh %U
Icon=/opt/SQuirreLSQLClient/icons/acorn.png
Terminal=false
Type=Application
Categories=Development;
StartupNotify=true
MimeType=text/x-sql;
StartupWMClass=net-sourceforge-squirrel_sql-client-Main
Keywords=Programming;Java;SQL
(Of course assuming that SquirreL is installed in /opt/SQuirreLSQLClient)
Comments
Then what???
Re: Then what???
$HOME/.local/share/applications
folder and the custom launcher will show up in your Dash, when you start entering the first letters of it's title. If you got this, you can launch the app from Dash. Once it's running, you can right-click the icon of the running app and make it stick.Thanks
I still have two questions:
1.What dose the %U of executed bash means?
2. What is the meaning of "WM"? and why I can not lock auto-generated Squirrel desktop entry to Unity if StartupWMClass of it is missing or incorrect?
Appreciated.
Re: Thanks
%U
is: "A list of URLs. Each URL is passed as a separate argument to the executable program. Local files may either be passed as file: URLs or as file path."StartupWMClass
means: "The application will map at least one window with the given string as its WM class or WM name hint (see the Startup Notification Protocol Specification for more details)."The "WM" stands for window manager. And locking a desktop entry to the Unity launcher apparently requires that Unity can match an X11 window with a desktop entry based on the
WM_CLASS
property of the window and theStartupWMClass
property of the desktop entry.