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 | |
| 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>
| -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  | 
