\n"; ?>
Linux auf dem Desktop

Blackbox, the best Window Manager - Part 3

Mario Behnke

First of all, I would like to thank you for the big amount of positive as well as critical feedback I have received. I will try to take all requests into consideration. Therefore, the issues we will deal with in this article are the following:

  • The "Slit"
  • Blackbox tools (BBTools)
  • Mini-FAQ
  • What comes next?

The "Slit"

The "slit" is a desktop area where mini programs (the so-called Dockapps or dockable applications) can be stored. In order to be stored in the slit, the corresponding tools must be started with certain parameters.

For example, to start BBdate in the slit you must execute the following command with the parameter-w:

 bbdate -w

The parameter -w allows BBdate to be started in the slit. It's as easy as that! :-). You may think: "That's indeed a silly position!". I agree with you, but the solution to this problem is as easy as Blackbox itself. The slit has its own menu to control the position, direction and behavior. To access it you just have to click with the right mouse button on the slit's outermost border.

The slit presents an advantage as compared to simple "sticking". The slit can be hidden, i.e. it completely vanishes from the desktop except for a small border. If you point to this border with the mouse cursor, it will appear again.

BBtools are not the only "slitable" ones, there are still some more. I can mention at least the following:

Blackbox Tools

The Blackbox tools are small applications that simplify or merely embellish the use of Blackbox

If you have already installed the package bbtools (see Part 1 of this article series), you have the following Blackbox tools already "on board":

  • bbdate - displays the current date in a small window
  • bbpager - shows with outlines the programs on individual workspaces
  • bbtime - displays the current time in a small window
  • bbkeys - keygrabber that executes commands
  • bbmail - mailbiff
  • bbppp - shows the Internet connection status
  • bbsload - shows the system load

At this stage I would like to refer you to the current bbtools RPM for SuSE Linux 7.2, which can be downloaded at:
ftp://ftp.suse.com:/pub/people/mmj/7.2-rpm/bbtools-2001.7.18-0.i386.rpm. It differs from the version contained in your SuSE Linux in that it also includes bbrun, a small program starter.

Here you can find additional or even new Blackbox tools.

Since I cannot expand on most of BB tools because I don't use them myself, I will go deeply into the following one only - as for the rest, "the proof of the pudding is in the eating" :o)

BBkeys

BBkeys is actually my pet :-) Without it, I would not be so keen on using Blackbox, since I am a bit of a "keyboard fetishist". Well, don't get me wrong. What I mean is that I am fed up with constantly having to grab at the mouse when it is not necessary.

bbkeys allows you to assign instructions and commands to the keys.

The best way to configurate it is by means of the small graphical frontend named bbkeysconfig. You can download the rpm package at this page. Just install it as user root (rpm -Uhv /pfad/zum/rpm/bbkeysconf-1.3-1.i386.rpm) or with YaST, and then start as user bbkeysconf. Its use is quite intuitive once you have understood the somewhat "peculiar" button descriptions.

Just a couple of instructions before going ahead:

  1. "Action" allows you to select the action you want to execute with the shortcut key.
  2. Now click on "Grab Key" and introduce the selected shortcut.
  3. Repeat this action until you are completely satisfied with your menu.
  4. Finally you can save your menu with "Hey wow! Save this puppy!" and quit the configurator with "Let me out!"

Needless to say, the whole procedure can also be done "the hard way" by creating a .bbkeysrc in your home directory.

 vi ~/.bbkeysrc

This example's goal is to start an xterm with the shortcut key Alt+x. .bbkeysrc syntax looks like this:

 INITIAL KEY, MODIFICATOR KEY, ACTION, COMMAND

In our xterm example, the line will look like this:

 KeyToGrab(x), WithModifier(Mod1), WithAction(ExecCommand), DoThis(xterm)

The following actions can also be assigned to keys or shortcut keys:

  • Minimize - minimize window
  • Raise - move window to foreground
  • Lower - move window to background
  • Close - close window
  • Workspace1 - change to workspace 1
  • Workspace2 - change to workspace 2
  • Workspace3 - change to workspace 3
  • Workspace4 - change to workspace 4
  • Workspace5 - change to workspace 5
  • Workspace6 - change to workspace 6
  • Workspace7 - change to workspace 7
  • Workspace8 - change to workspace 8
  • Workspace9 - change to workspace 9
  • NextWorkspace - change to next workspace
  • PrevWorkspace - change to previous workspace
  • NextWindow - change to next window
  • PrevWindow - change to previous window
  • ShadeWindow - fold up window
  • MaximizeWindow - maximize window
  • StickWindow - stick window
  • MaximizeVertical - horizontally maximize window
  • MaximizeHorizonta - vertically maximize window
  • ExecCommand - execute command (followed by DoThis(COMMAND) )

You can have a look at the finished configuration file here and download it if you want to. After downloading, save it without the .txt end in your home directory under .bbkeysrc.

To make bbkeys start when you log in, you will have to modify .xinitrc in this way:

 vi ~/.xinitrc

At the end of this file you can find this section:

     ...

     # day planer deamon
     # pland &
     
     
     #
     # finally start the window manager
     #
     exec $WINDOWMANAGER

This section must be edited as follows:

     ...
     
     # day planer deamon
     # pland &
     
     #
     # do personal things 
     #
     test -e ~/.xinitrc.local && . ~/.xinitrc.local
     
     #
     # finally start the window manager
     #
     exec $WINDOWMANAGER

Now create a .xinitrc.local and type the following:

 vi .xinitrc.local
 bbkeys -w -m &     (minimize bbkeys (-m) and save in the slit (-w))

What we have just done is to build something similar to a Window$ autostart function. Now you just have to log out, log in again, and be happy :-)

Mini-FAQ

The following questions have been taken from the feedback I have received so far.

I would like to read an additional article about background images.

I would like to refer you to the Part 2 of this article series. Particularly the section Themes can be recommended for this purpose. The selected background picture must be saved in directory ~/.blackbox/Backgrounds/ and a suitable theme from the style file (~/.blackbox/Styles/) must be assigned to the background in this way:

rootCommand: xv -root -quit -smooth -max 
~/.blackbox/Backgrounds/mybackground.jpg
Please notice that this command has been splitted in two lines due to space reasons only.

I would like to know if a menu bar with the most important applications can be integrated in Blackbox ...

If what you mean is a menu bar à la KDE, the answer is definitely _no_ . BB is, in fact, perfect the way it is. I think the BB tools are a nice complement, but you do not need them; BB runs also like this. However, if you cannot do without them, I would recommend you tkdesk (SuSE Linux Distribution Serie tcl).

... and if there are any programs especially written for BB ...

No. I think the BB tools are the only exception, although these can also be regarded as a plugin for BB.

...and what the future development looks like or it will be further developed at all.

Unfortunately I am not a Blackbox developer :-( . But, as well as many others, I hope that someday BB will be further developed.

I have accidentally displayed a menu and I can only remove it from the desktop with much effort.

It couldn't be easier :o). Just click with the right mouse button on a folded up menu and ... gone.

What comes next?

I would like to thank again all those who have written to me and provided me with _small_ and BIG tips.

Will there be more articles about Blackbox?

I would really like to write an article again but, unfortunately, I have run out of material concerning BB. Any questions, suggestions, requests? You just have to send an e-mail to: .

\n"; ?>