My favourite Window Manager in linux, Blackbox, has a windows relative:
Blackbox4Windows.
It is a lean window manager, with the emphasis on lean. Did I say I consider it
being a lean window manager? Of course it looks nice as well (featuring window
skinning by using a plugin). Support is great - choose between the
forum,
a wiki and a
mailing list
(Archives). Here
is the FAQ. Also, there's an impressive list of plugins, too much for me to keep track of (but you can find
some that I am using below, along with their configuration examples). (The Plugins even have
a forum
of their own now!)
Finally, if you want to have the latest version with often very cool new features, but
possibly a bit less well tested than the official releases, then have a look at the
nightlies.
(That's just short for nightly build, something compiled off the latest code as it is
almost in-between the hands of the developers.) I've made very good experiences with it.
Care to have a look first?
|
|
| BB4win 0.90 nightly
with the following plugins:
BBKeys, BBNote, BBSystemBarEx, BBwinskin, BBpager, BBIcons,
BBSlit, BBSysmon and Multiamp More on the other tools visible in the screenshot below. |
As you might know, Explorer.exe is not only working as a file manager in your windows
box, but also as a "shell", that means as the program in charge of handling the User
Interface, along with all the windows, mouse and keyboard handler etc. This one is the
one we're going to be be replacing.
Normally, you'd just launch a "blackbox.exe --install" and that will replace
your current shell (normally explorer.exe) with blackbox. But I'd much more recommend
using another tool, ShellOn (or
anyone with similar function), to allow you to select at boot-time which shell to use.
So you can easily log into explorer.exe if something goes wrong or you need something
that you think only explorer.exe can provide. So let's assume you're going along:
session.screen0.slit.placement: CenterRight
session.screen0.slit.direction: Vertical
session.screen0.slit.onTop: true
session.screen0.slit.autoHide: true
session.screen0.toolbar.alpha.value: 100
session.screen0.toolbar.onTop: true
session.screen0.toolbar.autoHide: false
session.screen0.toolbar.placement: BottomCenter
session.screen0.toolbar.widthPercent: 0
session.screen0.workspaces: 3
session.screen0.focusLastWindow: true
session.screen0.windowPlacement: SmartPlacementColumns
session.screen0.colPlacementDirection: TopToBottom
session.screen0.workspaceNames: work,office,mmedia
session.screen0.focusNewWindows: false
session.screen0.rowPlacementDirection: RightToLeft
session.screen0.fullMaximization: false
session.screen0.strftimeFormat: %#d.%#m.%y - %H:%M
session.screen0.edgeSnapThreshold: 20
session.screen0.focusModel: SloppyFocus
session.styleFile: C:\Programme\Tools\Shell\Blackbox\Styles\northsea
session.cacheLife: 5
session.cacheMax: 200
session.opaqueMove: false
session.menuFile: C:\Programme\Tools\Shell\Blackbox\menu.rc
session.colorsPerChannel: 4
session.imageDither: false
session.autoRaiseDelay: 400
*/.blackbox/=c:/programme/tools/shell/blackbox
*/.blackbox/backgrounds=styles/backgrounds
c:\blackbox\backgrounds\=styles/backgrounds
*blackbox=./
=styles/backgrounds/
blackbox.workspace.wheeling: true
blackbox.appearance.bullet.unix: true
blackbox.appearance.metrics.unix: true
blackbox.editor: "C:\Programme\Tools\Shell\Blackbox\Plugins\bbnote103.exe"
blackbox.tasks.followActive: false
blackbox.tasks.currentOnly: true
blackbox.slit.transparenxy: true
blackbox.slit.alpha: 160
blackbox.menu.transparency: true
blackbox.menu.alpha: 220
blackbox.menu.scrollSpeed: 10
blackbox.submenu.openDelay: 40
! blackbox.windowHooks: true
Plugins\BBDDE.dll
Plugins\BBKeys.dll
Plugins\BBPager.dll
Plugins\BBSystemBarEx.dll
&Plugins\BBIcons.dll
Plugins\BBSlit.dll
&Plugins\BBSysmon.dll
Plugins\BBnote.dll
Plugins\multiamp.dll
&Plugins\BBWinskin.dll
[begin] (Bang!)
[exec] (Explorer) {c:\W2k\explorer.exe}
[exec] (X-File) {c:\programme\tools\xpt\2004\x-file.exe}
[exec] (Xplorer²) {c:\programme\tools\shell\x2\xplorer2.exe}
[exec] (CommandPrompt) {c:\w2k\system32\cmd.exe}
[exec] (X-Pad) {c:\programme\tools\xpt\2004\x-pad.exe}
[exec] (UEdit) {c:\programme\tools\editing\ultraedit\uedit32}
[exec] (BBNote) {c:\programme\tools\shell\blackbox\Plugins\bbnote103.exe}
[exec] (InCtrl5) {c:\programme\tools\cleaning\InCtrl5\inctrl5.exe}
[exec] (GPGTray) {c:\programme\tools\privacy\GnuPG\GPGShell\gpgtray.exe}
[nop] (------)
[path] (Net) {"C:\Dokumente und Einstellungen\All Users\Startmenü\Net"}
[path] (Tools) {"C:\Dokumente und Einstellungen\All Users\Startmenü\Tools"}
[path] (Sec) {"C:\Dokumente und Einstellungen\All Users\Startmenü\Sec"}
[path] (Updates) {"C:\Dokumente und Einstellungen\All Users\Startmenü\Updates"}
[path] (Programme) {"C:\Dokumente und Einstellungen\All Users\Startmenü\Programme}
[path] (Desktop) {"C:\Dokumente und Einstellungen\Administrator\Desktop"}
[nop] (------)
[workspaces] (Workspaces)
[submenu] (blackbox)
[exec] (Control Panel) {c:\w2k\explorer.exe /root,,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}}
[config] (Configure Blackbox)
[submenu] (Default Shell)
[exec] (install Blackbox) {C:\Programme\Tools\Shell\Blackbox\Blackbox.exe -install}
[exec] (uninstall Blackbox) {C:\Programme\Tools\Shell\Blackbox\Blackbox.exe -uninstall}
[end]
[stylesmenu] (Styles) {C:\Programme\Tools\Shell\Blackbox\Styles}
[submenu] (Docs)
[exec] (Readme) {C:\Programme\Tools\Shell\Blackbox\Docs\index.html}
[exec] (Change Log) {C:\Programme\Tools\Shell\Blackbox\Docs\changes.txt}
[exec] (License) {C:\Programme\Tools\Shell\Blackbox\Docs\license.html}
[exec] (About Blackbox) {C:\Programme\Tools\Shell\Blackbox\Blackbox.exe -help}
[aboutplugins] (About Plugins)
[aboutstyle] (about style)
[end]
[exec] (Toggle SoundEffects) {@bbsfxToggle}
[toggleplugins] (Toggle Plugins)
[editplugins] (Edit plugins.rc)
[editextensions] (Edit extensions.rc)
[editmenu] (edit menu.rc)
[editstyle] (edit style)
[reconfig] (reconfigure)
[restart] (restart)
[exit] (exit blackbox)
[end]
[submenu] (Shutdown Menu)
[lockworkstation] (Lock Workstation)
[shutdown] (Shutdown)
[reboot] (Reboot)
[logoff] (Log Off)
[hibernate] (Hibernate)
[suspend] (Suspend)
[exit] (exit just blackbox)
[end]
[nop] (------)
[shutdown] (Shutdown)
[end]
Until I am going to find the time to document the settings in these configuration files, I'd suggest reading the dox/faq/searching the forums for detailed information about what settings affect what behaviour. I've just posted them above so you can see what is a running (well, at least in my case, that is) setup, get an idea of how (easily) bb can be configured and maybe draw some inspiration from it.
Then, there's my only very very slightly
modified version of the northsea style along with the corresponding
wallpaper image (to be put in
$BLACKBOXDIR/styles and $BLACKBOXDIR/styles/backgrounds, respectively).
More styles can be found at the usual places: themes.freshmeat.net, deviantart.org etc.
BBKeys is a plugin which allows you to define keyboard shortcuts for all kinds of things: regular commands like launching a program (I'm using Ctrl+Alt+Shift+O to launch Opera, e.g.), switch between workspaces (e.g. with Ctrl+Alt+Shift+Left/Right), adjust sound volume, handle windows (make them larger, wider, smaller, always-on-top, minimize etc.) and now even send special Blackbox commands called Bro@ms that allow you to access even more cool things (like special features of other plugins).
Here's my $BLACKBOXDIR/plugins/bbkeys.rc:
KeyToGrab(Left), WithModifier(Alt+Ctrl+Shift), WithAction(PrevWorkspace)
KeyToGrab(Right), WithModifier(Alt+Ctrl+Shift), WithAction(NextWorkspace)
KeyToGrab(Up), WithModifier(Alt+Ctrl+Shift), WithAction(ShadeWindow)
! This moves the current window to another wspace, not pixel-wise in it.
KeyToGrab(Left), WithModifier(Win), WithAction(MoveWindowLeft)
KeyToGrab(Right), WithModifier(Win), WithAction(MoveWindowRight)
KeyToGrab(F2), WithModifier(Alt), WithAction(Run)
KeyToGrab(F6), WithModifier(), WithAction(ShowMenu)
KeyToGrab(F6), WithModifier(Shift), WithAction(ShowWorkspaceMenu)
KeyToGrab(F10), WithModifier(Win), WithAction(Logoff)
KeyToGrab(F10), WithModifier(Ctrl+Win), WithAction(LockWorkstation)
KeyToGrab(F11), WithModifier(Win), WithAction(Reboot)
KeyToGrab(F11), WithModifier(Ctrl+Win), WithAction(Restart)
KeyToGrab(F12), WithModifier(Win), WithAction(Shutdown)
KeyToGrab(F12), WithModifier(Ctrl+Win), WithAction(Hibernate)
KeyToGrab(F12), WithModifier(Alt+Win), WithAction(Suspend)
KeyToGrab(2), WithModifier(Ctrl+Shift+Alt), WithAction(ExecCommand), DoThis(C:\Programme\Tools\Shell\x2\xplorer2.exe)
KeyToGrab(3), WithModifier(Ctrl+Shift+Alt), WithAction(ExecCommand), DoThis(C:\Programme\Security\Scanner\TroDefSuite-3\trods-drei.exe)
KeyToGrab(B), WithModifier(Ctrl+Shift+Alt), WithAction(ExecCommand), DoThis(C:\Programme\MultiMedia\FooBar\foobar2000\foobar2000.exe)
KeyToGrab(D), WithModifier(Ctrl+Shift+Alt), WithAction(ExecCommand), DoThis(c:\w2k\system32\cmd.exe)
KeyToGrab(D), WithModifier(Win), WithAction(ExecCommand), DoThis(c:\w2k\system32\control.exe desk.cpl)
KeyToGrab(E), WithModifier(Win), WithAction(ExecCommand), DoThis(c:\w2k\explorer.exe /e,c:\)
KeyToGrab(F), WithModifier(Ctrl+Shift+Alt), WithAction(ExecCommand), DoThis(C:\Programme\MultiMedia\FooBar\foobar2000\foobar2000.exe)
KeyToGrab(G), WithModifier(Win), WithAction(GatherWindows)
KeyToGrab(H), WithModifier(Win), WithAction(MaximizeHorizontal)
KeyToGrab(I), WithModifier(Ctrl+Shift+Alt), WithAction(ExecCommand), DoThis(C:\Programme\Tools\Shell\WonderfulIcon\wonderfl.exe)
KeyToGrab(K), WithModifier(Ctrl+Shift+Alt), WithAction(ExecCommand), DoThis(C:\Programme\NEt\Browser\K-Meleon\k-meleon.exe)
KeyToGrab(K), WithModifier(Win), WithAction(ExecCommand), DoThis(c:\programme\tools\shell\blackbox\Plugins\bbnote103.exe c:\programme\tools\shell\blackbox\plugins\bbkeys.rc)
KeyToGrab(M), WithModifier(Ctrl+Shift+Alt), WithAction(ExecCommand), DoThis("C:\Programme\Net\Mail & News\MailWasher\MailWasher.exe")
KeyToGrab(M), WithModifier(Win), WithAction(EditMenu)
KeyToGrab(N), WithModifier(Ctrl+Shift+Alt), WithAction(ExecCommand), DoThis(c:\programme\tools\shell\blackbox\Plugins\bbnote103.exe)
KeyToGrab(N), WithModifier(Win), WithAction(Minimize)
KeyToGrab(O), WithModifier(Ctrl+Shift+Alt), WithAction(ExecCommand), DoThis(C:\Programme\Net\Browser\Opera\Opera.exe /nosplashscreen)
KeyToGrab(P), WithModifier(Ctrl+Shift+Alt), WithAction(ExecCommand), DoThis(C:\Programme\Net\Proxomitron\Proxomitron.exe)
KeyToGrab(P), WithModifier(Win), WithAction(EditPlugins)
KeyToGrab(P), WithModifier(Ctrl+Win), WithAction(TogglePlugins)
KeyToGrab(Q), WithModifier(Win), WithAction(Quit)
KeyToGrab(R), WithModifier(Win), WithAction(Run)
KeyToGrab(R), WithModifier(Win+Alt), WithAction(Restart)
KeyToGrab(R), WithModifier(Ctrl+Win), WithAction(Reconfigure)
KeyToGrab(S), WithModifier(Ctrl+Shift+Alt), WithAction(ExecCommand), DoThis(C:\Programme\Tools\Shell\ShellWM\shellwm.exe)
KeyToGrab(S), WithModifier(Win), WithAction(EditStyle)
KeyToGrab(T), WithModifier(Win), WithAction(ExecCommand), DoThis(@BBTrans WindowToggle)
KeyToGrab(T), WithModifier(Ctrl+Win), WithAction(ToggleTray)
KeyToGrab(U), WithModifier(Ctrl+Shift+Alt), WithAction(ExecCommand), DoThis(C:\Programme\Tools\Editing\Ultraedit\uedit32.exe)
KeyToGrab(V), WithModifier(Win), WithAction(MaximizeVertical)
KeyToGrab(W), WithModifier(Ctrl+Shift+Alt), WithAction(ExecCommand), DoThis("C:\Programme\Apps\MS Office\Office\Winword.exe")
KeyToGrab(W), WithModifier(Win), WithAction(ExecCommand), DoThis(C:\Programme\MultiMedia\Winamp\winamp.exe)
KeyToGrab(X), WithModifier(Ctrl+Shift+Alt), WithAction(ExecCommand), DoThis(C:\Programme\Tools\XPT\2004\x-pad.exe)
KeyToGrab(X), WithModifier(Win), WithAction(MaximizeWindow)
KeyToGrab(Z), WithModifier(Ctrl+Shift+Alt), WithAction(ExecCommand), DoThis(C:\Programme\Tools\XPT\2004\x-file.exe)
KeyToGrab(1), WithModifier(Win), WithAction(Workspace1)
KeyToGrab(2), WithModifier(Win), WithAction(Workspace2)
KeyToGrab(3), WithModifier(Win), WithAction(Workspace3)
KeyToGrab(PageUp), WithModifier(Win), WithAction(Raise)
KeyToGrab(PageDown), WithModifier(Win), WithAction(Lower)
KeyToGrab(Delete), WithModifier(Win), WithAction(Close)
KeyToGrab(Insert), WithModifier(Win), WithAction(StickWindow)
KeyToGrab(Home), WithModifier(Win), WithAction(ExecCommand), DoThis(http://desktopian.org/bb/)
KeyToGrab(End), WithModifier(Win), WithAction(ExecCommand), DoThis(@bbsfxToggle)
KeyToGrab(Pause), WithModifier(Win), WithAction(ExecCommand), DoThis(control.exe sysdm.cpl)
KeyToGrab(#), WithModifier(Ctrl+Win), WithAction(ExecCommand), DoThis(@maPower)
KeyToGrab(Enter), WithModifier(Ctrl+Win), WithAction(ExecCommand), DoThis(@maPlay)
KeyToGrab(Spacebar), WithModifier(Ctrl+Win), WithAction(ExecCommand), DoThis(@maPause)
KeyToGrab(Left), WithModifier(Ctrl+Win), WithAction(ExecCommand), DoThis(@maPrev)
KeyToGrab(Right), WithModifier(Ctrl+Win), WithAction(ExecCommand), DoThis(@maNext)
KeyToGrab(Add), WithModifier(Ctrl+Win), WithAction(ExecCommand), DoThis(@maOpenFile)
KeyToGrab(Mul), WithModifier(Ctrl+Win), WithAction(ExecCommand), DoThis(@maMenu)
KeyToGrab(Up), WithModifier(Ctrl+Win), WithAction(ExecCommand), DoThis(@maVolumeUp)
KeyToGrab(Down), WithModifier(Ctrl+Win), WithAction(ExecCommand), DoThis(@maVolumeDown)
! KeyToGrab(Num0), WithModifier(Ctrl+Win), WithAction(ExecCommand), DoThis(@maStop)
BBNote is both a plugin and an executable program. The executable program is a lightweigth text editor, perfectly suited to edit those small text configuration files. The plugin is loaded into blackbox and has bb call the executable for some standard editing tasks.
BBNote has been around for a very long time, and, unlike most other plugins,
the settings are specified in a bbnote.ini file, whereas the bbnote.rc file contains
style specs.
So, first, here is my $BLACKBOXDIR/plugins/bbnote.ini:
[bbnote]
textfont=lucida console
textfontsize=10
textfontweight=400
open_new_window=0
smarttabs=0
writetabs=1
tabsize=4
wrapcursor=0
mousewheel=10
wx0=318
wy0=69
wxl=704
wyl=489
searchfor=.rc
replaceby=
searchmode=0
lastdirectory=C:\Programme\Tools\Shell\Blackbox\Plugins
Then, here's my $BLACKBOXDIR/plugins/bbnote.rc:
(you might want to experiment, possibly bbnote can also read in the settings
of bb's main style and you don't have to specify something there. just try
what happens when you rename the file. If you don't like the result, simply put
the file back in place.)
style.name: bbnote.rc
style.author: grischk
style.date: 02/2003
style.credits:
style.comments: stylefile for BBNote
toolbar: raised bevel1 solid
toolbar.color: black
toolbar.textcolor: #adaeaf
toolbar.justify: center
toolbar.font: tahoma
toolbar.fontheight: 12
toolbar.fontweight: 700
toolbar.label: flat solid
toolbar.label.color: black
toolbar.label.textcolor: #aeadae
toolbar.windowlabel: flat solid
toolbar.windowlabel.color: #454647
toolbar.windowlabel.textcolor: white
toolbar.clock: flat solid
toolbar.clock.color: black
toolbar.clock.textcolor: #adaeaf
toolbar.button: flat solid
toolbar.button.color: #777674
toolbar.button.piccolor: #c5c4c5
toolbar.button.pressed: flat solid
toolbar.button.pressed.color: #808181
toolbar.button.pressed.piccolor: #e1e1e2
menu.title: flat solid
menu.title.color: #5d5c5d
menu.title.textcolor: #c5c5c3
menu.title.justify: left
menu.title.font: tahoma
menu.title.fontheight: 12
menu.title.fontweight: 700
menu.frame: flat solid
menu.frame.color: gray22
menu.frame.textcolor: #e5e5e4
menu.frame.justify: left
menu.frame.font: tahoma
menu.frame.fontheight: 12
menu.frame.fontweight: 400
menu.hilite: flat solid
menu.hilite.color: gray60
menu.hilite.textcolor: white
menu.bullet: triangle
menu.bullet.position: right
borderwidth: 1
bordercolor: #868687
bevelwidth: 0
rootcommand: bsetroot -solid #0b0b0b
BBSystemBarEx Descr.
BBSystemBarEx Config
BBPager Descr.
BBPager Config
BBIcons Descr.
BBIcons Config
BBSlit Descr.
BBSlit Config
BBSysmon Descr.
BBSysmon Config
MultiAmp Descr.
MultiAmp Config