Menu

Tree [26fd4c] master wip 1.1.12 /
 History

HTTPS access


File Date Author Commit
 hicolor 2011-12-28 ShadowKyogre ShadowKyogre [072470] Tweaked makefile and added an icon for the editor
 man 2014-11-22 ShadowKyogre ShadowKyogre [e07e9c] Manpages galore! The one for the editor's prett...
 new-editor 2015-09-07 ShadowKyogre ShadowKyogre [26fd4c] Show the xml parsing error if it encounters it,...
 .gitignore 2015-06-08 ShadowKyogre ShadowKyogre [5c4913] Be sure to ignore the compiz-boxmenu-daemon binary
 CHANGELOG 2014-12-02 ShadowKyogre ShadowKyogre [e2c141] Update the changelog to include most recent edits
 Compiz-Boxmenu-Editor.desktop 2014-11-20 ShadowKyogre ShadowKyogre [cee09c] Add *.desktop file for the editor
 Makefile 2015-06-08 ShadowKyogre ShadowKyogre [4df45a] Make sure the *.desktop file for the menu edito...
 README 2014-12-02 ShadowKyogre ShadowKyogre [20acbc] Remove \t's since they mess up formatting
 TODO 2015-06-08 ShadowKyogre ShadowKyogre [e79a0d] Remove some of the obselete TODO items
 autoconfig-compiz.py 2014-09-21 ShadowKyogre ShadowKyogre [bd36b4] Fix makefile filling in LOOK_HERE for the pytho...
 cbmenu.xcf 2011-12-28 ShadowKyogre ShadowKyogre [072470] Tweaked makefile and added an icon for the editor
 compiz-boxmenu-editor.in 2013-01-06 ShadowKyogre ShadowKyogre [70696a] Allow setting which python interpreter to use f...
 deskmenu-common.h 2010-11-30 shadowkyogre shadowkyogre [9c67ee] update to match paths
 deskmenu-documentlist-client.c 2014-12-03 ShadowKyogre ShadowKyogre [b14aba] *.c: Add version check to see if g_type_init is...
 deskmenu-dplist-client.c 2014-12-03 ShadowKyogre ShadowKyogre [b14aba] *.c: Add version check to see if g_type_init is...
 deskmenu-menu.c 2015-06-08 ShadowKyogre ShadowKyogre [4492c1] Cleaning up indentation to be more consistent
 deskmenu-menu.h 2014-02-28 ShadowKyogre ShadowKyogre [95c8de] New Desktops menu list. It should be mentioned ...
 deskmenu-service.xml 2014-02-28 ShadowKyogre ShadowKyogre [95c8de] New Desktops menu list. It should be mentioned ...
 deskmenu-utils.c 2014-12-03 ShadowKyogre ShadowKyogre [9d22ea] Clean up indentation
 deskmenu-utils.h 2010-12-19 shadowkyogre shadowkyogre [54057e] replace %20 with a space
 deskmenu-vplist-client.c 2014-12-03 ShadowKyogre ShadowKyogre [b14aba] *.c: Add version check to see if g_type_init is...
 deskmenu-windowlist-client.c 2014-12-03 ShadowKyogre ShadowKyogre [b14aba] *.c: Add version check to see if g_type_init is...
 deskmenu-wnck.c 2015-06-08 ShadowKyogre ShadowKyogre [4492c1] Cleaning up indentation to be more consistent
 deskmenu-wnck.h 2014-02-28 ShadowKyogre ShadowKyogre [95c8de] New Desktops menu list. It should be mentioned ...
 deskmenu.c 2014-12-03 ShadowKyogre ShadowKyogre [b14aba] *.c: Add version check to see if g_type_init is...
 menu.xml 2010-11-27 shadowkyogre shadowkyogre [134118] first push
 org.compiz_fusion.boxmenu.service 2010-11-30 shadowkyogre shadowkyogre [9c67ee] update to match paths
 precache.ini 2012-02-07 ShadowKyogre ShadowKyogre [cb8535] Bump version, prevent loading a non-existent me...

Read Me

                            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. You can also set the icon for a menu by setting the
  icon="/path/or/name/of/icon" attribute

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/ or ~/.local/share/icons. By setting
      the mode1="file" attribute, you can specify icons located in nonstandard
      locations (like ~/.face for your login icon)
    - <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. You can add some more flare by 
   setting the icon="/path/or/name/of/icon" attribute and setting the 
   name="yourcustomname" attribute. You can also set a dynamic name for the
   separator by setting the mode="exec" attribute.
 * windowlist: libwnck-based window list menu. It also supports the following
   child elements:
    - <icon>: just like launcher's <icon>
 * viewportlist: libwnck-based viewport list menu. It also supports the 
   following child elements:
    - <icon>: just like launcher's <icon>
    - <vpicon>: just like icon, except for the viewports
    - <wrap>: specifies whether the viewport list should have wrapped navigation
 * reload: reload button (it actually quits the daemon)
    - <icon>: just like launcher's <icon>
 * documents: access to recent documents list
    - <icon>: just like launcher's <icon>
    - <command>: just like launcher's <command>, except it is used to open files 
      in the document 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 four other binaries that allow you to call up the viewport list,
windowlist, desktop list, and documents list on their own. These are 
compiz-boxmenu-vplist, compiz-boxmenu-wlist, compiz-boxmenu-dplist,
and compiz-boxmenu-dlist.

You can also edit the menu by running compiz-boxmenu-editor

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