#!/bin/sh -f # Configure wmii # Configuration Variables MODKEY=Mod4 UP=k DOWN=j LEFT=h RIGHT=l # Colors tuples: " " WMII_NORMCOLORS='#eeeeee #444444 #222222' WMII_FOCUSCOLORS='#00ff00 #333333 #00ff00' WMII_BACKGROUND='#333333' WMII_FONT='fixed' set -- $(echo $WMII_NORMCOLORS $WMII_FOCUSCOLORS) WMII_MENU="dmenu -b -fn '$WMII_FONT' -nf '$1' -nb '$2' -sf '$4' -sb '$5'" WMII_9MENU="wmii9menu -font '$WMII_FONT' -nf '$1' -nb '$2' -sf '$4' -sb '$5' -br '$6'" WMII_TERM="x-terminal-emulator" # Column Rules wmiir write /colrules < 58+42 ! # Tagging Rules wmiir write /tagrules < downloads /DownThemAll.*/ -> downloads /.*/ -> sel /.*/ -> 1 ! # Set your_default_browser WMII_BROWSER="firefox" export WMII_BROWSER # Status Bar Info status() { echo -n $(uptime | sed 's/.*://; s/,//g') '|' $(acpi | sed 's/.*Battery .: //g; s/[dD]ischarging/-/g; s/[cC]harging/+/g; s/[cC]harged//g; s/%.*/%/g; s/, //g') '|' $(date +%H:%M:%S) } # Event processing # Processed later by `wmiiloop' and evaled. # Duplicate the eval line and replace 'eval' with 'echo' for details. eventstuff() { cat <<'!' # Events Event Start case "$1" in wmiirc) exit; esac Event Key fn=$(echo "$@" | sed 's/[^a-zA-Z_0-9]/_/g') Key_$fn "$@" Event CreateTag echo "$WMII_NORMCOLORS" "$@" | wmiir create "/lbar/$@" Event DestroyTag wmiir remove "/lbar/$@" Event FocusTag wmiir xwrite "/lbar/$@" "$WMII_FOCUSCOLORS" "$@" Event UnfocusTag wmiir xwrite "/lbar/$@" "$WMII_NORMCOLORS" "$@" Event UrgentTag shift wmiir xwrite "/lbar/$@" "*$@" Event NotUrgentTag shift wmiir xwrite "/lbar/$@" "$@" Event LeftBarClick shift wmiir xwrite /ctl view "$@" # Actions Action quit wmiir xwrite /ctl quit Action exec wmiir xwrite /ctl exec "$@" Action rehash proglist $PATH >$progsfile Action status set +xv if wmiir remove /rbar/status 2>/dev/null; then sleep 2 fi echo "$WMII_NORMCOLORS" | wmiir create /rbar/status while status | wmiir write /rbar/status; do sleep 1 done Event ClientMouseDown client=$1; button=$2 case "$button" in 3) do=$(eval $WMII_9MENU -initial "${menulast:-SomeRandomName}" Nop Delete Fullscreen) case "$do" in Delete) wmiir xwrite /client/$client/ctl kill;; Fullscreen) wmiir xwrite /client/$client/ctl Fullscreen on;; esac menulast=${do:-"$menulast"} esac # Key Bindings cat </dev/null \ | awk '$1 ~ /^[^d].*x/ && NF > 2 { print $NF }' \ | sort | uniq } do_xclip() { WMII_XCLIP=`xclip -o` # when you use sselp replace by WMII_XCLIP=`sselp` if [ $WMII_XCLIP != "" ]; then $WMII_BROWSER -new-tab $WMII_XCLIP & else $WMII_BROWSER & fi } # Misc progsfile="$WMII_NS_DIR/.proglist" Action status & proglist $PATH >$progsfile & xsetroot -solid "$WMII_BACKGROUND" & # Setup Tag Bar seltag="$(wmiir read /tag/sel/ctl 2>/dev/null)" wmiir ls /lbar | while read bar; do wmiir remove "/lbar/$bar" done wmiir ls /tag | sed -e 's|/||; /^sel$/d' | while read tag; do if [ "X$tag" = "X$seltag" ]; then echo "$WMII_FOCUSCOLORS" "$tag" | wmiir create "/lbar/$tag" else echo "$WMII_NORMCOLORS" "$tag" | wmiir create "/lbar/$tag" fi done # More functions tagsmenu() { wmiir ls /tag | sed 's|/||; /^sel$/d' | eval $WMII_MENU } actionlist() { { proglist $WMII_CONFPATH echo -n $Actions | tr ' ' '\012' } | sort | uniq } conf_which() { which=$(which which) prog=$(PATH="$WMII_CONFPATH" $which $1); shift [ -n "$prog" ] && $prog "$@" } # Stop any running instances of wmiirc echo Start wmiirc | wmiir write /event || exit 1 wmiir read /event | while read event; do set -- $event event=$1; shift Event_$event $@ done 2>/dev/null