2 - complete rewrite!!! =:) See the README and NEWS files for more info.
5 - pulling patch in from David Dellanave (solaris compile issues)
8 - fixing compilation issue for Mac OS X (thanks to Thomas F. Burdick!!)
11 - fixing bug in token-parsing (thanks to Adam Hooper!!!)--we now allow
12 ")"'s in our ExecCommands. =:)
17 - fix recursive redhat-build bug (fixes 577135)
20 - fix a memory leak in ToolWindow::windowAttributeChange.
23 - remove server grabs from the Image code. They prove to not be needed (they
24 no longer exist in the blackbox code.) And they cause the X server to lock
25 indefinately if you run 2 bbkeys on the same display, running the second
26 one from a terminal on the display.
29 - when we recieve a startup message from blackbox, clear out any leftover
30 windows in the window list. These are caused by the fact that on shutdown
31 of blackbox, if any windows are unmanaged after bbkeys, bbkeys doesn't get
32 notified of their destruction and so ends up with extra windows in its list.
35 - fix compiling issues under solaris. Thanks to grub on irc for use of his
39 - get rid of work-around for pre-0.60 blackbox, which fixes bug that let you
40 move the toolbar around with bbkeys.
43 - fix window focus tracking bug. Fixes bug where you could manipulate the
44 last focused window on a nono-visible workspace.
47 - fix multi-head bug in main.cc. We now putenv("DISPLAY=...") so that
48 applications launched will be launched on the correct display. Thanks to
49 Greg Gilbert for his patch!
52 - fix bug in main.cc (| rather than ||). Thanks to Roman Neuhauser!
55 - fix bug in bbkeys.hh--increasing MaxInstructions to 100 for cthulhain
58 - fix in bbkeys.cc -- XUngrabKey changed to use same call to find what
59 screen we're on as the XGrabKey call
62 - fix in bbkeys.cc -- doing "xterm -e sh -c $command" rather than "xterm -e
63 $command". Thanks to Magnus Solvang for the bug report. Also, changing
64 hideous char* and snprintf() to ostrstream, YAY!!
69 - add a sanity check to the removeWindow function. Basically, blackbox tells
70 bbkeys when a window disappears, or is removed. If the window being
71 removed was the last window blackbox specified as having the input focus,
72 bbkeys now resets what it thinks has the input focus. This prevents the
73 bug reproducable by iconifying the last window on a workspace, and then
74 trying to maximize "nothing". [xOr]
76 - cleaning up build again. Rather than having 200 -DDEFINE_ statements
77 in our compile lines, we use config.h (like normal people). =:) This
78 very well may break stuff, but it looks good thus far.... [vanRijn]
80 - adding AM_MAINTAINER_MODE to stop the ever-annoying "here, let me run
81 aclocal for you again!!" idiocy of automake and friends [vanRijn]
83 - fixing things for multi-head displays--replacing
84 "getScreenInfo(0)->getRootWindow()," with
85 "getCurrentScreenInfo()->getRootWindow()," So yes, bbkeys now has
86 multi-head support. Sort of. You need to have a separate instance of
87 bbkeys running against each head ("bbkeys -display :1"), etc. cat
88 complaints >> /dev/null.... [vanRijn]
90 - removing kludgy C command-line configurator with much-improved perl script
91 from Damien Tougas (thanks!!!) [vanRijn]
93 - changing bbkeys.cc to look for bbkeysconf.pl rather than bbkeysConfigC
96 - removing showAllWorkspaces from bbkeys.{bb,nobb} config file and making it
97 an additional keybinding. This allows two different ways of showing all
98 open windows and navigating through them--one keybinding for the regular
99 "NextWindow" variety (as in previous versions of bbkeys, and another
100 keybinding, "NextWindowAllWorkspaces", that pops up the window list for
101 navigation for windows open on all workspaces. [vanRijn]
103 - bugfix.... previously, bbkeys would ignore windows that had no name. We
104 now follow blackbox's lead (and follow blackbox's code) and create a name
105 for it, "Unnamed". Thanks to Damien Terrier for this bug report.
108 - patch for allowing an alternate keybinding config file (thanks to Scott
111 - sync with blackbox for 0.61.2--attributes element Atom has changed to now
112 include decoration state so that ToggleDecor() works. [vanRijn]
114 - including patch from Sergey Vlasov for allowing use of Meta and Hyper
115 modifiers, also try to get the correct Num_Lock and Scroll_Lock modifier
116 mask from the X server rather than hard-coded. I've not had tons of time
117 to play with this, though I have made sure that it works on my laptop.
120 - fix for RPM-building process... install gzipped man pages by default on
121 RPM-based systems. Thanks to Darryll for the bug report!! =:) [vanRijn]
123 - removing bbkeysconf and bbkeysConfigGtk *shudder* apps from
124 chain-launching mode. These babies are dead and let's just move on
125 folks.... By keeping them in there, I'm afraid people will think it's
126 okay to use them. It's not. They're WAY out of date. Also, thanks to a
127 smarter way of handling key grabbing configuration in bbconf, we don't
128 have to hang bbkeys while keygrabs are being configured. [vanRijn]
130 - adding logic to bbkeys to pass configurators correct command-line
131 arguments so we load the rc-file that our user is running bbkeys with.
134 - long-overdue documentation finessing, thanks to Roman Neuhauser for the
135 patches and suggestions! =:) Also, adding CVS version id's to all source
136 and documentation files, woot! =:) [vanRijn]
138 - cross-compilation patch from Bo Thorsen--moves -lX11 to LIBS [vanRijn]
142 - changing external app launch order--we go bbconf, bbkeysconf,
143 bbkeysConfigGtk, rxvt, xterm... *phew*
145 - fix in stackmenu.cc (hopefully we got it this time?) to fix segfaults
146 on some platforms due to screwy X stuff. *shudder*
151 - patched for matrix-style workspace navigation, updating the 0.3.5 patch written
152 by Markus Ottenbacher (m.ottenbacher@gmx.de) found at
153 http://homepages.compuserve.de/meottenbacher/. Include UpWorkspace,
154 DownWorkspace, LeftWorkspace and RightWorkspace as WithAction() in your
155 ~/.bbkeysrc, and enable the arrangement in rows and columns in your
156 bbkeys.bb as well as in bbpager.bb (usually placed under
157 /usr/local/share/bbtools/) to use this functionality. Bill Beal <beal@tunl.duke.edu>
159 - fixed a bug due to an improper test for next and prev (test for key
160 release). next and prev might just be 0, so we can't do if (next)
161 because the correct index of the grabSet.KeyMap might be 0 for either
162 prevwindow or nextwindow keybinding and it would fail the test and not
163 release the keyboard and not lower the window menu.
165 - fixed a bug for the window list popup menu--sticky window bug where
166 sticky windows would show up twice on their originating windows but not
167 at all on the workspace that you switched from immediately prior to
168 switching to the window where the sticky window is "homed"... =:)
170 - xOr's new "showAllWorkspaces" option lets you see every window that you
171 have on any workspace with an indicator as to what workspace that
172 window is living on.... Very sweet code.
174 - fix for popup window menu... Added "always on top" code so that it
175 stays at top of window stack and won't let blackbox hide it with any
176 other window (as occurs when auto-raise is enabled in blackbox).
179 - bug fixin's--fixed annoying "un-iconify" feature when bbkeys did window
180 cycling, thanks to halt, all else for pointing that one out.... Also,
181 removed REPORT struct from resource.hh which only had auto_raise in it
182 (not sure why it's been there, un-used all this time anyway)....
184 - changed all "friend .*$" to "friend class .*$" to comply with more
185 strict gcc versions.... Thanks to Jan Schaumann for this!
187 - okay. stacked window cycling tweaks. As a visual clue for the
188 stacked-Cycling folks, we now set focus on cycled-through windows as we
189 go, raising the window selected at the end of the cycle. This sounds
190 more confusing than it is. This makes it possible to separate the new
191 and improved cycling method from the popup menu. Oh, and hitting Escape
192 in the middle of cycling will return focus to the window that you
195 - I've made it possible to turn off the visual menu for the new-and-improved
196 stacked cycling method. To do this, just put
197 "bbkeys.menu.showCycleMenu: False" (without the quotes, duh) into your
198 ~/.bbtools/bbkeys.bb or ~/.bbtools/bbkeys.nobb file. This will let
199 bbkeys still use the new method, will set focus as you cycle through the
200 stack, but won't actually raise the window you want until you tell it
201 to by releasing your keys or hitting <Enter>, and won't show the popup
202 window list and cycle through the entries as you go. Again, harder to
203 explain than it is to use....
205 - including README, ChangeLog, and AUTHORS in installed files list
207 - including first man page files (W00T!!) =:). Thanks to Jan Schaumann,
208 bbkeys now has man pages, baybee. Installing now and including files
212 - BIG changes!!! w00T!!! There's some very significant improvements in
213 this version, and as such, I'm calling this version 0.8.0 for various
216 2) I'm thinking we're about "there", and 0.8.0 sounds like more of a
217 non-beta product than 0.3.8
218 3) I feel like it =:)
220 - xOr (see below) has done some majorly good coding with bbkeys. He's
221 implemented a different window-cycling scheme that's more
222 "Windows"-like (think <alt+tab> popup window with list of things you're
223 cycling through)... Verrrry slick. Umm. Did I say Verrrrry?
225 Why, yes I did. You are just going to have to see it to believe it. Blackbox
226 has just again become my favorite window manager for X, with the help
227 xOr has given to me. The window cycling methodology has changed, and
228 believe me, this is a change for the better. There's now two methods
229 of window cycling--both use the same keybindings, so don't get yer
230 panties tied in knots. xOr has implemented a newer, better "old-style"
231 window cycling, called linear cycling. It's basically what
232 blackbox/bbkeys has done up until this point, but with a few
233 significant improvements. But the really exciting new feature in this
234 release of bbkeys is the other way--a "stacked" cycling method. It
235 makes much more sense than the old way. And it's purtier, because you
236 can see what you're window-changing to before you actually go there.
237 And when you hit <alt+tab> (example keybinding--you can have it be
238 whatever you want it to be), it goes back to the window you were on
239 right before this one.
241 It's way cool, uber-neato, and excellently implemented. I'll expand on
242 this more in README, so look there for more details.
244 - xOr has also fixed a bug in LinkedList.cc (as posted to the blackbox
245 mailing list) that affected how the windows were put into the cycling
248 - I'm considering xOr a co-developer now (as long as he has the time and
249 desire, of course), but we've a project available on sourceforge.net at
250 http://sourceforge.net/cvs/?group_id=32563 . Of course, this means
251 that all the usual sourceforge advantages are there, like CVS access,
252 etc. The project is bbconf.sourceforge.net for the time being, so
253 CVS access looks like this:
255 cvs -d:pserver:anonymous@cvs.bbconf.sourceforge.net:/cvsroot/bbconf login
256 <hit enter for password>
257 cvs -z3 -d:pserver:anonymous@cvs.bbconf.sourceforge.net:/cvsroot/bbconf co bbkeys
259 I've imported the bbkeys tree (0.8.0 will be pulled directly from it),
260 and I've also imported a bbconf module. bbconf will be the new
261 all-in-one blackbox configuration utility (if I get some help). =:)
262 To get read-only access to it, do this...
264 cvs -d:pserver:anonymous@cvs.bbconf.sourceforge.net:/cvsroot/bbconf login
265 <hit enter for password>
266 cvs -z3 -d:pserver:anonymous@cvs.bbconf.sourceforge.net:/cvsroot/bbconf co bbconf
268 - adding ToggleDecor as an option to toggle ummmm, window decor.... (duh).
269 *** BIG HONKING NOTE ***
270 This doesn't currently work. =:\ The code is in bbkeys, but can't
271 actually do anything until blackbox is changed to tell us what the
272 decorated state of the window is. Hopefully this will be included in
275 - changing order of configurator launch again, thanks to a bug report
276 from David Lawrence Ramsey (I had " black" instead of "black")--so we
277 now try rxvt before xterm, and rxvt should actually work now....
279 - hopefully fixing strcasecmp issue for AIX boxen--it's in strings.h
280 instead of string.h. Adding check for strings.h.... PLEASE let me
281 know if this doesn't actually fix anything. I'd like to put this guy
284 - Applying patches from Ben Jansens <xor at x-o-r dot net>. His comments
287 I've removed all the functionality from the wminterface class that bbkeys
288 does not use, and reorganised the header files for wminterface and bbkeys,
289 adding comments for all of the class members. With this patch, bbkeys not
290 longer calls the blackbox cycling routines, but maintains its own list of
291 windows, and cycles them itself. One thing to note is that the cycling does
292 not occur in the same order as the buttons on the toolbar cycle. I personally
293 dont think this will be a big issue, and i think the new way is nicer. When a
294 new window opens, its added to the list right *after* the focused window,
295 so that hitting PrevWindow would take you back to the window that was
300 * VERY nice work, Ben. Thanks for your work! *
302 - Bug squashing and fixing galore... Thanks again to Ben for pointing
303 these out. The issue was that we were doing stuff to windows without
304 making sure the window wasn't our root window. Doh! So now we make
305 sure 1) we have a focus_window and 2) that focus_window isn't
306 PointerRoot. Hopefully that will do the trick....
313 - Fixed slight bug in font-loading for label.font and frame.font. As
314 things were, we only looked for TitleFont (a bbtools-specific directive
315 which most probably isn't in most style files), a bbkeys-specific font
316 directive (which was less likely to be found). I added to the search
317 criteria toolbar.font, which for sure will be in every
318 toolbox/bbconf-generated style file and is most probably in every other
319 style file as well. Long story short, fonts should now load according
320 to the individual style used, rather than relying so heavily on
322 - applied patch submitted from MrFab (Scott Garner for the irc-challenged)
323 to manipulate window placement via keypress!!! VERY clean and nice
324 work, MrFab!! And useful, to boot! =:)
325 - reworked and applied patch from Alex (dicerandom @ earthlink dot net)
326 for keystroke-resizing of focused windows. Very nice work, Alex!
328 - reworked fork() section for configurator launch--based on Kyle
329 Donaldson's idea.... We now try bbkeysconf, bbkeysConfigGtk, xterm,
330 rxvt--in that order... Thanks Kyle!
331 - new and improved bbkeysConfigC--better functioning, disclaimer added
332 since we trounce on whatever was in ~/.bbkeysrc, added printout of all
333 available keygrabs now....
336 - Doh!! In the midst of the glorious bug-squashing that 0.3.4 offered, I
337 introduced a new bug (just to see if anybody actually uses my code,
338 erm, or something). =:) I was getting rid of all the strdups that I
339 could and in the process forgot to replace it with a working solution
340 for the ExecCommand part of bbkeys's functionality.
343 - updated Image.cc, Image.hh, BaseDisplay.hh to newest (0.61.0) blackbox
344 files to correct bug that reared its ugly little head when running on
345 SPARC boxen Ultra 5 (Bus Error). Thanks to Tibor Simko for reporting
347 - many bug fixes and killing of leaks =:) thanks to memprof and X
348 man-page reading (shudder). I found quite a few memory leaks (some
349 that bbkeys inherited from the XEmacs code) and discovered some
350 undocumented features that may not qualify as leaks, but the net result
351 was that bbkeys could chew up RAM far more than he should. So, the end
352 result is that bbkeys now has far fewer memory problems. I'm pretty
353 sure that there are more buglets to be found, but that's for when I get
354 bored again, I guess. =:) Thanks to Sean 'Shaleh' Perry for this
355 buglet report (and others too). =:)
356 - updated bbkeysconf--couple of fixes for compiling on solaris....
357 - added -lX11 to the link line (should be there anyway)
358 - changed a QString.left to a QString.at function call
359 - thanks to Bo Thorsen for these buglet-reports! =:)
362 - changes and updates (thanks to nyz for the help!!!) to change the
363 communication Atoms between blackbox-0.60.1 and bbkeys (READ: YOU MUST
364 BE RUNNING BBKEYS 3.3 OR LATER IF YOU USE BLACKBOX 0.60.1 OR LATER)...
367 - Weehee!! Get along, little doggie!! Or something.... Thanks to the
368 man, the myth, the legend, the zzzeek-meister, one of those irritating
369 little problems that I've never had enough interest in fixing has been
370 fixed!! You know the one--where you're going merrily along through your
371 day, using bbkeys happily, when all of a sudden, things appear to have
372 just stopped working altogether. And then you start cursing that
373 darned bbkeys author, and in general, have a horrid day thereafter. Well
374 fear no more, little pilgrim--that "feature" has been hunted down and
375 wrestled to the ground, thanks to zzzeek (classic@io.com). The 'feature'
376 was one that I was never worried about--since it followed blackbox's
377 'feature' that did exactly the same thing. What thing is that? Why,
378 I'm so glad you asked. If you hadn't noticed before, if you have your
379 CapsLock, NumLock, or ShiftLock pressed (or any other funky modifier
380 key pressed), bbkeys stopped performing your key-grabs.
382 Well, anywho, I've rambled enough. I'm going to have bbkeys by default
383 work with any modifiers now. If you want bbkeys to work the way it does
384 now and stop grabbing keys when you have Caps/Num/ShiftLock pressed,
385 you'll have to change this line to True in your bbkeys config file
386 ($HOME/bbtools/bbkeys.bb, not ~/.bbkeysrc):
388 bbkeys.honorModifiers: False
392 - *sigh* My next release is going to not even have a UI. =:) Okay, for
393 those in this world who run blackbox on a 12" monitor (*cough* talmage
394 *cough*), or refuse to upgrade because -miniMe is toooooo big (*cough*
395 luqin *cough), =:) bbkeys now has a new run-time switch "-tinyMe" which
396 will cause bbkeys to draw itself at the old 0.2.7 size.
400 - buglet fix in MakeWindow so we don't XMapWindow every time (thanks nyz!)
401 - alrighty then, the -miniMe controversy continues. kns mentioned an idea
402 for a new miniMe look and I like it. _I_ may even use -miniMe now.
403 =:) Here's the thing, I really don't care at all about -miniMe, since
404 I use him at full-size. If somebody wants to code for this to be a
405 configurable option (bbkeys.keyhole.size or bbkeys.keyhole.width, etc.),
406 I'll be more than happy to look at it.
410 - included new Image classes from the latest blackbox source so luqin's
411 and r00tv's styles work. =:) Oh, it'll help other people too, but
412 they pested me first.
413 - added Workspace9, 10, 11, and 12 to keygrabs and configurator
418 - added MaximizeVertical and MaximizeHorizontal key-grabbability. Don't
419 know why it didn't occur to me earlier. =:) nyz did all the hard work
422 - As of this release of bbkeys, I'm no longer going to support the gtk
423 configurator (unless I get a WHOLE lot of of input to the contrary).
424 I've re-written the gui configurator in qt (thanks to luqin for the
425 beginnings of this) and let me tell you, it is a WHOLE lot easier to
426 work with qt2 than gtk. Much, much cleaner. You doubt?
428 (gideon@judea)[bbkeysConfigGtk/src]-% wc -l *.{c,h}
430 689 bbkeysConfigSig.c
433 139 bbkeysConfigSig.h
437 (gideon@judea)[bbkeys-0.2.7/bbkeysconf-1.1]-% wc -l *.{cc,hh}
445 734 lines of code versus 1588 makes me a happy, happy SE. =:)
447 - So, I'm pulling out the bbkeysConfigGtk directory from the bbkeys source
448 tarball and in its place is bbkeysconf. I'll also be regulaly
449 posting rpms of both bbkeys and bbkeysconf as new releases rear their
450 ugly little heads, as well as one last RPM of bbkeysConfigGtk as well
451 as the tarball for bbkeysConfigGtk if anybody just HAS to have the gtk
454 - As a result of this, the -no[gtk] for bbkeys will change to -no[qt].
456 - Slight buglet fix for bbkeys when he's in iconic mode to properly set
457 WM_ICON_NAME (Thanks to Mats Jonson for the bug-report. =:) ) so bbkeys
458 shows up as bbkeys and not "Unnamed" in blackbox's Icon list.
463 - Weehee!!! Much bug-squashing release!!!
464 - added ability for bbkeys to minimize itself (right-click on bbkeys's
465 "close" button). This should satisfy those of us who would like to not
466 see the beautiful little application I wrote and just use it. *sniff* =:)
467 - added "-iconic" switch, so bbkeys can be launched in minimized mode.
468 Again, *sniff* Nobody likes my pretty window. =:)
469 - fixed a few undocumented features...
470 -- bbkeys queued up all keystroke combos while external gooey configurator
471 was running and then did then all at once, really quick-like when you
472 came back from the configurator. This tended to annoy my users. =:)
473 -- bbkeys wasn't releasing grabbed keys before it launched the
474 configurator, so the configurator wasn't receiving any of the previously
475 grabbed keys. XSync(False) does wonders. =:)
476 - updated bbkeysConfigGtk to allow configuration of ExecCommand directives.
480 - erm. forgot to write in this for a while. =:)
481 - took out timer implementation for ~/.bbkeysrc changing -- this should fix
482 the abnormally high CPU/MEM usage that bbkeys has shown -- and replaced it
483 with a virtual function call to CheckConfig out of BaseDisplay.cc.
484 - thought about changing the configurators, then changed my mind. =:\
488 - fix for bbkeys not pickup up anything for its frame color/texture
489 (thanks to luqin for the patch. =:) )
493 - added ExecCommand feature so users can define programs to execute with
494 a given keystroke. Syntax is as follows:
496 KeyToGrab(F1), WithModifier(Mod1), WithAction(ExecCommand), DoThis(PROGRAM)
498 where PROGRAM is whatever you want to launch. PROGRAM must be in your PATH
499 if it is not given with a path. (duh) =:)
501 - improved the logic (hopefully) surrounding resource loading. Took
502 loadKeygrabs out of reconfigure() (which gets hit on every Expose event)
503 which should improve bbkeys's performance. Also, apparently I've never
504 put in the code that I thought I did which checks ~/.bbkeysrc for changes.
505 That should work correctly now.
510 - fixed several style issues.
512 - fixed the bug with having two "-n" switches. =:) now, "-no[gtk]" is the
513 way to tell bbkeys to launch the xterm-based conflagurator
515 - re-coded bbkeys' internals (made them much more intuitive and easy to read).
516 bbkeys uses 3 basic objects: Window's, GEOM(etry objects), and Pixmap
517 objects. The Windows are physical units of space that X communicates with.
518 The GEOM objects are pretty self-explanatory, x, y, height, width. And
519 the Pixmap objects contain the image that is mapped onto the window itself.
521 ----------------------------------------------------------------------------
522 Windows: GEOMs: Pixmaps: resource->objects and what
523 resources bbkeys uses for them
524 ----------------------------------------------------------------------------
525 win_title geom_title pix_title label.texture
527 win_back geom_back pix_back frame.texture
529 win_closeBtn geom_closeBtn pix_closeBtn button.texture
531 win_configBtn geom_configBtn pix_configBtn button.texture
533 pix_pressedBtn button.texture_pressed
534 window.button.pressed
535 ----------------------------------------------------------------------------
537 - fixed style files in data/ (silly me, I forgot to change them over from
538 bbpager's style files. ) Extra-special thanks to sourceo for pointing
539 this little bit to me and reminding me to put it in the ChangeLog =:)
543 - got rid of all the old bbws code base from bbkeys and ported the whole
544 darned thing to kns's bbpager-0.2.5-alpha code base.
549 - added "-mini-Me" switch =:) for those people *cough* sissies *cough* who
550 complain about bbkeys' size. So size DOES matter.... erm, anyway, if
551 launched with the "-mini-Me" option, bbkeys will draw a cute little window
552 10x10 in size (or whatever I feel like, dangit) containing just the button
553 to launch the configurator, instead of the regular, full-blown window. No
554 exit button for YOU! =:) Let me know if this doesn't suit you....
556 - improved documentation of sorts. Ugly habit, this documentation stuff. If
557 you look in README, you'll now see all of the commands that bbkeys will
558 think about obeying. If it feels like it. And if you ask really, really