vdesk: virtual desktops for any window manager
Adam Sampson <azz@us-lot.org>

This tool provides portable (albeit non-standard) virtual desktop
support; it's especially useful with lightweight window managers such as
aewm.

-- Using vdesk --

To switch desktops, invoke vdesk as:
	vdesk DESKTOP
e.g.
	vdesk 2
It is useful to bind keys to switch desktops using a keygrabbing tool.

To move a window to a new desktop, invoke vdesk as:
	vdesk DESKTOP WINDOW-ID
where the window ID is specified in hex, e.g.
	vdesk 1 0x80a4bb

To make a window "sticky" (visible on all desktops), move it to desktop
number 0.

The window ID can be found using a tool like "window" or "xwininfo".
It'll be different for each instance of a window -- if you want to make
the gkrellm window sticky on startup, you can do something like:
	vdesk 0 `window -list | grep gkrellm | awk '{print $1}'`

-- How it works --

vdesk works by mapping and unmapping (i.e. showing and hiding) windows
when you change desktop, depending on the contents of the property
VDESK_DESKTOP. The VDESK_DESKTOP property on the root window is used to
store the number of the current desktop; when switching desktops, vdesk
looks for visible windows that don't have that property and labels them
with the current desktop number, then unmaps any windows that are
visible and not sticky, then maps any windows that are visible on the
new desktop. vdesk is, as far as I'm aware, the only tool that
understands the VDESK_DESKTOP atom; it won't interact correctly with a
window manager that provides "proper" virtual desktops.

Some of the code was originally based on Decklin Foster's excellent aewm
window manager, so I've kept the (MIT-style) aewm license.

-- Bugs --

Please report any problems you have with vdesk to me at the address at
the top of this file.

