-
Notifications
You must be signed in to change notification settings - Fork 9
/
README
92 lines (75 loc) · 4.06 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
Compiz Boxmenu
=== Requirements ===
* A recent version of GLib 2.x and GTK+ 3.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)
* python-gobject (for the menu editor)
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