summaryrefslogtreecommitdiff
path: root/.config/wmii-hg
diff options
context:
space:
mode:
Diffstat (limited to '.config/wmii-hg')
-rwxr-xr-x.config/wmii-hg/autostart14
-rw-r--r--.config/wmii-hg/config.sh67
-rw-r--r--.config/wmii-hg/fixes.sh24
-rwxr-xr-x.config/wmii-hg/rbar9
-rw-r--r--.config/wmii-hg/rbar.sh18
-rwxr-xr-x.config/wmii-hg/rbar_acpi18
-rwxr-xr-x.config/wmii-hg/rbar_battery9
-rwxr-xr-x.config/wmii-hg/rbar_clock19
-rwxr-xr-x.config/wmii-hg/rbar_cpu12
-rwxr-xr-x.config/wmii-hg/rbar_wifi50
-rw-r--r--.config/wmii-hg/theme-tango1
-rw-r--r--.config/wmii-hg/util.sh12
-rwxr-xr-x.config/wmii-hg/wmiirc6
13 files changed, 146 insertions, 113 deletions
diff --git a/.config/wmii-hg/autostart b/.config/wmii-hg/autostart
deleted file mode 100755
index cee702a..0000000
--- a/.config/wmii-hg/autostart
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-. include.sh
-
-xrandr --output VGA-1 --off
-
-daemon xcompmgr &> /dev/null
-daemon lxpanel &> /dev/null
-#daemon nm-applet &> /dev/null
-daemon dunst &> /dev/null
-daemon blueman-applet &> /dev/null
-daemon clipit -dn &> /dev/null
-
-#Action rbar_cpu 01 &
-Action rbar_clock 99 &
diff --git a/.config/wmii-hg/config.sh b/.config/wmii-hg/config.sh
index f185f9f..be75d65 100644
--- a/.config/wmii-hg/config.sh
+++ b/.config/wmii-hg/config.sh
@@ -13,7 +13,7 @@ mkdir -p -- "${HIST%/*}"
. theme-tango-dark
Event() {
- event=$1; shift;
+ local event=$1; shift;
case "$event" in
## Mouse event meanings:
## MouseDown = mouse down
@@ -36,22 +36,18 @@ Event() {
< "`conffile rules`" expand_variables >> $WMII_DIR/rules
< "`conffile ctl-init`" expand_variables >> $WMII_DIR/ctl
scansection Key | cut -sf2 >> $WMII_DIR/keys
- # Configure X11
#hsetroot -solid "$WMII_BACKGROUND"
# Clear the LBar and RBar
find $WMII_DIR/{l,r}bar -type f -delete
# Populate the LBar by emulating [Create|Focus]Tag events
- seltag=`sed 1q $WMII_DIR/tag/sel/ctl`
+ local tag seltag="$(sed 1q $WMII_DIR/tag/sel/ctl)"
while read -r tag; do
Event CreateTag "$tag"
if [ "$tag" = "$seltag" ]; then
Event FocusTag "$tag"
fi
done < <(lstags)
-
- # Run the autostart action
- Action autostart 2>/dev/null &
;;
WmiircQuit) ## No args
echo ' ==> Stopping wmiirc'
@@ -65,7 +61,7 @@ Event() {
echo " -> Unmounting WMII_DIR=$WMII_DIR..."
9umount "$WMII_DIR"
echo " -> Removing mountpoint WMII_DIR=$WMII_DIR..."
- rmdir "$WMII_DIR";;
+ rmdir -p "$WMII_DIR" 2>/dev/null;;
## WMII-meta events
Quit) ## No args
echo ' ==> wmii quit: unmounting'
@@ -99,14 +95,14 @@ Event() {
NotUrgent) ## $1=client $2=[Manager|Client]
;;
ClientMouseDown) ## $1=client $2=button
- client=$1
- button=$2
+ local client=$1
+ local button=$2
case $button in
1) ;;
2) ;;
3)
{
- case `wmii9menu Delete Fullscreen` in
+ case $(wmii9menu Delete Fullscreen) in
Delete)
echo kill >> $WMII_DIR/client/$client/ctl;;
Fullscreen)
@@ -117,8 +113,9 @@ Event() {
ClientClick) ## $1=client $2=button
;;
Unresponsive) ## $1=client
- client=$1
- client_name=`cat $WMII_DIR/client/$client/label`
+ local client=$1
+ local client_name=$(< $WMII_DIR/client/$client/label)
+ local msg resp
msg="The client \`${client_name}' is not responding."
msg+=" What would you like to do?"
{
@@ -141,10 +138,10 @@ Event() {
echo colors "$WMII_FOCUSCOLORS" >> $WMII_DIR/lbar/$1;;
UnfocusTag) ## $1=tag
echo colors "$WMII_NORMCOLORS" >> $WMII_DIR/lbar/$1;;
- UrgentTag) ## $1=tag $2=[Manager|Client]
- echo colors "$WMII_URGENTCOLORS" >> $WMII_DIR/lbar/$1;;
- NotUrgentTag) ## $1=tag $2=[Manager|Client]
- echo colors "$WMII_NORMCOLORS" >> $WMII_DIR/lbar/$1;;
+ UrgentTag) ## $1=[Manager|Client] $2=tag
+ echo colors "$WMII_URGENTCOLORS" >> $WMII_DIR/lbar/$2;;
+ NotUrgentTag) ## $1=[Manager|Client] $2=tag
+ echo colors "$WMII_NORMCOLORS" >> $WMII_DIR/lbar/$2;;
## LeftBar events (usually tag buttons)
LeftBarMouseDown) ## $1=button $2=bar_item
@@ -157,7 +154,11 @@ Event() {
## RightBar events
RightBarMouseDown) ## $1=button $2=bar_item
- ;;
+ local button=$1
+ local item=$2
+ local name=${item#[0-9][0-9]_}
+ name=${name%.*}
+ Action "rbar_$name" "$button" & ;;
RightBarClick) ## $1=button $2=bar_item
;;
RightMouseDND) ## $1=button $2=bar_item
@@ -166,7 +167,7 @@ Event() {
}
Key() {
- key=$1
+ local key=$1
case "$key" in
## Moving around
@@ -217,32 +218,34 @@ Key() {
## Running programs
$MODKEY-a) ## Open wmii actions menu
- Action $(path_ls $WMII_CONFPATH | wimenu -h "${HIST}.actions" -n 5000) & ;;
+ local action
+ action="$(path_ls "$WMII_CONFPATH" | wimenu -h "${HIST}.actions" -n 5000)" || return
+ Action "$action" & ;;
$MODKEY-x) ## Open program menu
- (PATH=$_PATH exec setsid $(path_ls $PATH | wimenu -h "${HIST}.progs" -n 5000)) & ;;
+ local command
+ command="$(path_ls "$_PATH" | wimenu -h "${HIST}.progs" -n 5000)" || return
+ ( PATH=$_PATH; unset _PATH; exec $command ) & ;;
$MODKEY-Return) ## Launch a terminal
- (PATH=$_PATH exec setsid x-terminal-emulator) & ;;
+ ( PATH=$_PATH; unset _PATH; exec x-terminal-emulator ) & ;;
## Tag actions
$MODKEY-t) ## Change to another tag
- {
- tag=$(lstags | wimenu -h "${HIST}.tags" -n 50) || return
- echo view $tag >> $WMII_DIR/ctl
- }& ;;
+ local tag
+ tag=$(lstags | wimenu -h "${HIST}.tags" -n 50) || return
+ echo view "$tag" >> $WMII_DIR/ctl;;
$MODKEY-Shift-t) ## Retag the selected client
+ local sel tag
sel=$(sed 1q $WMII_DIR/client/sel/ctl)
- {
- tag=$(lstags | wimenu -h "${HIST}.tags" -n 50) || return
- echo "$tag" >> $WMII_DIR/client/$sel/tags
- }& ;;
+ tag=$(lstags | wimenu -h "${HIST}.tags" -n 50) || return
+ echo "$tag" >> $WMII_DIR/client/$sel/tags;;
esac
}
Action() {
- prog=$(path_which "$WMII_CONFPATH" "$1"); shift
+ local prog=$(path_which "$WMII_CONFPATH" "$1"); shift
if [ -n "$prog" ]; then
- "$prog" "$@"
+ exec "$prog" "$@"
else
- false
+ exec false
fi
}
diff --git a/.config/wmii-hg/fixes.sh b/.config/wmii-hg/fixes.sh
deleted file mode 100644
index 5858859..0000000
--- a/.config/wmii-hg/fixes.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-# Fix various deficiencies in either the shell or the filesystem
-
-##
-# Usage: ls DIRECTORY
-# Linux's 9p kernel module sometimes omits entries in directory listings
-##
-unalias ls &>/dev/null
-ls() {
- local real_ls=("$(which ls)" -1F)
- [ $# = 0 ] && set -- "$PWD"
- f="${1/#${WMII_DIR}/}"
- if [ "$f" = "$1" ]; then
- "${real_ls[@]}" "$f"
- else
- wmiir ls "$f"
- fi
-}
-
-##
-# Usage: setsid cmd [arguments...]
-# I like wmiir's setsid better than linux-utils'
-##
-setsid() { wmiir setsid "$@"; }
diff --git a/.config/wmii-hg/rbar b/.config/wmii-hg/rbar
new file mode 100755
index 0000000..9aaa485
--- /dev/null
+++ b/.config/wmii-hg/rbar
@@ -0,0 +1,9 @@
+#!/bin/bash
+IFS=:
+read -r name prefix DISPLAY <<<"$1"
+export DISPLAY
+
+id=$1
+name=${id#[0-9][0-9]_}
+
+exec "$0"_"$name" "${id}"
diff --git a/.config/wmii-hg/rbar.sh b/.config/wmii-hg/rbar.sh
new file mode 100644
index 0000000..8297b71
--- /dev/null
+++ b/.config/wmii-hg/rbar.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+setup_trap() {
+ trap "rm -f -- ${HOME}/n/wmii*/rbar/${1}" EXIT
+}
+
+write() {
+ dirs=("${HOME}"/n/wmii*/rbar/)
+ sponge|tee -a "${dirs[@]/%/${1}}" > /dev/null
+}
+
+set -eE
+shopt -s nullglob
+case "$1" in
+ 1) left-click;;
+ 2) middle-click;;
+ 3) right-click;;
+ *) update "$1";;
+esac
diff --git a/.config/wmii-hg/rbar_acpi b/.config/wmii-hg/rbar_acpi
new file mode 100755
index 0000000..bdcdf0f
--- /dev/null
+++ b/.config/wmii-hg/rbar_acpi
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+update() {
+ id=$1
+ setup_trap "${id}.*"
+
+ while true; do
+ acpi -bt | sed -r \
+ -e 's/^([A-Z])[a-z]+ ([0-9]+):/\1\2:/' \
+ -e 's/\s*degrees\s*/°/g' |
+ cat -n | while read -r n line; do
+ printf "label %s\n" "$line" | write "${id}.${n}"
+ done
+ sleep 1
+ done
+}
+
+. "$(dirname "$0")/rbar.sh"
diff --git a/.config/wmii-hg/rbar_battery b/.config/wmii-hg/rbar_battery
deleted file mode 100755
index f632f7e..0000000
--- a/.config/wmii-hg/rbar_battery
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-. include.sh
-
-priority=$1
-
-while connected_to_x_server; do
- printf 'label %s\n' "$(acpi -b)" >> "$WMII_DIR/rbar/${priority}_battery"
- sleep 1
-done
diff --git a/.config/wmii-hg/rbar_clock b/.config/wmii-hg/rbar_clock
index 6aecb92..a09f016 100755
--- a/.config/wmii-hg/rbar_clock
+++ b/.config/wmii-hg/rbar_clock
@@ -1,9 +1,16 @@
#!/bin/bash
-. include.sh
-priority=$1
+update() {
+ id=$1
+ setup_trap "$id"
-while connected_to_x_server; do
- printf 'label %s\n' "$(date)" >> "$WMII_DIR/rbar/${priority}_clock"
- sleep .5
-done
+ while true; do
+ {
+ printf 'label '
+ date +'%a, %F %T %Z(%:::z)'
+ } | write "$id"
+ sleep .5
+ done
+}
+
+. "$(dirname "$0")/rbar.sh"
diff --git a/.config/wmii-hg/rbar_cpu b/.config/wmii-hg/rbar_cpu
deleted file mode 100755
index 5531e60..0000000
--- a/.config/wmii-hg/rbar_cpu
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-. include.sh
-
-priority=$1
-
-while connected_to_x_server; do
- # This doesn't work for me, it shows capacity
- #echo -n 'Core MHz:' $(cat /proc/cpuinfo | grep 'cpu MHz' | sed 's/.*: //g; s/\..*//g;') >> "$WMII_DIR/rbar/${priority}_cpu"
- # This actually displays %idle
- echo 'label CPU: [ '$(tail -n3 ~/tmp/cputime|sed -ur 's/\s\s+/\t/g'|cut -f2,11|sed 's/\t\(.*\)/(\1)/')' ]' >> "$WMII_DIR/rbar/${priority}_cpu"
- sleep 1
-done
diff --git a/.config/wmii-hg/rbar_wifi b/.config/wmii-hg/rbar_wifi
index 18395a3..63dc653 100755
--- a/.config/wmii-hg/rbar_wifi
+++ b/.config/wmii-hg/rbar_wifi
@@ -1,9 +1,47 @@
#!/bin/bash
-. include.sh
-priority=$1
+iwinfo() {
+ local interface=$1
+ iwconfig "$interface" |
+ sed -r 's/ {2,}/\n/g' |
+ sed -e '/^\s*$/d' -e 's/:\s*/=/' \
+ -e '1s/^/Interface=/' \
+ -e '2s/^/MAC Protocol=/'
+}
-while connected_to_x_server; do
- echo 'label Wlan0:' $(iwconfig wlan0 | sed 's/ /\n/g' | grep Quality) >> "$WMII_DIR/rbar/${priority}_wifi"
- sleep 1
-done
+update() {
+ local id
+ id=$1
+ setup_trap "$id"
+ while true; do
+ {
+ printf 'label '
+ iwinfo wlp2s0|grep -E '^(ESSID|Link Quality)='|sed 'N;s/\n/ | /'
+ } | write "$id"
+ sleep 1
+ done
+}
+
+right-click() {
+ local list cur item
+
+ list=()
+ IFS=''
+ while read -r line; do
+ list+=("$line")
+ done < <(netctl-auto list | sed 's,$,$,' | column -s '$' -t)
+
+ cur=''
+ for item in "${list[@]}"; do
+ if [[ "$item" = '* '* ]]; then
+ cur="$item"
+ fi
+ done
+
+ item=$(wmii9menu -i "$cur" "${list[@]}")
+ if [[ -n $item ]] && [[ "$item" != '* '* ]]; then
+ netctl-auto switch-to "$item"
+ fi
+}
+
+. "$(dirname "$0")/rbar.sh"
diff --git a/.config/wmii-hg/theme-tango b/.config/wmii-hg/theme-tango
index e0e35d4..f4c20a2 100644
--- a/.config/wmii-hg/theme-tango
+++ b/.config/wmii-hg/theme-tango
@@ -7,4 +7,3 @@ TANGO_plum=( "#ad7fa8" "#75507b" "#5c3566")
TANGO_red=( "#ef2929" "#cc0000" "#a40000")
TANGO_alum=( "#eeeeec" "#d3d7cf" "#babdb6"
"#888a85" "#555753" "#2e3436")
-
diff --git a/.config/wmii-hg/util.sh b/.config/wmii-hg/util.sh
index 2211d28..b28a3b6 100644
--- a/.config/wmii-hg/util.sh
+++ b/.config/wmii-hg/util.sh
@@ -1,8 +1,5 @@
#!/bin/bash
-# I moved "fixes" into a separate file because it isn't so much configuration...
-. fixes.sh
-
################################################################################
# Added shell features #
################################################################################
@@ -25,11 +22,12 @@ dquote() {
# Usage: expand_variables
# Expands variables read from /dev/stdin
##
-expand_variables() {
- while read; do
- eval printf "'%s\n'" "$(dquote "$REPLY")"
+expand_variables() (
+ IFS=''
+ while read -r line; do
+ eval printf "'%s\n'" "$(dquote "$line")"
done
-}
+)
is_mounted() {
local dir="$(readlink -m $1)"
diff --git a/.config/wmii-hg/wmiirc b/.config/wmii-hg/wmiirc
index a6585de..396bed2 100755
--- a/.config/wmii-hg/wmiirc
+++ b/.config/wmii-hg/wmiirc
@@ -2,8 +2,10 @@
unset WMII_NAMESPACE
unset WMII_DIR
-export _PATH="$PATH"
-export PATH="$WMII_CONFPATH:$PATH"
+if [[ -z $_PATH ]]; then
+ export _PATH="$PATH"
+ export PATH="$WMII_CONFPATH:$PATH"
+fi
. include.sh