Xalf (http://www.lysator.liu.se/~astrand/projects/xalf/)
Xalf (http://www.lysator.liu.se/~astrand/projects/xalf/)
--------------------------------------------------------

This a utility to provide feedback when starting X11 applications.

Xalf is solving the same problem as Busycursor (also written by me),
but in a more reliable and flexible way. The main differences are:

1) Xalf can reliable detect if newly mapped windows are belonging to a
particular launched application. It does this by overloading the Xlib
function XMapWindow with a version that signals the tracking xalf
process.

2) Xalf provides (currently) four different types as "indicators",
described below. 

Invisible Window:
Xalf creates an invisible window, to be used in conjunction with a
standard task pager like Gnomes tasklist_applet or the KDE
Taskbar. The name of the window is the application name within
parenthesis. The small window icon (KWM_WIN_ICON) is set to a small
hourglass. This indicator is default. 

Splash screen:
An generic splashscreen is displayed during application launch. 

Mouse cursor change:
Xalf adds an hourglass symbol to the mousecursor for the root window
and the Gnome panel. Note that the cursor is not changed for the Gnome
foot-menu windows. 

Animated star:
An animated indicator resembling the look of that on SGI/Irix
machines (a kind of yellow star blinking while loading a program).


INSTALL
-------
See the file INSTALL. 


GNOME INTEGRATION
-----------------
Recent versions of Gnome-libs (>1.2.11, at least) has built-in support
for Xalf. You can control Xalf via GNOME Control Center (or by editing
~/.gnome/xalf). Note:

You can prepend NO_XALF to desktop entries commandlines to disable
Xalf for a specific application. This is especially useful for
launching applications that doesn't start new processes but only
creates new windows. Gmc works like this, so I recommend change
"Exec=gmc" in /usr/share/gnome/apps/Gmc.desktop to "Exec=NO_XALF gmc".


KDE INTEGRATION
---------------
KDE has borrowed some Xalf techniques, and integrated them into
KDE2. I don't know the current status of this work, though. 


USING SAWFISH "Matched Windows"
-------------------------------
Beginning with version 0.11, Xalf sets different WM_CLASS names for
the different indicators. The class name is always set to "xalf". The
instance name is set to "invisiblewindow", "splash" and "anim",
depending on the indicator that is used. 

This can be used with Sawfish to automatically iconify, for example,
the invisible window. This can be done by:

1) Create and match on Class: xalf/invisiblewindow
2) Set its state to "Iconified" in the State pane. 


USAGE
-----
If you are not using GNOME with built-in hooks, prepend xalf to your
commandlines. For example, create an desktop icon running:
 "xalf gnumeric"


COMMANDLINE OPTIONS
-------------------
   -h, --help               display this help and exit
   -v, --version            output version information and exit
   -t, --timeout nseconds   use a time-out period of nseconds seconds
   -n, --noxalf             do nothing, besides launch application
   -m, --mappingmode        compatibility mode: Do not distinguish between
                            windows. All new mapped windows turns off indicator
   -i, --invisiblewindow    use an invisible window as indicator (default)
                            (for use with Gnome panel, KDE taskbar etc)
   -s, --splash             use splashscreen as indicator
   -c, --cursor             add hourglass to mouse cursor
   -a, --anim               use animated star as indicator
   -l, --title titlestring  Title to show in the tasklist

Comments and bug-reports are appreciated. 

/Peter Åstrand <astrand@lysator.liu.se>