3 - Um. A later note on plaigarism....
5 - Wellsir, I started this rewrite out with the intention of not copying any
6 code from anyone else. Of course, that wasn't how bbkeys started 4+
7 years ago, so I don't know why I expected it to be different this time
8 around.... bbkeys borrowed heavily from XEmacs and windowmaker before...
9 I guess I was hoping to not have to do the same thing again this time
12 Well anyway, I started the bbkeys re-write out with 0 existing code. I
13 did class diagrams and sequence diagrams, designing the new system to be
14 truly object-oriented and reusable for other bbtools, etc. I started off
15 the re-write by focusing on the config classes. I think they're clean
16 and well-done, and am pleased with them. Then I started into the hard
17 stuff. As the CVS repository will tell, I didn't originally start out
18 with any anything other than my class-diagram-generated code base.
20 But as I started working on coding the screen handler, the main client
21 itself, and the keybindings interface, I frequently looked at epist's
22 code. And the more I looked at their code for ideas and sanity-checks,
23 the more I realized that they truly did a marvelous job. Not only that,
24 but some of their classes were exactly what I had in mind with my early
25 class and sequence diagrams. I also quickly realized that I could either
26 take some of their classes inline or spend quite a lot of time writing
27 just about exactly the same thing myself. I chose the former.
29 In particular, I've brought in epist's actions, keytree, and window
30 classes and modified them to work with the new blackbox library. I've
31 also borrowed code from openbox's XAtom class and used it in Netclient.
32 I was determined that I could do it better than they did with screen, and
33 I think I've done some good things, but all in all, much of ScreenHandler
34 uses epists's screen methods.
36 That being said, I feel less than happy about the means, but I do believe
37 that the end will still be good. bbkeys has an extremely good code base
38 now--much, much better than it did before. It's not quite a code-fork
39 from epist, but it feels sort of the same, which isn't nearly as
40 satisfying as I had hoped. But credit does need to be given where
41 credit is due, and I hope I've done that.
45 -----------------------------------------------------------------------------
49 - Okay. complete rewrite time.... Check out the README for the new
52 - A note on plaigarism... I've poured through epist-ng's code and it is
53 truly a thing of beauty. xOr, woodblock, and shrimpx did an EXTREMELY
54 nice job with the code. I personally don't like the lexx/yacc parser
55 stuff, and since ob2 doesn't have a common window manager library to go
56 against, it's really tied very closely to openbox2. This means, if
57 people want to use epist-nb with blackbox, they have to first download
58 and build openbox2. =:) All that's to say that I would loved to have
59 used more of epist-ng's code, but couldn't because it is so deeply
60 dependent on openbox2's code. The funny thing is--some of the syntax
61 that epist uses (actions, etc.), look very similar to those which were
62 in bbkeys. And oddly enough, some of the code looks rather familiar to
63 the epist-ng code. The reason for this is... there's not honestly that
64 many different ways to do this stuff, folks. So, hush to all you
65 nay-sayers and "he jacked epist-ng's code!"-sayers too. Zip it, even.
69 -----------------------------------------------------------------------------
73 - Make use of this file. :) Stuff like the note from 2001-08-03 should
74 really be in here, so it moved. README will contain non-INSTALL-related
77 -----------------------------------------------------------------------------
81 - This hasn't been updated in a LOOONG time, so I'll do so now. Some
82 exciting new features have been added to bbkeys with this release
83 (0.8.0), and I'll try to explain one of them here. By default, bbkeys
84 will now window-cycle MUCH better. Of course, all keybindings are
85 user-configurable as before, and whatever keys you were using before for
86 PrevWindow/NextWindow will still work--they'll just work better.
88 xOr has helped me considerably (HUGE THANKS AGAIN, xOr!!) with this
89 release, and one of the new features that we added was a "stackedCycling"
90 methodology to window-switching. To turn off this incredibly GOOD
91 feature (although I have NO idea why you would want to), put this in your
92 bbtools/bbkeys config file (no, not ~/.bbkeysrc--this is the other one
93 that's by default looked for at ~/.bbtools/bbkeys.bb or
94 ~/.bbtools/bbkeys.nobb)....
96 ! set this to false to use the linear style of window cycling
97 bbkeys.menu.stackedCycling: False
99 Again, why you'd want to do that is beyond me, because there's SO much
100 more benefit to letting bbkeys do things the way it wants to--the new
101 way. But if you're absolutely dead-set against progress, then put that
102 in. What you'll then be using is another improvement--a "linear" cycling
103 method. This will look the same as the old blackbox/bbkeys window
104 cycling method, but will act a little bit better and make more sense. It
105 will, for instance, put a newly-created window into the cycling stack
106 immediately after the currently-focused window, so you just have to
107 "alt+tab" to it, rather than having to go all the way around the stack.
109 As for the new method for cycling windows... When you hit your
110 NextWindow keybinding (mine's <alt+tab>), a window menu will pop up and
111 stay up until you release your PrevWindow/NextWindow keys. This allows you
112 to navigate through the window list (only showing the windows on the current
113 workspace, but INCLUDING STICKY WINDOWS!!), and then release your keys
114 when you have the window hilighted that you want to switch to. You can
115 go backwards or forwards through the list, by using your NextWindow and
116 PrevWindow keys. You can also make the pop-up window menu go away by
117 hitting <Escape>, or if you want, you can select the window currently
118 hilighted with <Return> or <Enter>. What this last little feature also
119 means is that if you have only one key bound to PrevWindow or NextWindow
120 (i.e. using F11 to cycle forwards and F12 to cycle backwards), you can
121 keep cycling backwards/forwards, and then when you've hilighted the
122 window you want, just hit <Return>, or <Escape> to cancel.
124 But that's not all!! With this new cycling scheme, the window list stack
125 will be re-organized when you cycle to a new/different window. The
126 window that you had previously focused is now right below the one you now
127 have focused. So you can switch back and forth between windows with a
128 simple <alt+tab> (or whatever you choose for your NextWindow keybinding.
130 I guess that's about it. Give it a try. I think you'll be pleasantly