Nov 192011
 
fluxbox basic

I don’ t really care for the bloated kde or gnome desktops, especially on a netbook with limited memory.  I have pretty much always been a fluxbox user since about 2003 or so.  Over the years my configuration changes, partially because the way I do things changes.  This means my fluxbox environment changes….but not too often.  What bothers me is that sometimes I will lose the latest file for my fluxbox environment, as I often tweak it every couple of days.  This used to be the case, but now pretty much everything goes to external backup in real time.  But many people ask me about my fluxbox because it does look pretty damn nice, its very functional, and my entire computer runs in about 200MB of memory.  So without further wait, here it is, complete with config files.

The first image below shows my fluxbox desktop.  The middle image shows fluxbox with the slit showing that I have set to auto hide so its not viewable in the first image.  The third image shows tmux running inside of an Eterm with two splits shown.  I just started using tmux and it allows you to have multiple windows inside of a console or term window (sort of how you can split horizontally or vertically inside of terminator).  I use the default bind keys in tmux, so not really anything I can tell you about it outside of providing you this link to the tmux cheat sheet.

# Updated 20111210 – several people asked about what I used on my desktop or laptops, since I sort of stupilated I didnt like bloated wm’s on my netbook, and fact is, I still use fluxbox with the exact same config.  Below are two screenshots from my Quad core desktop with 16GB memory and 1TB raid 0 drives (Images 4 and 5 in the gallery below)

Basically, when I first startup fluxbox it loads conky as a system monitor, wbar for my most used applications, a borderless and transparent Eterm on layer 12 so its always available, and a slit containing fbpager, wmix, wmbattery.  On the bar, I have the resapplet for setting screen resolution and a really cool fluxbox app called fbatterytool for suspend, hibernate, etc.  Literally all of these apps should be available for most linux distributions.  BTW, I use backtrack linux as my every day distro now (previously gentoo or sabayon with nearly the same applications for pentesting but they were harder to maintain and keep up to date).

Fluxbox Basics

There are a few files I have edited in fluxbox.  These are location in ~/.fluxbox folder.

startup   
resapplet &
fbpager -w &
wmbattery -b 1 &
wmix &
rm -rf $HOME/nohup.out &
conky &
/home/ewiget/scripts/fbatterytool/gui.py &
/home/ewiget/scripts/fluxbox.start &
sudo mpd &
exec fluxbox

These are the applications shown in the middle image on this page showing the slit (near the right hand side)

slitlist   
wmix
wmbattery
fbpager
apps   
[app] (name=fbrun)
  [Position]	(WINCENTER)	{0 0}
  [Layer]	{2}
[end]
 
[app] (name=wbar)
  [Position]    (TOPCENTER)     {0 0}
  [Layer]       {2}
[end]
 
  # Group all xterms into tabs
[group]
   [app] (name=xterm) (class=XTerm)
   # edit to your screen size
   [Dimensions]  {1280 491}
   # I like it here.
   [Position] (TOPLEFT) {0 75}
   # Why not?
   [Alpha]   {190}
   # available on all work spaces regardless of Iconify
   [Sticky]  {yes}
   # optional - do not use [Hidden] or [FocusHidden]
   [IconHidden]  {yes}
   # set to be on top of everything
   [Layer] {2}
   # display only a tab and a border regardless of
   # window manager settings.  This looks nicer than
   # with all the window decorations.
   [Deco] {516}
[end]
 
[app] (etermondesktop)
  [Sticky]      {yes}
  [Layer]       {12}
  [Hidden]      {yes}
[end]
fbpager   
fbpager.alpha: 35
fbpager.x: 0
fbpager.y: 0
fbpager.workspace.width: 50
fbpager.workspace.height: 20
fbpager.icons: false
fbpager.windowBorderWidth: 3
fbpager.align: LeftToRight
fbpager.color: gray
fbpager.windowColor: black
fbpager.focusedWindowColor: gray
fbpager.windowBorderColor: white
fbpager.backgroundColor: gray
fbpager.currentBackgroundColor: gray
init   
session.screen0.titlebar.left:	Stick
session.screen0.titlebar.right:	Minimize Maximize Close
session.screen0.iconbar.iconWidth:	70
session.screen0.iconbar.usePixmap:	true
session.screen0.iconbar.alignment:	Right
session.screen0.iconbar.iconTextPadding:	10l
# on fluxbox 1.3.2 version I had to use this line below instead of {static groups}
# session.screen0.iconbar.mode:   (name!=wbar) (name!=etermondesktop) (name!=aterm) (name!=xterm)
session.screen0.iconbar.mode:	{static groups}
session.screen0.iconbar.wheelMode:	Screen
session.screen0.clientMenu.usePixmap:	true
session.screen0.menu.alpha:	150
session.screen0.tabs.maxOver:	false
session.screen0.tabs.intitlebar:	true
session.screen0.tabs.usePixmap:	false
session.screen0.slit.placement:	RightCenter
session.screen0.slit.onhead:	1
session.screen0.slit.direction:	Vertical
session.screen0.slit.autoHide:	true
session.screen0.slit.maxOver:	true
session.screen0.slit.acceptKdeDockapps:	true
session.screen0.slit.alpha:	45
session.screen0.slit.layer:	Top
session.screen0.tab.placement:	Top
session.screen0.tab.width:	22
session.screen0.overlay.lineWidth:	1
session.screen0.overlay.lineStyle:	LineSolid
session.screen0.overlay.joinStyle:	JoinMiter
session.screen0.overlay.capStyle:	CapNotLast
session.screen0.window.focus.alpha:	255
session.screen0.window.unfocus.alpha:	180
session.screen0.toolbar.widthPercent:	100
session.screen0.toolbar.tools:	workspacename, prevworkspace, nextworkspace, iconbar, systemtray, prevwindow, nextwindow, clock
session.screen0.toolbar.placement:	BottomRight
session.screen0.toolbar.autoHide:	false
session.screen0.toolbar.layer:	Desktop
session.screen0.toolbar.alpha:	255
session.screen0.toolbar.visible:	true
session.screen0.toolbar.onhead:	1
session.screen0.toolbar.maxOver:	true
session.screen0.toolbar.height:	0
session.screen0.fullMaximization:	true
session.screen0.userFollowModel:	SemiFollow
session.screen0.edgeSnapThreshold:	0
session.screen0.colPlacementDirection:	TopToBottom
session.screen0.allowRemoteActions:	false
session.screen0.rootCommand:	DISPLAY=:0.0 fbsetbg -f /usr/share/flux-for-back/styles/revolution_flux_backtrack_red/Dev_backtrack_v7_v2.jpg
session.screen0.reversewheeling:	false
session.screen0.windowMenu:
session.screen0.maxDisableMove:	false
session.screen0.workspaces:	4
session.screen0.followModel:	Ignore
session.screen0.menuDelayClose:	0
session.screen0.showwindowposition:	true
session.screen0.windowScrollReverse:	false
session.screen0.noFocusWhileTypingDelay:	0l
session.screen0.opaqueMove:	true
session.screen0.windowPlacement:	RowSmartPlacement
session.screen0.tabFocusModel:	ClickToTabFocus
session.screen0.maxDisableResize:	false
session.screen0.autoRaise:	false
session.screen0.resizeMode:	Bottom
session.screen0.workspacewarping:	true
session.screen0.imageDither:	false
session.screen0.maxIgnoreIncrement:	true
session.screen0.strftimeFormat:	%l:%M
session.screen0.menuDelay:	0
session.screen0.defaultDeco:	NORMAL
session.screen0.desktopwheeling:	true
session.screen0.workspaceNames:	one,two,three,four,
session.screen0.windowScrollAction:
session.screen0.focusNewWindows:	true
session.screen0.rowPlacementDirection:	LeftToRight
session.screen0.clickRaises:	true
session.screen0.focusModel:	ClickFocus
session.screen0.menuMode:	Delay
session.screen0.decorateTransient:	true
session.screen0.tooltipDelay:	500
session.screen0.demandsAttentionTimeout:	500
session.configVersion:	10
session.autoRaiseDelay:	250
session.appsFile:	~/.fluxbox/apps
session.menuFile:	~/.fluxbox/menu
session.tabPadding:	0
session.tabsAttachArea:	Window
session.forcePseudoTransparency:	false
session.styleOverlay:	~/.fluxbox/overlay
session.ignoreBorder:	false
session.modKey:	Mod1
session.cacheMax:	200l
session.doubleClickInterval:	250
session.groupFile:	~/.fluxbox/groups
session.styleFile:	/usr/share/flux-for-back/styles/revolution_flux_backtrack_red
session.slitlistFile:
session.colorsPerChannel:	4
session.cacheLife:	5l
session.keyFile:	~/.fluxbox/keys
keys   
##############################################
#  Mod1    == Alt
#  Mod4    == Windows key
#  Control == Ctrl
#  Shift   == Shift
##############################################
########## EXAMPLES ##########################
#  Control i :ExecCommand xterm   # Ctrl+i will bring up an xterm
#  Mod4 4 :Workspace 4            # Windowskey+4 will change to workspace 4
#  None F12 :ExecCommand firefox  # F12 will start Firefox
#  Control Mod1 r :exec fbrun     # Ctrl+Alt+r will bring up the Fluxbox command dialog
#  Mod1 Shift F4 :KillWindow      # Alt+Shift+F4 kills the focused window
#  Mod1 113 :exec xterm           # Just to show the keycode usage
 
###############################################
Mod4 v ~/scripts/vga_off.sh
Mod4 d ~/scripts/fluxbox.start
 
# click on the desktop to get menus
OnDesktop Mouse1 :HideMenus
OnDesktop Mouse2 :WorkspaceMenu
OnDesktop Mouse3 :RootMenu
 
# scroll on the desktop to change workspaces
OnDesktop Mouse4 :PrevWorkspace
OnDesktop Mouse5 :NextWorkspace
 
# scroll on the toolbar to change workspaces
OnToolbar Mouse4 :PrevWorkspace
OnToolbar Mouse5 :NextWorkspace
 
# alt + left/right click to move/resize a window
OnWindow Mod1 Mouse1 :MacroCmd {Raise} {Focus} {StartMoving}
OnWindow Mod1 Mouse3 :MacroCmd {Raise} {Focus} {StartResizing NearestCorner}
 
# middle click a window's titlebar and drag to attach windows
OnTitlebar Mouse2 :StartTabbing
 
# double click on the titlebar to shade
OnTitlebar Double Mouse1 :Shade
 
# right click on the titlebar for a menu of options
OnTitlebar Mouse3 :WindowMenu
 
# alt-tab
Mod1 Tab :NextWindow {groups}
Mod1 Shift Tab :PrevWindow {groups}
 
#Mod1 Tab :NextWindow {groups}
#Mod1 Shift Tab :PrevWindow {groups}
 
# cycle through tabs in the current window
Mod4 Tab :NextTab
Mod4 Shift Tab :PrevTab
#Mod4 d :ToggleDecor
 
#:SetHead
Mod1 Tab  :nexthead
Mod1 Shift Tab  :prevhead
Control Mod4 1            :SetHead 1
Control Mod4 2            :SetHead 2
Control Mod4 3            :SetHead 3
Mod4 F1  :shifthead
 
# go to a specific tab in the current window
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
 
# open a terminal
Mod1 F1 :Exec terminator
Mod1 a   :ExecCommand aterm
Mod1 s   :ExecCommand aterm -name aterms -sl 3000 -tr +sb -sr -sk -bg black -fg white -fade 90 -bl -tn xterm -fn -misc-fixed-medium-r-normal-*-*-120-*-*-c-*-iso8859-15 -g 116x57
Mod1 d   :ExecCommand aterm -name atermd -sl 3000 -tr +sb -sr -sk -bg black -fg white -fade 90 -bl -tn xterm -fn -misc-fixed-medium-r-normal-*-*-120-*-*-c-*-iso8859-15 -g 116x57 -e su -
Mod1 k :Exec kate
# open a dialog to run programs
Mod1 F2 :Exec fbrun
 
# volume settings, using common keycodes
# if these don't work, use xev to find out your real keycodes
#176 :Exec amixer sset Master,0 1+
#174 :Exec amixer sset Master,0 1-
#160 :Exec amixer sset Master,0 toggle
 
# this are the keymaps for both my netbook and logitech keyboard for volume control
# requires the pavol script
None 122 :execCommand ~/scripts/pavol -
None 123 :execCommand ~/scripts/pavol +
None 121 :execCommand ~/scripts/pavol !
 
# current window commands
Mod1 F4 :Close
Mod1 F9 :Minimize
Mod1 F10 :Maximize
Mod1 F11 :Fullscreen
 
# open the window menu
Mod1 space :WindowMenu
 
# exit fluxbox
Control Mod1 Delete :Exit
 
# change to a specific workspace
Control F1 :Workspace 1
Control F2 :Workspace 2
Control F3 :Workspace 3
Control F4 :Workspace 4
 
# send the current window to a specific workspace
#	Mod4 F1 :SendToWorkspace 1
#	Mod4 F2 :SendToWorkspace 2
#	Mod4 F3 :SendToWorkspace 3
#	Mod4 F4 :SendToWorkspace 4
 
# send the current window and change to a specific workspace
Control Mod4 F1 :TakeToWorkspace 1
Control Mod4 F2 :TakeToWorkspace 2
Control Mod4 F3 :TakeToWorkspace 3
Control Mod4 F4 :TakeToWorkspace 4
 
# (name!=xterm) prevents xterm from being included
# in the alt-tab cycle
# alt-tab
Mod1 Tab :NextWindow {groups} (name!=xterm)
Mod1 Shift Tab :PrevWindow {groups} (name!=xterm)
 
# Toggle xterms
# Control (tilde key):
# If there are xterms open then switch between showing
# them and hiding them.  If there are not any open, then
# open one up.
# all one line
Control 49 : If {Some Matches (xterm)}   {ToggleCmd {NextGroup (name=xterm)} {MacroCmd {NextGroup (name=xterm)} {Delay {Iconify} 1}}}    {Exec xterm}
pavol   
#!/usr/bin/ruby
def current
  c = IO::popen("pacmd \"list-sinks\" | grep volume | head -1").readlines[0]
  return c.split(" ").last.sub("%", "").strip.to_i
end
 
def max
  c = IO::popen("pacmd \"list-sinks\" | grep \"volume steps\" | head -1").readlines[0]
  return c.split(" ").last.strip.to_i - 1
end
 
def index
  c = IO::popen("pacmd \"list-sinks\" | grep index | head -1").readlines[0]
  return c.split(" ").last.strip.to_i
end
 
def set(v)
  IO::popen("pacmd \"set-sink-volume #{index} #{v}\"").readlines
end
 
def muted
  c = IO::popen("pacmd \"list-sinks\" | grep muted | head -1").readlines[0]
  return c.split(" ").last.strip == "yes"
end
 
def toggle
  t = 1
  if ( muted )
    t = 0
  end
  IO::popen("pacmd \"set-sink-mute #{index} #{t}\"").readlines
end
 
interval = 5
 
if ( ARGV.size == 0 )
  puts current
elsif (ARGV[0] == "?" )
  puts muted
elsif ( ARGV[0] == "+" )
  set([current + interval, 100].min * (max / 100.0).round)
elsif ( ARGV[0] == "-" )
  set([current - interval, 0].max * (max / 100.0).round)
elsif ( ARGV[0] == "!" )
  toggle

And my fluxbox.start file which gets called from startup (so you will need to edit the path if you use this).  Basically, this file gets called and determines if I have a vga monitor connected to the netbook, and if I do, it sets up the vga to be the primary monitor and the lcd (LVDS) below the monitor.  If a vga is not connected, it sets the lvds to be the primary monitor at its max resolution.  In the event you connect the vga monitor to the netbook after its turned on and you want to quickly configure it for dual monitors, I have a shortcut key that calls this script.  The shortcut key is super_l + d (press the windows key on most keyboards and the d key)

#!/bin/bash
 
# By Ed Wiget
# Sets up dual displays on netbook
 
VGACON=`xrandr | grep "VGA connected" | wc -l`
 
if [ ${VGACON} = 1 ]; then
	killall Eterm
	killall wbar
	killall conky
	xrandr --output VGA --mode 1360x768 -r 59.8
        xrandr --output LVDS -s 1024x600 -r 60 --below VGA
	sleep 1
	Eterm --trans true --background-color black --foreground-color white --pointer-color white --scrollbar false --buttonbar false --borderless true --geometry 135x45+285+100 --name etermondesktop &
	wbar -bpress -balfa 0.0 -zoomf 1.8 -pos top -above-desk &
	conky &
else
	xrandr -s 1024x600 -r 60
fi

I have another script I use for when I disconnect the vga monitor while the netbook is turned on and it resets the lvds monitor to be the default.  It also has a shortcut key in case you can’t see the console or even sometimes pressing alt+f2 tries to open the fbrun command on the monitor that no longer exists.  The shortcut key is super_l + v (press the windows key on most keyboards plus the letter v).  That script is called vga_off.sh and this is its contents.

#!/bin/bash
 
# By Ed Wiget
# This scripts disables vga on the netbook when you disconnect it
 
xrandr --output VGA --off
xrandr --output LVDS --mode 1024x768 --rotate normal
 
killall wbar
killall conky
killall Eterm
 
sleep 1
 
Eterm --trans true --background-color black --foreground-color white --pointer-color white --scrollbar false --buttonbar false --borderless true --geometry 135x45+285+100 --name etermondesktop &
wbar -bpress -balfa 0.0 -zoomf 1.8 -pos top -above-desk &
conky &

WBAR

At the very top of fluxbox, I have wbar configured with my most used applications.  This changes quiet often (I will try to keep it updated).  The configuration for my wbar is below.  It should be in your home directory and named .wbar, i.e. /home/USERNAME/.wbar

There is probably a few applications you may have trouble finding, for instance, I have two versions of mantra because I like the features of both but they do not contain the same features / extensions…so I keep both installed.

The format of the file is pretty easy:

# this is a comment
i: this is the path to the icon
c: this is the command
t: this is the text when you hover your mouse over the icon
# The Bar && Font
#
#wbarcommand="wbar -bpress -balpha 0.0 -zoom 1.8 -pos top -above-desk"
 
i: /usr/share/flux-for-back/icondef/bars/barback.png
c:
t: /usr/share/fonts/jeopardi/jeopardi/14
 
i: /home/ewiget/mantra-portable/app/chrome/icons/default/default32.png
c: /home/ewiget/mantra-portage/firefox-portable
t: MANTRA Alpha
 
i: /home/ewiget/mantra-c0c0n/firefox_experiment_2_02.png
c: /home/ewiget/mantra-c0c0n/mantra_c0c0n
t: MANTRA c0c0n
 
i: /usr/share/keepassx/icons/keepassx.png
c: keepassx
t: KeepassX
 
i: /usr/share/icons/oxygen/48x48/mimetypes/encrypted.png
c: truecrypt
t: TrueCrypt
 
i: /usr/share/flux-for-back/icondef/gksu-root-terminal.png
c: urxvt
t: URXVT
 
i: /usr/share/icons/hicolor/48x48/apps/xfce-terminal.png
c: konsole
t: Konsole
 
i: /usr/share/icons/hicolor/48x48/apps/terminator.png
c: terminator
t: Terminator
 
#i: /usr/share/icons/hicolor/48x48/apps/tweetdeckfast.fff259dc0ce2657847bbb4aff0e62062efc56543.1.png
#c: /opt/TweetDeck/bin/TweetDeck
#t: TweetDeck
 
i: /usr/share/icons/hicolor/48x48/apps/kate.png
c: kate
t: Kate
 
i: /usr/share/icons/hicolor/48x48/mimetypes/libreoffice34-database.png
c: /opt/libreoffice3.4/program/sbase
t: sbase
 
i: /usr/share/icons/hicolor/48x48/mimetypes/libreoffice34-drawing.png
c: /opt/libreoffice3.4/program/sdraw
t: sdraw
 
i: /usr/share/icons/hicolor/48x48/mimetypes/libreoffice34-oasis-spreadsheet.png
c: /opt/libreoffice3.4/program/scalc
t: scalc
 
i: /usr/share/icons/hicolor/48x48/mimetypes/libreoffice34-oasis-presentation.png
c: /opt/libreoffice3.4/program/simpress
t: simpress
 
i: /usr/share/icons/hicolor/48x48/mimetypes/libreoffice34-text.png
c: /opt/libreoffice3.4/program/swriter
t: swriter
 
i: /usr/share/icons/hicolor/48x48/apps/eclipse.png
c: /usr/bin/eclipse37
t: Eclipse
 
i: /usr/share/icons/hicolor/48x48/mimetypes/virtualbox-vbox.png
c: VirtualBox
t: virtualbox
 
i: /usr/share/hamster-applet/art/hamster-applet.png
c: hamster-standalone
t: Hamster
 
i: /usr/share/pixmaps/thunderbird.png
c: thunderbird
t: Thunderbird
 
i: /usr/share/icons/hicolor/48x48/apps/kopete.png
c: pidgin
t: Pidgin
 
i: /usr/share/icons/hicolor/48x48/apps/google-chrome.png
c: google-chrome
t: google-chrome
 
i: /usr/share/icons/ccc_large.xpm
c: sudo amdcccle
t: amdcccle
 
i: /usr/share/icons/hicolor/48x48/apps/vidalia.png
c: vidalia
t: Vidalia
 
i: /usr/share/icons/hicolor/48x48/apps/skrooge.png
c: skrooge
t: Skrooge
 
i: /usr/share/flux-for-back/icondef/ffox.png
c: firefox
t: Firefox
 
i: /usr/share/flux-for-back/icondef/gentoo.png
c: gentoo --root-ok
t: Gentoo
 
i: /usr/share/icons/hicolor/48x48/apps/blender.png
c: blender
t: blender
 
i: /usr/share/icons/hicolor/24x24/apps/gimp.png
c: gimp
t: gimp
 
i: /usr/share/pixmaps/digikam.xpm
c: digikam
t: digikam
 
i: /usr/share/flux-for-back/icondef/SciTE.png
c: scite
t: SciTE
 
i: /usr/share/flux-for-back/icondef/acroread.png
c: epdfview
t: ePdf
 
i: /usr/share/flux-for-back/icondef/gthumb.png
c: gthumb
t: GThumb
 
i: /usr/share/flux-for-back/icondef/120px-VLC5_Mac.png
c: vlc
t: VLC
 
i: /usr/share/pixmaps/sonata.png
c: sonata
t: Sonata
 
i: /usr/share/icons/hicolor/48x48/apps/rhythmbox.png
c: rhythmbox
t: Rhythmbox
 
i: /usr/share/flux-for-back/icondef/skype.png
c: skype
t: Skype
 
i: /usr/share/flux-for-back/icondef/disk-manager.png
c: gparted
t: GParted
 
i: /usr/share/flux-for-back/icondef/wireshark.png
c: wireshark
t: Wireshark
 
i: /usr/share/pixmaps/xchat.png
c: /usr/local/bin/xchat
t: XChat
 
i: /usr/share/flux-for-back/icondef/wbarconf.png
c: wbarconf
t: WbarConf
 
i: /usr/share/flux-for-back/icondef/wicd-gtk.xpm
c: wicd-client
t: WiCD-Client
 
i: /usr/share/flux-for-back/icondef/revolution/btmenu.png
c: urxvt -e sh -c "cd /pentest/miscellaneous/utils/dragon && ./dragon ; sudo -s"
t: Dragon
 
i: /usr/share/flux-for-back/icondef/gnome-sound-properties.png
c: gnome-volume-control-applet
t: Mixer
 
i: /usr/share/flux-for-back/icondef/x.png
c: grandr
t: GRandr

CONKY

conky is configured with a file in your home directory called .conkyrc  I found this file somewhere on the internet and modified it over the years.  I don’t remember the exact areas I modified or who the original author was…..here is the file as it stands today.

.conkyrc   
# maintain spacing between certain elements
use_spacer right
 
# set to yes if you want tormo to be forked in the background
#background yes
 
use_xft yes
 
# Xft font when Xft is enabled
xftfont Sans-Serif:size=8:pixelsize=8
 
# Text alpha when using Xft
xftalpha 1
#mail_spool $MAIL
 
# Update interval in seconds
update_interval 2.0
 
# Create own window instead of using desktop (required in nautilus) normal desktop or override
# change own_window no for fglrx and yes for radeon
own_window no
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
 
#own_window_hints below
 
# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes
 
# Minimum size of text area
minimum_size 200 5
maximum_width 250
 
# Draw shades?
draw_shades no
 
# Draw outlines?
draw_outline no # amplifies text
 
# Draw borders around text
draw_borders no
 
# Stippled borders?
stippled_borders 3
 
# border margins
# border_margin deprecated for window.border_inner_margin
#border_margin 5
border_inner_margin 5
# border widt5
border_width 6
 
# Text alignment, other possible values are commented
alignment top_left
#alignment top_right
#alignment bottom_left
#alignment bottom_right
 
# Gap between borders of screen and text
gap_x 24
gap_y 64
 
# Subtract file system buffers from used memory?
#no_buffers yes
# commented out by ewiget
 
# set to yes if you want all text to be in uppercase
uppercase no
 
#    *** RHYTHMBOX FORMAT SETTINGS ***
 
#    ${rhythmbox-client --print-playing}
#              Print the title and artist of the playing song
 
#    ${rhythmbox-client --print-playing-format}
#              Print formatted details of the song
 
#    *** PARAMETERS ***
 
#       %at    Album title
#       %aT    Album title in lowercase
#       %aa    Album artist
#       %aA    Album artist in lowercase
#       %ay    Release year of album
#       %an    Album disc number
#       %aN    Album disc number with leading zero
#       %ag    Album genre
#       %aG    Album genre in lowercase
#       %tt    Track title
#       %tT    Track title in lowercase
#       %ta    Track artist
#       %tA    Track artist in lowercase
#       %tn    Track number
#       %tN    Track number with leading zero
#       %td    Track duration
#       %te    Elapsed time of track
 
#       Variables can be combined using quotes. For example "%tn %aa %tt", will
#       print the track number followed by the artist  and  the  title  of  the
#       track.
 
# Colors
# Default colors and also border colors, grey90 == #e5e5e5
default_color             LightGrey
default_shade_color     black
default_outline_color     DarkGrey
 
# Section Title
color0 SkyBlue1
 
# List Colors
color1 E60066
color2 FF6600
color3 FFE500
color4 99ff80
 
# Label Color
color5 SeaGreen1
## added by ewiget 2010 08 17 -- needed by new weather module
text_buffer_size 1024
 
TEXT
${font OpenLogos:regular:size=24}${color #ffa500}t ${voffset -8}${font Anklepants:regular:size=11}${color0}OS${font}${color}
${voffset -10}${color #ffd700}${hr 1}${font}${color}
    ${color5}$nodename     ${color5}Uptime: ${color}$uptime_short
    ${color}$kernel $machine
    #${execi 99999  uname -v | cut -c -26}
${execi 9999 whoami} on $nodename ${alignr}     Vol: ${exec if [ `/home/ewiget/scripts/pavol ?` != 'true' ]; then echo `/home/ewiget/scripts/pavol`%; else echo 'Muted'; fi}
#${color5}Uptime: ${color}$uptime_short
${font Illustrate IT:regular:size=24}${color white}S ${font Anklepants:regular:size=11}${color0}CPU
${voffset -10}${color #ffd700}${hr 1}$font$color
    ${color5}${execi 99999 cat /proc/cpuinfo | grep "model name" -m1 | cut -d":" -f2 | tr -s [:space:] | tr -d [\(TMR\)]}${font}${color}
    ${freq_g 1}GHz       ${execi 20 sensors |grep "Core 0" | cut -d" " -f8 | tr -d [+]}            ${freq_g 2}GHz     ${execi 20 sensors |grep "Core 1" | cut -d" " -f8 | tr -d [+]}
    ${voffset -6}${color5}${cpugraph cpu1 25,115 000000 ff4500 }  ${cpugraph cpu2 25,115 000000 436eee}
    ${color #ffffff}${voffset -25}            ${cpu cpu1}%$alignr${cpu cpu2}%         ${color}
 
    ${color5}Load: ${color}$loadavg ${color5}Processes: ${color}$running_processes($processes)
    ${color5}${stippled_hr 1}
    ${color1}${top name 1}$alignr${top pid 1}${top cpu 1}   ${top mem 1}
    ${color2}${top name 2}$alignr${top pid 2}${top cpu 2}   ${top mem 2}
    ${color3}${top name 3}$alignr${top pid 3}${top cpu 3}   ${top mem 3}
    ${color4}${top name 4}$alignr${top pid 4}${top cpu 4}   ${top mem 4}
    ${color grey}Bat: $color ${battery BAT1} Time: $color ${battery_time BAT1}
    ${battery_percent BAT1}% ${battery_bar BAT1}
#    ${battery_percent BAT1}% ${battery_bar 10,200 BAT1}
${voffset 4}${font Mac Dingbats:regular:size=14}${color #f5f5dc}p ${voffset -4}${font Anklepants:regular:size=11}${color0}RAM and DISK${font}${color}
${voffset -10}${color #ffd700}${hr 1}$font$color
    ${color5}RAM:${color} $mem($memmax)${color5}$alignr${membar 9,80}
    ${color #ffff00}${voffset -14}$alignr$memperc%      ${voffset 2}
    ${color5}SWAP:${color} $swap($swapmax)${color5}$alignr${swapbar 9,80}
    ${color #ffff00}${voffset -14}$alignr$swapperc%      ${voffset 2}
    ${color5}/: ${color}${fs_used /}(${fs_size /})$alignr${color5}${fs_type /} $color${fs_used_perc /}%
    ${voffset -5}${color4}${fs_bar 3 /}
  #  ${color5}~:${color}$alignc ${fs_used /home}(${fs_size /home})$alignr${color5}${fs_type /home} ${color}${fs_used_perc /home}%
   # ${voffset -5}${color4}${fs_bar 3 /home}
#${color5}/mnt/Windows:${color}$alignc ${fs_used /mnt/Windows}(${fs_size /mnt/Windows})$alignr${color5}${fs_type /mnt/Windows} $color${fs_used_perc /mnt/Windows}%
#    ${voffset -5}${color4}${fs_bar 3 /mnt/Windows}
    ${color5}${diskiograph 10 00ff00 2f4f4f}
    ${voffset -25}${color #ffd700}  Reading: ${color}${diskio_read}${alignr}${color #ffd700}Writing: ${color}${diskio_write}  ${voffset 15}
${voffset 3}${font Mac Dingbats:regular:size=18}${color #bcee68}2 ${voffset -3}${font Anklepants:regular:size=11}${color0}NETWORK${font}${color}
${voffset -10}${color #ffd700}${hr 1}$font$color
   ${color5}WAN: $color${execi 3600 curl 'http://automation.whatismyip.com/n09230945.asp'}$alignr${color5}LAN: $color${addr wlan1}
   ${downspeedgraph wlan1 25,115 b0e2ff 556b2f} ${alignr}${upspeedgraph wlan1 25,115 b0e2ff ff4040}
   ${voffset -25}${color #ffd700} Download: ${color white}${downspeed wlan1}k/s ${alignr}${color #ffd700}Upload: ${color white}${upspeed wlan1}k/s ${voffset 15}
   ${color5}Total: ${color}${totaldown wlan0} ${alignr}${color5}Total:  ${color}${totalup wlan1}
   ${color5}Inbound: ${color}${tcp_portmon 1 32767 count}$alignr${color5}Outbound: ${color}${tcp_portmon 32768 61000 count}
   ${color5}${stippled_hr 1}
   ${color1}${tcp_portmon 32768 61000 rhost 0} ${alignr} ${tcp_portmon 32768 61000 rservice 0}
   ${color2}${tcp_portmon 32768 61000 rhost 1} ${alignr} ${tcp_portmon 32768 61000 rservice 1}
   ${color3}${tcp_portmon 32768 61000 rhost 2} ${alignr} ${tcp_portmon 32768 61000 rservice 2}
   ${color4}${tcp_portmon 32768 61000 rhost 3} ${alignr} ${tcp_portmon 32768 61000 rservice 3}
## new weather module added by ewiget 2010 08 17
## requires ~/scripts/conkyweather.sh
## see http://ubuntuforums.org/showthread.php?t=869328
${voffset 3}${font Mac Dingbats:regular:size=18}${color #bcee68}3 ${voffset -3}${font Anklepants:regular:size=11}${color0}WEATHER${font}${color}
${voffset -10}${color #ffd700}${hr 1}$font$color
${execpi 1800 conkyForecast --location=USKY0913 --template=/home/ewiget/scripts/conkyweather.sh}
${if_running amarokapp}${voffset 7}${font Webdings:regular:size=22}${color #ba55d3}Ø${voffset -7}${font Anklepants:regular:size=11}${color0}Music${font}${color}
${voffset -10}${color #ffd700}${hr 1}$font$color
${color5}${alignc}Now Playing${color white}
${alignc 5}${execi 10 ~/scripts/amarok artist}
${alignc 5}${execi 10 ~/scripts/amarok title}
${execibar 1 ~/scripts/amarok progress}
${alignc}"${execi 10 ~/scripts/amarok album}"
${alignc}${execi 10 ~/scripts/amarok year} - ${color white}${alignc}${execi 10 ~/scripts/amarok genre}
$color$stippled_hr
${alignc}Collection Information
Artists: ${color white}${execi 10 ~/scripts/amarok totalArtists} $color${alignr}Compilations: ${color white}${execi 10 ~/scripts/amarok totalCompilations}$color
Albums:  ${color white}${execi 10 ~/scripts/amarok totalAlbums} $color${alignr}Genres: ${color white}${execi 10 ~/scripts/amarok totalGenres}$color
Tracks:  ${color white}${execi 10 ~/scripts/amarok totalTracks}
$color$stippled_hr
${alignc}Collection Statisctics
Most songs by ${color white}${execi 10 ~/scripts/amarok most_songs_by_artist} $alignr${color}(${color white}${execi 10 ~/scripts/amarok most_songs_by_artist_n}${color})
Most songs are ${color white}${execi 10 ~/scripts/amarok most_songs_are_genre} $alignr${color}(${color white}${execi 10 ~/scripts/amarok most_songs_are_genre_n}${color})
Most songs during ${color white}${execi 10 ~/scripts/amarok most_songs_during_year} $alignr${color}(${color white}${execi 10 ~/scripts/amarok most_songs_during_year_n}${color})
Most albums by ${color white}${execi 10 ~/scripts/amarok most_albums_by_artist} $alignr${color}(${color white}${execi 10 ~/scripts/amarok most_albums_by_artist_n}${color})
Most albums are ${color white}${execi 10 ~/scripts/amarok most_albums_are_genre} $alignr${color}(${color white}${execi 10 ~/scripts/amarok most_albums_are_genre_n}${color})
Most albums during ${color white}${execi 10 ~/scripts/amarok most_albums_during_year} $alignr${color}(${color white}${execi 10 ~/scripts/amarok most_albums_during_year_n}
$endif

Inside of the conky config, it calls an external script for the theme used in conkyForecast (weather monitor).  This is called conkyweather.sh and you will need to modify the path to it if you use this script.

${alignc -4}${font Arial:bold:size=9}${color 32B4CB}[--datatype=CT]${alignc -90}${voffset -14}${font ConkyWeather:style=Bold:size=25}${color white}[--datatype=WF]${color 32B4CB}
${offset 11}${voffset -40}${font Arial:bold:size=9}[--datatype=HT --hideunits]/[--datatype=LT --hideunits]
${color 32B4CB}${hr 2}
${offset 10}${voffset 4}${font Arial:bold:size=7}[--datatype=DW --startday=1 --shortweekday] ${alignc 32}[--datatype=DW --startday=2 --shortweekday] ${alignc -32}[--datatype=DW --startday=3 --shortweekday] ${alignr 30}[--datatype=DW --startday=4 --shortweekday]
${offset 10}${voffset 5}${color white}${font ConkyWeather:size=25}[--datatype=WF --startday=1 --endday=4 --spaces=4]${font}
${offset 10}${font ariel:bold:size=7}[--datatype=HT --startday=1 --hideunits --centeredwidth=3]/[--datatype=LT --startday=1 --hideunits --centeredwidth=3] ${alignc -2}[--datatype=HT --startday=2 --hideunits --centeredwidth=3]/[--datatype=LT --startday=2 --hideunits --centeredwidth=3] ${alignc -48}[--datatype=HT --startday=3 --hideunits --centeredwidth=3]/[--datatype=LT --startday=3 --hideunits --centeredwidth=3] ${alignr 23}[--datatype=HT --startday=4 --hideunits --centeredwidth=3]/[--datatype=LT --startday=4 --hideunits --centeredwidth=3]
${color 32B4CB}${hr 2}
${offset 10}${color}${font Ariel:Bold:size=6}Chance of Rain: ${alignr}${color 32B4CB}[--startday=0 --datatype=PC]
${offset 10}${color 32B4CB}${color}Sunrise: ${alignr}${color 32B4CB}[--datatype=SR]
${offset 10}${color}Sunset: ${alignr}${color 32B4CB}[--datatype=SS]

There is another script called inside the conkyrc file called amarok.  I haven’t used amarok in a while and I am not even sure it still works, plus I have been too lazy to disable it.  Here is the contents though…..

amarok   
#!/bin/bash
# amaroK info display script by eirc <[email protected]>
#
# requirements: amaroK (!)
# for Collection stats to work amarok must be using
# mySQL to store it's collection
 
case "$1" in
 
# Now Playing Info
artist) dcop amarok player artist ;;
title)  dcop amarok player title ;;
album)  dcop amarok player album ;;
year)   dcop amarok player year ;;
genre)  dcop amarok player genre ;;
progress)
    curr=`dcop amarok player trackCurrentTime`
    tot=`dcop amarok player trackTotalTime`
    if (( $tot )); then
        expr $curr \* 100  / $tot
    fi
    ;;
 
# Collection Info
totalArtists)      dcop amarok collection totalArtists ;;
totalAlbums)       dcop amarok collection totalAlbums ;;
totalTracks)       dcop amarok collection totalTracks ;;
totalGenres)       dcop amarok collection totalGenres ;;
totalCompilations) dcop amarok collection totalCompilations ;;
 
# Collection Stats
most_songs_by_artist) dcop amarok collection query 'SELECT t1.name FROM artist t1 INNER JOIN tags t2 ON t1.id = t2.artist GROUP BY t2.artist ORDER BY COUNT(t2.artist) DESC LIMIT 1;' ;;
most_songs_by_artist_n) dcop amarok collection query 'SELECT count(t2.artist) FROM artist t1 INNER JOIN tags t2 ON t1.id = t2.artist GROUP BY t2.artist ORDER BY COUNT(t2.artist) DESC LIMIT 1;' ;;
most_songs_are_genre) dcop amarok collection query 'SELECT t1.name FROM genre t1 INNER JOIN tags t2 ON t1.id = t2.genre GROUP BY t2.genre ORDER BY COUNT(t2.genre) DESC LIMIT 1;' ;;
most_songs_are_genre_n) dcop amarok collection query 'SELECT count(t2.genre) FROM genre t1 INNER JOIN tags t2 ON t1.id = t2.genre GROUP BY t2.genre ORDER BY COUNT(t2.genre) DESC LIMIT 1;' ;;
most_songs_during_year) dcop amarok collection query 'SELECT t1.name FROM year t1 INNER JOIN tags t2 ON t1.id = t2.year GROUP BY t2.year ORDER BY COUNT(t2.year) DESC LIMIT 1;' ;;
most_songs_during_year_n) dcop amarok collection query 'SELECT count(t2.year) FROM year t1 INNER JOIN tags t2 ON t1.id = t2.year GROUP BY t2.year ORDER BY COUNT(t2.year) DESC LIMIT 1;' ;;
most_albums_by_artist) dcop amarok collection query 'SELECT name FROM artist WHERE id=(SELECT t1.artist from (SELECT artist FROM tags GROUP BY album) AS t1 GROUP BY t1.artist ORDER BY count(artist) DESC LIMIT 1);' ;;
most_albums_by_artist_n) dcop amarok collection query 'SELECT count(artist) from (SELECT artist FROM tags GROUP BY album) AS t1 GROUP BY t1.artist ORDER BY count(artist) DESC LIMIT 1;' ;;
most_albums_are_genre) dcop amarok collection query 'SELECT name FROM genre WHERE id=(SELECT t1.genre from (SELECT genre FROM tags GROUP BY album) AS t1 GROUP BY t1.genre ORDER BY count(genre) DESC LIMIT 1);' ;;
most_albums_are_genre_n) dcop amarok collection query 'SELECT count(genre) from (SELECT genre FROM tags GROUP BY album) AS t1 GROUP BY t1.genre ORDER BY count(genre) DESC LIMIT 1;' ;;
most_albums_during_year) dcop amarok collection query 'SELECT name FROM year WHERE id=(SELECT t1.year from (SELECT year FROM tags GROUP BY album) AS t1 GROUP BY t1.year ORDER BY count(year) DESC LIMIT 1);' ;;
most_albums_during_year_n) dcop amarok collection query 'SELECT count(year) from (SELECT year FROM tags GROUP BY album) AS t1 GROUP BY t1.year ORDER BY count(year) DESC LIMIT 1;' ;;
 
esac

The only thing that is really missing is the background image.  I use a default background image included with backtrack.  However, you probably don’t use backtrack so why would you want to use the same background?  Here is a link to them online: Backtrack background image

UPDATES
20111120 – added Sonata as a music/media player
– added pulse audio keycodes to keys file
– added pulse audio vol display to conkyrc file
– added pavol script for pulse audio control through shortcut keys
– added sudo mpd & to startup file

20111207 – added the change comment in init reference “session.screen0.iconbar.mode: (name!=wbar) (name!=etermondesktop) (name!=aterm) (name!=xterm)” in fluxbox 1.3.2

20111210 – added desktop images

20120107 – updated wbar conf