                            Compiz Boxmenu

=== Requirements ===

 * A recent version of GLib 2.x and GTK+ 2.x
 * libwnck (2.20 is probably best, but not strictly required)
 * dbus (you must have a running session bus) and dbus-glib (for dbus version)

It does not strictly require compiz (but it does need a recent version of the
vpswitch plugin for 'Initiate on Desktop' to work)

=== Install ===

 $ make
 $ sudo make install

Prefix support is currently broken, so it only works correctly if you install
to /usr (will be fixed when it gets a proper buildsystem or perhaps sooner)

=== Usage ===

For the lazy, you can run the provided "autoconfig-compiz.py" script (as your
user, *not* as root!), but here's what it sets:
 + General Options > Commands > Commands > Command line 0 to "compiz-boxmenu"
 + General Options > Commands > Key bindings > Run command 0 to "<Control>space"
 + Viewport Switcher > Desktop-based Viewport Switching > Plugin for initiate
   action to "core"
 + Viewport Switcher > Desktop-based Viewport Switching > Action name for
   initiate to "run_command0_key"

=== Menu Format ===

The default menu lives at /etc/xdg/compiz/boxmenu/menu.xml. You can override
that menu by copying it to ~/.config/compiz/boxmenu/menu.xml (it's XDG
basedir-compliant, so if you're setting those variables, adjust accordingly)

Menus: <menu title="Title"> Menus can contain <item> and more <menu> tags (so
  they're infinitely nestable!). The title attribute is optional and is ignored
  for the toplevel menu

Items: <item type="Type"> There are a few supported item types:
 * launcher: supports the following child elements:
    - <name>: the label to show in the menu
    - <icon>: the icon name to use in the menu.
      This name is looked up by gtk+, so you can toss custom icons in 
      ~/.icons/$YOUR_THEME/$ICON_SIZE/apps/
    - <command>: the launcher command line, now can be used as 
		a pipemenu by setting the mode2="pipe" attribute (this was done
		to make up for the removal of pipeitems)
 * separator: a simple GtkSeparatorMenuItem
 * windowlist: libwnck-based window list menu.
 * viewportlist: libwnck-based viewport list menu.
 * reload: reload button (it actually quits the daemon)
 * documents: access to recent documents list

=== Implementation ===

It compiles into two binaries, compiz-boxmenu and compiz-boxmenu-daemon.
compiz-boxmenu is a simple dbus client that connects
to org.compiz_fusion.boxmenu and calls the show method. The actual menu is
compiz-boxmenu-daemon, but you shouldn't ever need to manually launch it; the
dbus service file will cause it to be automatically spawned when the name is
requested.

There are also three other binaries that allow you to call up the viewport list,
windowlist, and documents list on their own. These are compiz-boxmenu-wlist, compiz-boxmenu-vplist,
and compiz-boxmenu-dlist.

== Credits ==
crdlb for the original
Openbox developers for the pipeitem -> pipemenu idea
Windowmaker developers for the filebrowser idea
