summaryrefslogtreecommitdiffstats
path: root/wmii-3.5/wmiirc
diff options
context:
space:
mode:
Diffstat (limited to 'wmii-3.5/wmiirc')
-rwxr-xr-xwmii-3.5/wmiirc238
1 files changed, 238 insertions, 0 deletions
diff --git a/wmii-3.5/wmiirc b/wmii-3.5/wmiirc
new file mode 100755
index 0000000..402854c
--- /dev/null
+++ b/wmii-3.5/wmiirc
@@ -0,0 +1,238 @@
+#!/bin/sh -f
+# Configure wmii
+
+# Configuration Variables
+MODKEY=Mod1
+UP=g
+DOWN=r
+LEFT=n
+RIGHT=t
+
+# Colors tuples: "<text> <background> <border>"
+WMII_NORMCOLORS='#888888 #222222 #333333'
+WMII_FOCUSCOLORS='#ffffff #285577 #4c7899'
+
+#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 <<!
+/XMMS.*/ -> ~
+/MPlayer.*/ -> ~
+/.*/ -> sel
+/.*/ -> 1
+!
+
+# Status Bar Info
+status() {
+ echo -n $(uptime | sed 's/.*://; s/,//g') '|' $(date)
+}
+
+# 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
+ Key $MODKEY-Control-t
+ case $(wmiir read /keys | wc -l | tr -d ' \t\n') in
+ 0|1)
+ echo -n $Keys | tr ' ' '\012' | wmiir write /keys
+ wmiir xwrite /ctl grabmod $MODKEY;;
+ *)
+ wmiir xwrite /keys $MODKEY-Control-t
+ wmiir xwrite /ctl grabmod Mod3;;
+ esac
+ Key $MODKEY-space
+ wmiir xwrite /tag/sel/ctl select toggle
+ Key $MODKEY-d
+ wmiir xwrite /tag/sel/ctl colmode sel default
+ Key $MODKEY-s
+ wmiir xwrite /tag/sel/ctl colmode sel stack
+ Key $MODKEY-m
+ wmiir xwrite /tag/sel/ctl colmode sel max
+ Key $MODKEY-q
+ sh -c "$(eval $WMII_MENU <$progsfile)" &
+ Key $MODKEY-Return
+ eval $WMII_TERM &
+ Key $MODKEY-Shift-space
+ wmiir xwrite /tag/sel/ctl send sel toggle
+ Key $MODKEY-f
+ wmiir xwrite /client/sel/ctl Fullscreen toggle
+ Key $MODKEY-Shift-c
+ wmiir xwrite /client/sel/ctl kill
+ Key $MODKEY-Shift-t
+ wmiir xwrite "/client/$(wmiir read /client/sel/ctl)/tags" "$(tagsmenu)" &
+ Key $MODKEY-$LEFT
+ wmiir xwrite /tag/sel/ctl select left
+ Key $MODKEY-$RIGHT
+ wmiir xwrite /tag/sel/ctl select right
+ Key $MODKEY-$DOWN
+ wmiir xwrite /tag/sel/ctl select down
+ Key $MODKEY-$UP
+ wmiir xwrite /tag/sel/ctl select up
+ Key $MODKEY-Shift-$LEFT
+ wmiir xwrite /tag/sel/ctl send sel left
+ Key $MODKEY-Shift-$RIGHT
+ wmiir xwrite /tag/sel/ctl send sel right
+ Key $MODKEY-Shift-$DOWN
+ wmiir xwrite /tag/sel/ctl send sel down
+ Key $MODKEY-Shift-$UP
+ wmiir xwrite /tag/sel/ctl send sel up
+!
+ for i in 0 1 2 3 4 5 6 7 8 9; do
+ cat <<!
+ Key $MODKEY-$i
+ wmiir xwrite /ctl view "$i"
+ Key $MODKEY-Shift-$i
+ wmiir xwrite /client/sel/tags "$i"
+!
+ done
+}
+
+# WM Configuration
+wmiir write /ctl << EOF
+font $WMII_FONT
+focuscolors $WMII_FOCUSCOLORS
+normcolors $WMII_NORMCOLORS
+grabmod $MODKEY
+border 1
+EOF
+
+export WMII_MENU WMII_9MENU WMII_FONT WMII_TERM
+export WMII_FOCUSCOLORS WMII_SELCOLORS WMII_NORMCOLORS
+
+# Feed events to `wmiiloop' for processing
+eval "$(eventstuff | sed 's/^[ ]//' | { . wmiiloop; })"
+
+echo "$Keys" | tr ' ' '\n' | wmiir write /keys
+
+# Functions
+Action() {
+ action=$1; shift
+ if [ -n "$action" ]; then
+ Action_$action "$@" \
+ || conf_which $action "$@"
+ fi
+}
+
+proglist() {
+ paths=$(echo "$@" | sed 'y/:/ /')
+ ls -lL $paths 2>/dev/null \
+ | awk '$1 ~ /^[^d].*x/ && NF > 2 { print $NF }' \
+ | sort | uniq
+}
+
+# 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