Adding .gitignore files
[bbkeys.git] / README
blob24c4509758dcc7fd254ff389a1bc0c37b32e31ab
1 -[  README for bbkeys, a general XWindow keygrabber, meant to be a working
2 -[  example of a better window-hinting scheme with blackbox.
4     Check out NEWS for more information....
6     This is the brave new world of bbkeys, the next generation.  The first
7     bbkeys (through 0.8.6) had gotten big and out of control, code-wise.
8     It was the first C++ code I'd ever written and it showed.  Then along
9     came openbox and woodblock's simple and elegant epist keygrabber was
10     beefed up big-time, and now it's known as epist-ng, and it's
11     distributed with openbox2.
13     Wellsir, bbkeys either needed a complete rewrite or project
14     abandonment.  I chose the former.  Time will tell as to the wisdom of
15     that.  Bbkeys now supports a much more flexible configuration file.  It
16     more accurately represents the config file as a tree object, which it
17     is.  It also shares blackbox's menu-file's structure, so hopefully
18     blackbox and bbkeys will be able to share common file-parser code.
20     Bbkeys 0.8.6 and before was never designed for parameters in the
21     config-file, nor was it able to handle chained keybindings.  I
22     personally never used emacs before a few months ago, but since I've
23     started using it, I completely understand how valuable it is--and how
24     some users do need chained keybindings (ya just run out of them with
25     emacs).  So, this next generation of bbkeys will allow for both chained
26     keybindings and parameterized keybindings.
28     The other neato thing that's coming out of this bbkeys complete
29     overhaul is the fact that it will be sharing code for the first time
30     with blackbox proper!!  This is EXTREMELY good news, and is the best
31     thing to happen to blackbox since sliced bread!
33 -[  A note on the config file....
35     Previously, bbkeys kept its config options and its keybinding
36     definition file in two separate places.  This was yucky and wasteful
37     and was only done because I didn't think 2 seconds about it before now.
38     But learning from mistakes (and learning from others' good code) is a
39     Good Thing (TM).  Thus, bbkeys's config-file has changed.  It resembles
40     blackbox's menu-file structure, as shown below....
42 [begin] (bbkeys configuration file)
44   [config]
45     [option] (stylefile) {~/local/blackbox/share/blackbox/styles/Blue}
46     [option] (honorModifiers) {false}
47     [option] (raiseWhileCycling) {false}
48     [option] (showCycleMenu)  {true}
49     [option] (menuTextJustify) {right}
50     [option] (autoConfig)   {true}
51     [option] (autoConfigCheckTimeout) {2}
52     [option] (workspaceColumns) {4}
53     [option] (workspaceRows) {2}
54     [option] (cycleMenuX) {20}
55     [option] (cycleMenuY) {20}
56     
57   [end]
59   [keybindings] (begin keybindings)
60     [chain] (Mod1-Y)
61       [execute] (1) {xmms}
62       [execute] (2) {aumix -v +5}
63       [execute] (3) {aumix -v -5}
64     [end]
65     [Lower]  (Mod1-Down)
66     [Raise]  (Mod1-Up)
67     [toggleShade]  (Mod1-F9)
68     [Close]  (Mod1-F4)
69     [Iconify]  (Mod1-M)
70     [toggleMaximizeFull]  (Mod1-F12)
71     [toggleMaximizeHorizontal]  (Mod1-F11)
72     [toggleMaximizeVertical]  (Mod1-F10)
73     [toggleOmnipresent]  (Mod1-Control-S)
74     [toggleDecorations]  (Mod1-Control-T)
75     [resizeWindowWidth]  (Mod1-Control-Shift-Left) {-5}
76     [resizeWindowWidth]  (Mod1-Control-Shift-Right) {5}
77     [resizeWindowHeight]  (Mod1-Control-Shift-Up) {-5}
78     [resizeWindowHeight]  (Mod1-Control-Shift-Down) {5}
79     [moveWindowUp]  (Mod1-Control-Up) 
80     [moveWindowDown]  (Mod1-Control-Down)
81     [moveWindowLeft]  (Mod1-Control-Left)
82     [moveWindowRight]  (Mod1-Control-Right)
83     [NextWindow]  (Mod1-Tab)
84     [NextWindowOnAllWorkspaces]  (Mod1-Control-Tab)
85     [PrevWindow]  (Mod1-Shift-Tab)
86     [changeWorkspace]  (Mod1-1) {1}
87     [changeWorkspace]  (Mod1-2) {2}
88     [changeWorkspace]  (Mod1-3) {3}
89     [changeWorkspace]  (Mod1-4) {4}
90     [changeWorkspace]  (Mod1-5) {5}
91     [changeWorkspace]  (Mod1-6) {6}
92     [changeWorkspace]  (Mod1-7) {7}
93     [changeWorkspace]  (Mod1-8) {8}
95     [showRootMenu] (Mod1-Control-Escape)
97     [Execute]  (Mod1-F5) {xrefresh}
98     [Execute]  (Mod1-F1) {aterm -fn smoothansi -fg white -bg black -trsb -tr -sh 80 -tint steelblue -cr green -sl 5000}
99   [end] (end keybindings)
100 [end] (end bbkeys configuration)
102     As you can see, it's the same structure as blackbox's menu file.  All
103     config options for bbkeys are kept in a [config] submenu structure, while all
104     keybindings are kept in a [keybindings] submenu structure.  Inside the
105     keybindings structure, the only other submenu structure is the [chain]
106     directive.  It is important to note that both the config submenu
107     structure and the keybindings submenu structure must have an [end] to
108     delimit the section.  If it's not there, well, good luck. =:)
109       
110     
111 -[  Is it perfect? Absolutely not.  
113     Will it core-dump all over your lap and puke on your blue suede 
114     shoes? Hopefully not.  
116     Are there bugs? Oh, you betcha.  
118     Do I want to know about them there bugs? Yah, for sure.
120     Are there things that I'm still planning to do? Ayup (that's what TODO is for).