blob: b2aadbb3241f122dd4a11e683f91de799ac75e87 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#!/bin/sh
# This script allows you to focus another uzbl window
# It considers all uzbl windows in the current tag
# you can select one from a list, or go to the next/previous one
# It does not change the layout (stacked/tiled/floating) nor does it
# changes the size or viewing mode of a uzbl window
# When your current uzbl window is maximized, the one you change to
# will be maximized as well.
# See http://www.uzbl.org/wiki/wmii for more info
# $1 must be one of 'list', 'next', 'prev'
DMENU_SCHEME="wmii"
. "$UZBL_UTIL_DIR/dmenu.sh"
case "$1" in
"list")
list=""
# get window id's of uzbl clients. we could also get the label in one shot but it's pretty tricky
for i in $( wmiir read /tag/sel/index | grep uzbl | cut -d ' ' -f 2 ); do
label="$( wmiir read /client/$i/label )"
list="$list$i : $label\n"
done
window="$( echo "$list" | $DMENU | cut -d ' ' -f 1 )"
wmiir xwrite /tag/sel/ctl "select client $window"
;;
"next")
current="$( wmiir read /client/sel/ctl | head -n 1 )"
# find the next uzbl window and focus it
next="$( wmiir read /tag/sel/index | grep -A 10000 " $current " | grep -m 1 uzbl | cut -d ' ' -f 2 )"
if [ -n "$next" ]; then
wmiir xwrite /tag/sel/ctl "select client $next"
fi
;;
"prev")
current="$( wmiir read /client/sel/ctl | head -n 1 )"
prev="$( wmiir read /tag/sel/index | grep -B 10000 " $current " | tac | grep -m 1 uzbl | cut -d ' ' -f 2 )"
if [ -n "$prev" ]; then
wmiir xwrite /tag/sel/ctl "select client $prev"
fi
;;
* )
echo "$1 not valid" >&2
exit 2
;;
esac
|