summaryrefslogtreecommitdiff
path: root/.wmii/wmiirc
diff options
context:
space:
mode:
Diffstat (limited to '.wmii/wmiirc')
-rwxr-xr-x.wmii/wmiirc262
1 files changed, 2 insertions, 260 deletions
diff --git a/.wmii/wmiirc b/.wmii/wmiirc
index 82c424b..1f1ea18 100755
--- a/.wmii/wmiirc
+++ b/.wmii/wmiirc
@@ -1,270 +1,12 @@
#!/bin/bash
-# Let any running instances of wmiirc know that we're starting
-wmiir xwrite /event Start
-
. "$HOME/.wmii/include.sh"
-echo ' ==> Starting wmiirc'
-mount9p=/opt/plan9/bin/9pfuse
-mkdir -p $WMII_NAMESPACE/mnt
-$mount9p $WMII_NAMESPACE/{wmii,mnt}
-
-MODKEY=Mod4 # super
-UP=p
-DOWN=n
-LEFT=b
-RIGHT=f
-
-# Colors tuples: "<text> <background> <border>"
-. `conffile theme-solarized-dark`
-
-# Menu history
-hist="`conffile history`"
-
-# Tagging Rules
-echo '/Emacs|Navigator/ -> +sel' >> $WMII_DIR/tagrules
-echo '/Eclipse/ -> +sel' >> $WMII_DIR/tagrules
-echo '/panel/ -> /.*/' >> $WMII_DIR/tagrules
-
-Event() {
- event=$1; shift;
- case "$event" in
- ## Mouse event meanings:
- ## MouseDown = mouse down
- ## Click = mouse up
- ## DND = hover, while dragging something (Drag 'n' Drop)
- ## The associated mouse button is always "1"
- ##
- ## Mouse-button IDs:
- ## 1 = left
- ## 2 = middle
- ## 3 = right
-
- ## WMII-meta events
- Quit) ## No args
- echo ' ==> Stopping wmiirc'
- echo " -> unmounting WMII_DIR=$WMII_DIR..."
- # might complain about /etc/mtab if the x server has already stopped
- fusermount -u "$WMII_DIR" 2>>/dev/null
- echo " -> rmdir'ing WMII_DIR=$WMII_DIR..."
- rmdir "$WMII_DIR";;
- Warning) ## $@=string
- notify-send "wmii warning: $*";;
- Key) ## $1=keystroke
- Key "$@";;
-
- ## WMII Window management events
- FocusFloating) ## No args
- ;;
- AreaFocus) ## $1=area
- ;;
- DestroyArea) ## $1=area
- ;;
- ColumnFocus) ## $1=column
- ;;
- CreateColumn) ## $1=column
- ;;
-
- ## Client events
- CreateClient) ## $1=client
- ;;
- DestroyClient) ## $1=client
- ;;
- Urgent) ## $1=client $2=[Manager|Client]
- ;;
- NotUrgent) ## $1=client $2=[Manager|Client]
- ;;
- ClientMouseDown) ## $1=client $2=button
- client=$1
- button=$2
- case $button in
- 1) ;;
- 2) ;;
- 3)
- {
- case `wmii9menu Delete Fullscreen` in
- Delete)
- echo kill |a $WMII_DIR/client/$client/ctl;;
- Fullscreen)
- echo Fullscreen on |a $WMII_DIR/client/$1/ctl;;
- esac
- }& ;;
- esac;;
- ClientClick) ## $1=client $2=button
- ;;
- Unresponsive) ## $1=client
- client=$1
- client_name=`cat $WMII_DIR/client/$client/label`
- msg="The client \`${client_name}' is not responding."
- msg+=" What would you like to do?"
- {
- resp=$(wihack -transient $client \
- xmessage -nearmouse -buttons Kill,Wait -print "$msg")
- if [ "$resp" = Kill ]; then
- echo slay |a $WMII_DIR/client/$client/ctl
- fi
- }& ;;
- Fullscreen) ## $1=client $2=[on|off]
- # TODO: hide any clients with the 'panel' class
- ;;
-
- ## Tag events
- CreateTag) ## $1=tag
- echo "$WMII_NORMCOLORS" $@ |a $WMII_DIR/lbar/$1;;
- DestroyTag) ## $1=tag
- rm $WMII_DIR/lbar/$1;;
- FocusTag) ## $1=tag
- echo "$WMII_FOCUSCOLORS" $1 |a $WMII_DIR/lbar/$1;;
- UnfocusTag) ## $1=tag
- echo "$WMII_NORMCOLORS" $1 |a $WMII_DIR/lbar/$1;;
- UrgentTag) ## $1=tag $2=[Manager|Client]
- echo "$WMII_URGENTCOLORS" $1 |a $WMII_DIR/lbar/$1;;
- NotUrgentTag) ## $1=tag $2=[Manager|Client]
- echo "$WMII_NORMCOLORS" $1 |a $WMII_DIR/lbar/$1;;
-
- ## LeftBar events (usually tag buttons)
- LeftBarMouseDown) ## $1=button $2=bar_item
- ;;
- LeftBarClick) ## $1=button $2=bar_item
- shift # ignore the button
- echo view "$@" |a $WMII_DIR/ctl;;
- LeftMouseDND) ## $1=button $2=bar_item
- Event LeftBarClick "$@";;
-
- ## RightBar events
- RightBarMouseDown) ## $1=button $2=bar_item
- ;;
- RightBarClick) ## $1=button $2=bar_item
- ;;
- RightMouseDND) ## $1=button $2=bar_item
- Event RightBarClick "$@";;
-
- ## Custom (non-WMII-generated) events
- Start) ## No args
- Event Quit;; # get out of the way for a new event loop
- esac
-} ## End Event
-
-# Key Bindings
-Key() {
- key=$1
- case "$key" in
- ## Moving around
-
- $MODKEY-$LEFT) ## Select the client to the left
- echo select left |a $WMII_DIR/tag/sel/ctl;;
- $MODKEY-$RIGHT) ## Select the client to the right
- echo select right |a $WMII_DIR/tag/sel/ctl;;
- $MODKEY-$UP) ## Select the client above
- echo select up |a $WMII_DIR/tag/sel/ctl;;
- $MODKEY-$DOWN) ## Select the client below
- echo select down |a $WMII_DIR/tag/sel/ctl;;
-
- $MODKEY-space) ## Toggle between floating and managed layers
- echo select toggle |a $WMII_DIR/tag/sel/ctl;;
-
- ## Moving clients around
-
- $MODKEY-Shift-$LEFT) ## Move selected client to the left
- wmiir xwrite /tag/sel/ctl send sel left;;
- $MODKEY-Shift-$RIGHT) ## Move selected client to the right
- wmiir xwrite /tag/sel/ctl send sel right;;
- $MODKEY-Shift-$UP) ## Move selected client up
- wmiir xwrite /tag/sel/ctl send sel up;;
- $MODKEY-Shift-$DOWN) ## Move selected client down
- wmiir xwrite /tag/sel/ctl send sel down;;
-
- $MODKEY-Shift-space) ## Toggle selected client between floating and managed layers
- wmiir xwrite /tag/sel/ctl send sel toggle;;
-
- ## Moving through stacks
- $MODKEY-Control-$UP) ## Select the stack above
- wmiir xwrite /tag/sel/ctl select up stack;;
- $MODKEY-Control-$DOWN) # Select the stack below
- wmiir xwrite /tag/sel/ctl select down stack;;
-
- ## Client actions
- $MODKEY-shift-1) ## Toggle selected client's fullsceen state
- wmiir xwrite /client/sel/ctl Fullscreen toggle;;
- $MODKEY-shift-0) ## Close client
- wmiir xwrite /client/sel/ctl kill;;
-
- ## Changing column modes
- $MODKEY-d) ## Set column to default mode
- wmiir xwrite /tag/sel/ctl colmode sel default-max;;
- $MODKEY-s) ## Set column to stack mode
- wmiir xwrite /tag/sel/ctl colmode sel stack-max;;
- $MODKEY-m) ## Set column to max mode
- wmiir xwrite /tag/sel/ctl colmode sel stack+max;;
-
- ## Running programs
- $MODKEY-a) ## Open wmii actions menu
- Action $(path_ls $WMII_CONFPATH | wimenu -h "${hist}.actions" -n 5000) & ;;
- $MODKEY-x) ## Open program menu
- setsid $(wimenu -h "${hist}.progs" -n 5000 <$progsfile) & ;;
- $MODKEY-Return) ## Launch a terminal
- setsid x-terminal-emulator & ;;
-
- ## Other
- $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;;
-
- ## Tag actions
- $MODKEY-t) ## Change to another tag
- {
- tag=$(lstags | wimenu -h "${hist}.tags" -n 50) || return
- wmiir xwrite /ctl view $tag
- }& ;;
- $MODKEY-Shift-t) ## Retag the selected client
- sel=$(sed 1q $WMII_DIR/client/sel/ctl)
- {
- tag=$(lstags | wimenu -h "${hist}.tags" -n 50) || return
- wmiir xwrite /client/$sel/tags $tag
- }& ;;
- esac
-} ## End Key
-
-# WM Configuration
-echo font xft:Monospace-8 |a $WMII_DIR/ctl
-echo focuscolors $WMII_FOCUSCOLORS |a $WMII_DIR/ctl
-echo normcolors $WMII_NORMCOLORS |a $WMII_DIR/ctl
-echo grabmod $MODKEY |a $WMII_DIR/ctl
-echo border 1 |a $WMII_DIR/ctl
-xsetroot -solid "$WMII_BACKGROUND" &
-
-progsfile=$WMII_NAMESPACE/.proglist
-path_ls $PATH > $progsfile &
-
-eval arg `scansection Key|cut -sf2` |a $WMII_DIR/keys
-
-# Clear the LBar
-find $WMII_DIR/lbar -type f -delete
-
-# Emulate [Create|Focus]Tag events
-seltag=`sed 1q $WMII_DIR/tag/sel/ctl`
-lstags | while read tag; do
- Event CreateTag "$tag"
- if [ "$tag" = "$seltag" ]; then
- Event FocusTag "$tag"
- fi
-done
-
-Action autostart 2>/dev/null &
+wmiir xwrite /event WmiircQuit # close any existing wmiirc's
-if [ -f "`conffile wmiirc_local`" ]; then
- . "`conffile wmiirc_local`"
-fi
+Event WmiircStart
trap "Event Quit" EXIT
-# use wmiir so it doesn't look like an open file
wmiir read /event 2>/dev/null | while read event; do
Event $event
done