XALFX11 Application Launch Feedback |
Xalf: Background and developer information
This mode can be implemented with assistent of the window property WM_CLASS.
An helper application examines all new mapped windows and checks if they
have correct Instance- and Classnames, and resets the indicator if this
is the case. One big problem is that the helper application must know what
WM_CLASS the app will set. Gnome and KDE apps seems to set the Instance
name to argv[0], but in many cases this is not true. The conclusion is
that checking WM_CLASS is not a practical solution except in some special
cases. Window Maker is such a
special case. It can do Docking of applications. This means that
you can create an launch shortcut to an running app. In this case, the
WM_CLASS (and more) properties are known and can be saved in the launch
icon properties. This works good but is, in my opinion, not flexible enough.
First it may seem that the PID is a good enough solution, but it's not.
Consider the shell script:
#!/bin/sh
xtermThe PID returned upon launching is the PID of the script. Xterm is given another PID, unknown to us. The ability to pass an arbitrary string is more useful. By setting this environment variable to an unique identifier, we can uniqely identify newly mapped windows! This seems to be a solution that works in all (?) cases.
How to overload the XLib functions? Of course, it's always possible
to actually patch XLib. Another way is to use LD_PRELOAD. This seems to
work well.
Solution | Good | Bad |
Add an hourglass to the mousecursor | Users tends to look at the mouse cursor, and quickly sees the indicator. | Either holds:
1) The cursor changes only on the root window, panels etc. This means the indicator will not be visible if the user moves the cursor to another application. 2) The cursor changes in all windows (possible?). This will be confusing. |
2. Separate indicators for each app in launching
Solution | Good | Bad |
Add an icon to a pager (for switching between apps) which somehows indicates that the app is starting up. | The indicator is always visible (as long as the pager is visible). Operations can be performed on the not yet started app, for example suspension or killing. | Users may not notice the indicator. |
Last modified June 2000 |