# NOTE: at any given time, some of these may only work in git: # git clone git://git.fluxbox.org/fluxbox.git # cd fluxbox # ./autogen.sh # ./configure && make install # turn on/off keybindings Control Escape :KeyMode Xnest Control Escape Xnest: Control Mod1 Delete :MacroCmd {Close} {KeyMode default} # mouse bindings OnWindow Mod4 Mouse1 :MacroCmd {Focus} {Raise} {StartMoving} OnWindow Mod4 Mouse2 :Lower OnWindow Mod4 Mouse3 :StartResizing NearestCorner OnDesktop Mouse1 :HideMenus OnDesktop Mouse3 :RootMenu OnDesktop Shift Mouse3 :CustomMenu ~/.fluxbox/fbgmenu OnDesktop Control Mouse3 :WorkspaceMenu OnDesktop Mod1 Mouse3 :ClientMenu OnDesktop Mouse4 :PrevWorkspace OnDesktop Mouse5 :NextWorkspace OnToolbar Mouse4 :PrevWindow {static groups} (iconhidden=no) OnToolbar Mouse5 :NextWindow {static groups} (iconhidden=no) OnTitlebar Double Mouse1 :Shade OnTitlebar Control Mouse1 :StartTabbing OnTitlebar Mouse2 :Lower OnTitlebar Mouse3 :WindowMenu OnTitlebar Mouse4 :PrevTab OnTitlebar Mouse5 :NextTab OnTitlebar Control Mouse4 :ShadeOn OnTitlebar Control Mouse5 :ShadeOff # programs # if not open, open one; else, focus/cycle through programs of that type Mod4 t :If {Some Matches (mrxvt) (workspace=[current])} {NextWindow (mrxvt)} {Exec mrxvt} Mod4 x :If {Some Matches (title=Xephyr.*)} {NextWindow (title=Xephyr.*)} {Exec Xephyr -screen 1280x783 :1 & sleep 1; DISPLAY=":1" git-fluxbox -log ~/.fluxbox/git-log} Mod4 n :If {Some Matches (name=textShell) (workspace=[current])} {NextWindow (name=textShell)} {Exec nedit} Mod4 g :If {Some Matches (gimp)} {NextWindow (gimp)} {Exec gimp} Mod4 f :If {Some Matches (name=Navigator) (workspace=[current])} {NextWindow (name=Navigator)} {Exec firefox} !Mod4 f :If {Some Matches (name=Navigator) (workspace=[current])} {NextWindow (name=Navigator)} {Exec env LD_LIBRARY_PATH="/home/mark/src/firefox" MOZ_PLUGIN_PATH="/usr/lib/nsbrowser/plugins" ~/src/firefox/firefox-bin} Mod4 p :If {Some Matches (pidgin)} {NextWindow (pidgin)} {Exec pidgin} Mod4 o :If {Some Matches (opera) (workspace=[current])} {NextWindow (opera)} {Exec opera} Mod4 m :If {Some Matches (.*maple.*) (workspace=[current])} {NextWindow (.*maple.*)} {Exec xmaple} # open a new one every time Mod1 x :Exec xterm Mod4 c :Exec xcalc # set pidgin away message Mod4 a :Exec a=`fbrun -print -title 'Enter Away Message' -text 'better not tell you now'`; while [ "x${a}" != "x" ]; do purple-remote "setstatus?status=away&message=${a}"; a=`fbrun -print -title 'Enter Away Message' -text "${a}"`; done; purple-remote 'setstatus?status=available&message=' # environmental settings # screenshots Print :Exec import -window root ~/misc/screenshot$(date +%F,%T).png Mod4 Print :Exec import -frame -window $(xprop _NET_ACTIVE_WINDOW -root | awk '{print $5}') ~/misc/screenshot$(date +%F,%T).png # volume controls Mod1 Prior :Exec amixer sset Master,0 1+; pkill osd_cat; amixer sget Master,0 | grep -o '\[.*%\]' | osd_cat -l 2 -f -*-lucida-bold-r-*-*-34-*-*-*-*-*-*-* -p bottom -c green Mod1 Next :Exec amixer sset Master,0 1-; pkill osd_cat;amixer sget Master,0 | grep -o '\[.*%\]' | osd_cat -l 2 -f -*-lucida-bold-r-*-*-34-*-*-*-*-*-*-* -p bottom -c green Mod1 End :Exec amixer sset Master,0 toggle; pkill osd_cat; if [ "x$(amixer sget Master,0 | grep '\[on')" = "x" ]; then echo "Mute" | osd_cat -l 1 -f -*-lucida-bold-r-*-*-34-*-*-*-*-*-*-* -p bottom -c green; else amixer sget Master,0 | grep -o '\[.*%\]' | osd_cat -l 2 -f -*-lucida-bold-r-*-*-34-*-*-*-*-*-*-* -p bottom -c green; fi # blank the display # needed to `chmod 4755 /usr/sbin/radeontool; ln -s /usr/sbin/radeontool /usr/bin/radeontool` first Pause :Exec xset dpms force off Mod4 Pause :Exec if [ $(radeontool light | awk '{print $5}') = "on" ]; then radeontool light off; else radeontool light on; fi # print battery life Shift F3 :Exec pkill osd_cat; perl -e 'print (int(0.5+100*`cat /sys/class/power_supply/BAT1/charge_now`/`cat /sys/class/power_supply/BAT1/charge_full`), "%\n");' | osd_cat -l 1 -f -*-lucida-bold-r-*-*-34-*-*-*-*-*-*-* -p bottom -c green # print date and time Shift F1 :Exec pkill osd_cat; date | osd_cat -l 1 -f -*-lucida-bold-r-*-*-34-*-*-*-*-*-*-* -p bottom -c green # print current weather Shift F2 :Exec pkill osd_cat; wget 'http://rss.weather.com/weather/rss/local/92092' -O /dev/stdout 2> /dev/null | grep ' °' | sed -e 's,.*/>\(.*\)°.*,\1F,' | osd_cat -l 1 -f -*-lucida-bold-r-*-*-34-*-*-*-*-*-*-* -p bottom -c green # turn on and off background Shift F5 :ToggleCmd {Exec fbsetroot -solid black} {Exec fbsetbg -l} # turn on and off transparency Shift F4 :Exec if pgrep xcompmgr; then pkill xcompmgr; else xcompmgr & fi # change resolution Shift F8 :Exec if xrandr | grep 2880x900.*\\*; then xrandr -s 1280x800; else xrandr -s 2880x900; fi # fluxbox commands Menu :RootMenu Shift Menu :CustomMenu ~/.fluxbox/fbgmenu Control Mod1 Delete :Quit Mod4 r :Reconfigure Control Mod1 r :Restart Control Mod1 d :Restart git-fluxbox -log ~/.fluxbox/git-log Control Mod1 f :Restart fluxbox -log ~/.fluxbox/log Control Mod1 s :Restart sfluxbox -l ~/.sfluxbox/log Control Mod1 t :Restart ~/fluxbox-1.1.0/src/fluxbox # workspace commands Control Menu :WorkspaceMenu Control F1 :Workspace 1 Control F2 :Workspace 2 Control F3 :Workspace 3 Control F4 :Workspace 4 Control F5 :Workspace 5 Control F6 :Workspace 6 Control F7 :Workspace 7 Control F8 :Workspace 8 Control F9 :Workspace 9 Control F10 :Workspace 10 Control F11 :Workspace 11 Control F12 :Workspace 12 Mod4 d :ShowDesktop Mod1 Tab :If {Some Matches (urgent=yes) (workspace=[current])} {Focus (urgent=yes) (workspace=[current])} {NextWindow {groups}} Mod1 Shift Tab :PrevWindow {groups} Mod1 grave :If {Some Matches (urgent=yes) (workspace=[current])} {Focus (urgent=yes) (workspace=[current])} {NextWindow {groups}} Mod1 Shift grave :PrevWindow {groups} # go to the nth window in the iconbar # F1 :GoToWindow 1 {static groups} (iconhidden=no) # F2 :GoToWindow 2 {static groups} (iconhidden=no) # F3 :GoToWindow 3 {static groups} (iconhidden=no) # F4 :GoToWindow 4 {static groups} (iconhidden=no) # F5 :GoToWindow 5 {static groups} (iconhidden=no) # F6 :GoToWindow 6 {static groups} (iconhidden=no) # F7 :GoToWindow 7 {static groups} (iconhidden=no) # F8 :GoToWindow 8 {static groups} (iconhidden=no) # F9 :GoToWindow -4 {static groups} (iconhidden=no) # F10 :GoToWindow -3 {static groups} (iconhidden=no) # F11 :GoToWindow -2 {static groups} (iconhidden=no) # F12 :GoToWindow -1 {static groups} (iconhidden=no) Mod4 1 :GoToWindow 1 {static groups} (iconhidden=no) Mod4 2 :GoToWindow 2 {static groups} (iconhidden=no) Mod4 3 :GoToWindow 3 {static groups} (iconhidden=no) Mod4 4 :GoToWindow 4 {static groups} (iconhidden=no) Mod4 5 :GoToWindow 5 {static groups} (iconhidden=no) Mod4 6 :GoToWindow 6 {static groups} (iconhidden=no) Mod4 7 :GoToWindow 7 {static groups} (iconhidden=no) Mod4 8 :GoToWindow 8 {static groups} (iconhidden=no) Mod4 9 :GoToWindow 9 {static groups} (iconhidden=no) Mod4 0 :GoToWindow -1 {static groups} (iconhidden=no) Mod4 Tab :NextWindow {static groups} (iconhidden=no) Mod4 Shift Tab :PrevWindow {static groups} (iconhidden=no) Mod4 grave :NextWindow {static groups} (iconhidden=no) Mod4 Shift grave :PrevWindow {static groups} (iconhidden=no) Mod1 Menu :ClientMenu # window commands Mod4 Menu :WindowMenu Mod4 Next :If {Matches (maximized=yes)} {Maximize} {Minimize} Mod4 Prior :Maximize Shift F11 :FullScreen Mod4 space :Stick Mod4 Return :Shade Mod4 z :RaiseLayer Shift Mod4 z :LowerLayer Control Mod1 Right :SendToNextHead Control Mod1 Left :SendToPrevHead Mod4 F1 :SendToWorkspace 1 Mod4 F2 :SendToWorkspace 2 Mod4 F3 :SendToWorkspace 3 Mod4 F4 :SendToWorkspace 4 Mod4 F5 :SendToWorkspace 5 Mod4 F6 :SendToWorkspace 6 Mod4 F7 :SendToWorkspace 7 Mod4 F8 :SendToWorkspace 8 Mod4 F9 :SendToWorkspace 9 Mod4 F10 :SendToWorkspace 10 Mod4 F11 :SendToWorkspace 11 Mod4 F12 :SendToWorkspace 12 Control Mod4 F1 :TakeToWorkspace 1 Control Mod4 F2 :TakeToWorkspace 2 Control Mod4 F3 :TakeToWorkspace 3 Control Mod4 F4 :TakeToWorkspace 4 Control Mod4 F5 :TakeToWorkspace 5 Control Mod4 F6 :TakeToWorkspace 6 Control Mod4 F7 :TakeToWorkspace 7 Control Mod4 F8 :TakeToWorkspace 8 Control Mod4 F9 :TakeToWorkspace 9 Control Mod4 F10 :TakeToWorkspace 10 Control Mod4 F11 :TakeToWorkspace 11 Control Mod4 F12 :TakeToWorkspace 12 # Mod4 Tab :NextTab # Mod4 Shift Tab :PrevTab Control Mod4 Prior :MoveTabLeft Control Mod4 Next :MoveTabRight # go to the nth tab # Mod4 1 :Tab 1 # Mod4 2 :Tab 2 # Mod4 3 :Tab 3 # Mod4 4 :Tab 4 # Mod4 5 :Tab 5 # Mod4 6 :Tab 6 # Mod4 7 :Tab 7 # Mod4 8 :Tab 8 # Mod4 9 :Tab 9 # Mod4 0 :Tab -1 Control Mod4 Left :If {Matches (maximized=yes)} {TakeToPrevWorkspace} {MoveTo 0 *} Control Mod4 Right :If {Matches (maximized=yes)} {TakeToNextWorkspace} {MoveTo 0 * UpperRight} Control Mod4 Up :MoveTo * 0 Control Mod4 Down :MoveTo * 0 LowerLeft Mod4 Home :MoveTo 0 0 Center Mod4 Left :Move -1 0 Mod4 Right :Move 1 0 Mod4 Up :Move 0 -1 Mod4 Down :Move 0 1 Shift Mod4 Left :Resize -1 0 Shift Mod4 Right :Resize 1 0 Shift Mod4 Up :Resize 0 -1 Shift Mod4 Down :Resize 0 1 Control Mod4 Shift Left :Resize -10 0 Control Mod4 Shift Right :Resize 10 0 Control Mod4 Shift Up :Resize 0 -10 Control Mod4 Shift Down :Resize 0 10 # client commands Mod4 BackSpace :Close Mod4 Escape :DetachClient Mod4 Delete :KillWindow