This is an old revision of the document!
Table of Contents
Fluxbox
Fluxbox is a very light window manager, highly customizable (look, shortcuts, etc).
Controlling your sound card with the keyboard
Mod4 m :ExecCommand amixer sset Master toggle Mod4 o :ExecCommand amixer sset Master 1+ Mod4 i :ExecCommand amixer sset Master 1- Mod4 Shift o :ExecCommand amixer sset PCM 1+ Mod4 Shift i :ExecCommand amixer sset PCM 1- Mod4 p :ExecCommand xmms -t
Make double-click titlebar maximize the window
Instead of shading the window.
For that, you have to modify the source code of fluxbox. Of course, it is easier if you use a source distribution such as Gentoo (here is explained how to emerge a package and modify sources).
But you just have to modify one line in Window.cc
:
Window.cc:4084 - frame().setOnClickTitlebar(shade_cmd, 1, true); // doubleclick with button 1 + frame().setOnClickTitlebar(maximize_cmd, 1, true); // doubleclick with button 1
Make Meta-Tab switch between all windows
Instead of only switching between visible windows (not minimized).
One more time, you have to modify the source code, this time there are two lines :
FocusControl.cc:71 - (opts & FocusControl::CYCLESKIPSHADED) != 0 && win->isShaded() || - win->isFocusHidden() + (opts & FocusControl::CYCLESKIPSHADED) != 0 && win->isShaded() //|| + //win->isFocusHidden() FocusControl.cc:122 - if (fbwin && !fbwin->isIconic() && + if (fbwin && /*!fbwin->isIconic() &&*/
Patch for double-click maximize and meta-tab
I've written to make the modifications for the two previous tips automatic. To apply the patch, copy it in the parent of the src
folder, and enter :
patch -p0 < fluxbox.maximize.patch
The patch :
diff -r -U 3 src.orig/FocusControl.cc src/FocusControl.cc --- src.orig/FocusControl.cc 2006-07-08 01:00:05.000000000 +0200 +++ src/FocusControl.cc 2006-07-08 00:58:21.000000000 +0200 @@ -71,9 +71,9 @@ // skip if not active client (i.e. only visit each fbwin once) (opts & FocusControl::CYCLEGROUPS) != 0 && win->winClient().window() != winclient.window() || // skip if shaded - (opts & FocusControl::CYCLESKIPSHADED) != 0 && win->isShaded() || + (opts & FocusControl::CYCLESKIPSHADED) != 0 && win->isShaded() //|| // skip if hidden - win->isFocusHidden() + // win->isFocusHidden() ); } @@ -122,7 +122,7 @@ break; FluxboxWindow *fbwin = (*it)->fbwindow(); - if (fbwin && !fbwin->isIconic() && + if (fbwin && /*!fbwin->isIconic() &&*/ (fbwin->isStuck() || fbwin->workspaceNumber() == m_screen.currentWorkspaceID())) { // either on this workspace, or stuck diff -r -U 3 src.orig/Window.cc src/Window.cc --- src.orig/Window.cc 2006-07-08 01:00:06.000000000 +0200 +++ src/Window.cc 2006-07-08 00:58:21.000000000 +0200 @@ -4084,7 +4084,7 @@ // setup titlebar frame().setOnClickTitlebar(raise_and_focus_cmd, 1, false, true); // on press with button 1 - frame().setOnClickTitlebar(shade_cmd, 1, true); // doubleclick with button 1 + frame().setOnClickTitlebar(maximize_cmd, 1, true); // doubleclick with button 1 frame().setOnClickTitlebar(show_menu_cmd, 3); // on release with button 3 frame().setOnClickTitlebar(lower_cmd, 2); // on release with button 2