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 animated star). 


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


SUPPORTED PLATFORMS
-------------------
The main platforms for Xalf are Linux and Solaris. People have
reported that Xalf also runs on FreeBSD and Irix. Newer versions are
only tested on Linux and Solaris. If you want support for other
platforms and are willing to test beta-versions, contact me.


GNOME INTEGRATION
-----------------
Xalf is included with GNOME 1.4. Xalf also works with earlier GNOME
versions if you have Gnome-libs version 1.2.11 or newer.

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. 


THE FUTURE
----------
Xalf needs to do quite many tricks to work. The principle with
LD_PRELOAD is not very beautiful and there are many cases when it does
not work. These issues were discussed on the Window manager
specification mailing list. Most people (including myself) thinks that
an Toolkit-based implementation is a better long term solution. Mary
Dwyer at Sun Microsystems has begun working on such an
implementation. 


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>

