All,
This one is a bit convoluted so please stick with me while I try to
explain.
The problem manifests itself on Ubuntu using Unity (I know, I know,
some will claim they don't care about it and I fully appreciate
that, but I am not entirely sure this is about Unity).
As I've learned by working on pd-l2ork, it appears that Unity
assigns windows under the appropriate icon based on window class
name (at least that is how tcl/tk calls it). If no class name is
specified, Unity gives window class name based on the name of the
shortcut that started the app (.desktop file) and herein lies the
problem.
While typically .desktop files will have the same name as the app,
and starting them as such will not be a problem, I have a a shell
script built for L2Ork participants that appears as a desktop
shortcut. Double-clicking on the shortcut starts the bash script
that detects whether qjackctl is already running and if not starts
it, then it starts pd-l2ork and uses optional argument to open the
right piece. Since I made pd-l2ork explicitly set its own window
class using the following command:
toplevel $window -class <name>
all pd-l2ork windows appear under the icon that I pinned on the
Unity launcher. The important thing is this was not the case until I
explicitly set the window class name. Before I did this, it would
appear under the name of the .desktop file name since Unity did not
find any other explicit information on the program, resulting in a
new question mark icon that appears on the launcher and program
window(s) being pegged under this new icon. On the other hand, since
qjackctl does not explicitly set its window class name, it continues
to (mis)behave like pd-l2ork used to prior to explicitly setting its
window class names. Namely, when I click on the shortcut in Unity
launcher/menu, its newly spawned window is pegged under qjackctl
icon (as it should). However, when I run qjackctl through the
script, it is pegged under the new question marked icon bearing the
name of the .desktop shortcut.
So, here's the question that's been bugging me: is there a way to
explicitly set the window class name in qt as is the case with
tcl/tk (FWIW, I would be seriously surprised if one couldn't since I
consider qt far superior to tcl/tk) and if so, would it be possible
to add this to the future releases of qjackctl?
Another completely unrelated qjackctl wishlist question is would it
be possible to disable popping up message window and the pop-up
error window in the event the qjackctl does not connect successfully
connect to jackd via a preferences option as it can be quite
annoying for new users to click through those two windows every time
attempted start of jackd fails...
Many thanks!
--
Ivica Ico Bukvic, D.M.A
Composition, Music Technology
Director, DISIS Interactive Sound & Intermedia Studio
Director, L2Ork Linux Laptop Orchestra
Head, ICAT IMPACT Studio
Virginia Tech
Department of Music
Blacksburg, VA 24061-0240
(540) 231-6139
(540) 231-5034 (fax)
disis.music.vt.edu
l2ork.music.vt.edu
ico.bukvic.net