diff options
author | Olivier Gayot <duskcoder@gmail.com> | 2014-12-22 15:50:58 +0100 |
---|---|---|
committer | Olivier Gayot <duskcoder@gmail.com> | 2014-12-22 15:51:17 +0100 |
commit | 23bad6219aaaed5d24e4e85a4fae1c382b33dc45 (patch) | |
tree | efde10fc8f2030be988c2148e0c007b8930473a6 /user/.wmii | |
parent | 9b3439e6ddc98a47085dc2fd64d03a7cb18cab77 (diff) |
wmii: add configuration file for wmii
some content in the configuration script might not check for
dependencies. We should have to fix it later.
Signed-off-by: Olivier Gayot <duskcoder@gmail.com>
Diffstat (limited to 'user/.wmii')
-rwxr-xr-x | user/.wmii/wmiirc | 326 |
1 files changed, 326 insertions, 0 deletions
diff --git a/user/.wmii/wmiirc b/user/.wmii/wmiirc new file mode 100755 index 0000000..6b2096c --- /dev/null +++ b/user/.wmii/wmiirc @@ -0,0 +1,326 @@ +#!/bin/dash -f +# Configure wmii +wmiiscript=wmiirc # For wmii.sh +. wmii.sh + +# Configuration Variables +MODKEY=Mod1 +UP=k +DOWN=j +LEFT=h +RIGHT=l + +# Bars +noticetimeout=5 +noticebar=/rbar/!notice + +# Colors tuples: "<text> <background> <border>" +export WMII_NORMCOLORS='#ffffff #0b0c2c #333333' +export WMII_FOCUSCOLORS='#ffffff #000000 #333333' +export WMII_BACKGROUND='#000000' +export WMII_LOWBATTERYCOLORS='#ffffff #ff0000 #333333' + +export WMII_FONT='-*-fixed-medium-r-*-*-13-*-*-*-*-*-*-*' + +set -- $(echo $WMII_NORMCOLORS $WMII_FOCUSCOLORS) +export WMII_TERM="urxvt" +export PATH=$HOME/bin:$PATH + +if ! test -d "${WMII_CONFPATH%%:*}"; then + mkdir "${WMII_CONFPATH%%:*}" + res=$(wihack -type DIALOG xmessage -nearmouse -buttons Windows,Alt -print -fn $WMII_FONT \ + "Welcome to wmii,$wi_newline$wi_newline" \ + "Most of wmii's default key bindings make use of the$wi_newline" \ + "Windows key, or equivalent. For keyboards lacking such$wi_newline" \ + "a key, many users change this to the Alt key.$wi_newline$wi_newline" \ + "Which would you prefer?") + [ "$res" = "Alt" ] && MODKEY=Mod1 + echo "MODKEY=$MODKEY" >"${WMII_CONFPATH%%:*}/wmiirc_local" + chmod +x "${WMII_CONFPATH%%:*}/wmiirc_local" +fi + +echo "bar on bottom" | wmiir write /ctl + +mp_watcher 2> /dev/null & +bat_watcher 2> /dev/null & + +# Menu history +hist="${WMII_CONFPATH%%:*}/history" +histnum=5000 + +# Column Rules +wmiir write /colrules <<! +#/gimp/ -> 17+83+41 +/.*/ -> 62+38 # Golden Ratio +! + +# Tagging Rules +wmiir write /tagrules <<! +#/MPlayer|VLC/ -> ~ +/terminal/ -> sel # Ignore terminal window groups. +! + + +local_events() { true;} +wi_runconf -s wmiirc_local + +echo $WMII_NORMCOLORS | wmiir create $noticebar + +# Event processing +events() { + cat <<'!' +# Events +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 LeftBarDND + shift + wmiir xwrite /ctl view "$@" +Event Unresponsive + { + client=$1; shift + msg="The following client is not responding. What would you like to do?$wi_newline" + resp=$(wihack -transient $client \ + xmessage -nearmouse -buttons Kill,Wait -print + -fn "${WMII_FONT%%,*}" "$msg $(wmiir read /client/sel/label)") + if [ "$resp" = Kill ]; then + wmiir xwrite /client/$client/ctl slay & + fi + }& +Event Notice + wmiir xwrite $noticebar $wi_arg + + kill $xpid 2>/dev/null # Let's hope this isn't reused... + { sleep $noticetimeout; wmiir xwrite $noticebar ' '; }& + xpid = $! + +# Menus +Menu Client-3-Delete + wmiir xwrite /client/$1/ctl kill +Menu Client-3-Kill + wmiir xwrite /client/$1/ctl slay +Menu Client-3-Fullscreen + wmiir xwrite /client/$1/ctl Fullscreen on +Event ClientMouseDown + wi_fnmenu Client $2 $1 & + +Menu LBar-3-Delete + tag=$1; clients=$(wmiir read "/tag/$tag/index" | awk '/[^#]/{print $2}') + for c in $clients; do + if [ "$tag" = "$(wmiir read /client/$c/tags)" ]; then + wmiir xwrite /client/$c/ctl kill + else + wmiir xwrite /client/$c/tags -$tag + fi + if [ "$tag" = "$(wi_seltag)" ]; then + newtag=$(wi_tags | awk -v't='$tag ' + $1 == t { if(!l) getline l + print l + exit } + { l = $0 }') + wmiir xwrite /ctl view $newtag + fi + done +Event LeftBarMouseDown + wi_fnmenu LBar "$@" & + +# Actions +Action showkeys + echo "$KeysHelp" | xmessage -file - -fn ${WMII_FONT%%,*} +Action quit + wmiir xwrite /ctl quit +Action exec + wmiir xwrite /ctl exec "$@" +Action rehash + wi_proglist $PATH >$progsfile +Action action_date + set +xv + if wmiir remove /rbar/99 2>/dev/null; then + sleep 2 + fi + echo "$WMII_NORMCOLORS" | wmiir create /rbar/99date + while echo -n $(date '+%D -- %I:%M %p') | wmiir write /rbar/99date; do + sleep 1 + done + +# Key Bindings + +KeyGroup Multimedia +Key XF86AudioRaiseVolume + amixer -q -- set Master 05%+ & +Key XF86AudioLowerVolume + amixer -q -- set Master 05%- & +Key $MODKEY-Control-0 + amixer -q -- set Master 05%+ & +Key $MODKEY-Control-9 + amixer -q -- set Master 05%- & +Key XF86AudioMute + amixer -q -- set Master toggle & +Key XF86HomePage + firefox & +Key Pause + mplayer_control pause & +Key $MODKEY-Shift-Right + mplayer_control "seek +5 0" & +Key $MODKEY-Shift-Left + mplayer_control "seek -5 0" & +Key $MODKEY-Shift-Up + mplayer_control "seek +60 0" & +Key $MODKEY-Shift-Down + mplayer_control "seek -60 0" & +Key $MODKEY-Shift-Prior + mplayer_control "seek +600 0" & +Key $MODKEY-Shift-Next + mplayer_control "seek -600 0" & +Key $MODKEY-KP_Right + mplayer_control "pt_step +1" & +Key $MODKEY-KP_Left + mplayer_control "pt_step -1" & + + +Key Scroll_Lock + lock & +Key XF86PowerOff + lock & +Key XF86Calculator + xterm calc & + +KeyGroup Moving around +Key $MODKEY-$LEFT # Select the client to the left + wmiir xwrite /tag/sel/ctl select left +Key $MODKEY-$RIGHT # Select the client to the right + wmiir xwrite /tag/sel/ctl select right +Key $MODKEY-$UP # Select the client above + wmiir xwrite /tag/sel/ctl select up +Key $MODKEY-$DOWN # Select the client below + wmiir xwrite /tag/sel/ctl select down + +Key $MODKEY-space # Toggle between floating and managed layers + wmiir xwrite /tag/sel/ctl select toggle + +KeyGroup Moving through stacks +Key $MODKEY-Control-$UP # Select the stack above + wmiir xwrite /tag/sel/ctl select up stack +Key $MODKEY-Control-$DOWN # Select the stack below + wmiir xwrite /tag/sel/ctl select down stack + +KeyGroup Moving clients around +Key $MODKEY-Shift-$LEFT # Move selected client to the left + wmiir xwrite /tag/sel/ctl send sel left +Key $MODKEY-Shift-$RIGHT # Move selected client to the right + wmiir xwrite /tag/sel/ctl send sel right +Key $MODKEY-Shift-$UP # Move selected client up + wmiir xwrite /tag/sel/ctl send sel up +Key $MODKEY-Shift-$DOWN # Move selected client down + wmiir xwrite /tag/sel/ctl send sel down + +Key $MODKEY-Shift-space # Toggle selected client between floating and managed layers + wmiir xwrite /tag/sel/ctl send sel toggle + +KeyGroup Client actions +Key $MODKEY-f # Toggle selected client's fullsceen state + wmiir xwrite /client/sel/ctl Fullscreen toggle +Key $MODKEY-Shift-c # Close client + wmiir xwrite /client/sel/ctl kill + +KeyGroup Changing column modes +Key $MODKEY-d # Set column to default mode + wmiir xwrite /tag/sel/ctl colmode sel default-max +Key $MODKEY-s # Set column to stack mode + wmiir xwrite /tag/sel/ctl colmode sel stack-max +Key $MODKEY-m # Set column to max mode + wmiir xwrite /tag/sel/ctl colmode sel stack+max + +KeyGroup Running programs +Key $MODKEY-a # Open wmii actions menu + action $(wi_actions | wimenu -h "${hist}.actions" -n $histnum) & +Key $MODKEY-p # Open program menu + eval wmiir setsid "$(wimenu -h "${hist}.progs" -n $histnum <$progsfile)" & + +Key $MODKEY-Return # Launch a terminal + eval wmiir setsid $WMII_TERM & + +KeyGroup Other +Key $MODKEY-Control-t # Toggle all other key bindings + case $(wmiir read /keys | wc -l | tr -d ' \t\n') in + 0|1) + echo -n "$Keys" | wmiir write /keys + wmiir xwrite /ctl grabmod $MODKEY;; + *) + wmiir xwrite /keys $MODKEY-Control-t + wmiir xwrite /ctl grabmod Mod3;; + esac + +KeyGroup Tag actions +Key $MODKEY-t # Change to another tag + (tag=$(wi_tags | wimenu -h "${hist}.tags" -n 50) && wmiir xwrite /ctl view $tag) & +Key $MODKEY-Shift-t # Retag the selected client + c=$(wi_selclient) + (tag=$(wi_tags | wimenu -h "${hist}.tags" -n 50) && wmiir xwrite /client/$c/tags $tag) & +! + + for i in 0 1 2 3 4 5 6 7 8 9; do + cat <<! +Key $MODKEY-$i # Move to the numbered view + wmiir xwrite /ctl view "$i" +Key $MODKEY-Shift-$i # Retag selected client with the numbered tag + wmiir xwrite /client/sel/tags "$i" +! + done + +cat <<! +Key $MODKEY-5 + wmiir xwrite /ctl view "5 Media" +Key $MODKEY-Shift-5 + wmiir xwrite /client/sel/tags "5 Media" +Key $MODKEY-9 + wmiir xwrite /ctl view "9 Network" +Key $MODKEY-Shift-9 + wmiir xwrite /client/sel/tags "9 Network" +! + +} +wi_events events local_events + +# WM Configuration +wmiir write /ctl <<! + font $WMII_FONT + focuscolors $WMII_FOCUSCOLORS + normcolors $WMII_NORMCOLORS + grabmod $MODKEY + border 1 +! + +feh --bg-fill ~/Images/background.jpg + +# Misc +progsfile="$(wmiir namespace)/.proglist" +action action_date & +wi_proglist $PATH >$progsfile & + +# Setup Tag Bar +IFS="$wi_newline" +wmiir rm $(wmiir ls /lbar | sed 's,^,/lbar/,') >/dev/null +seltag=$(wmiir read /tag/sel/ctl | sed 1q) +unset IFS +wi_tags | while read tag +do + if [ "$tag" = "$seltag" ]; then + echo "$WMII_FOCUSCOLORS" "$tag" + else + echo "$WMII_NORMCOLORS" "$tag" + fi | wmiir create "/lbar/$tag" +done + +wi_eventloop |