| 1 |
45 |
dpavlin |
#!/bin/sh -x |
| 2 |
42 |
dpavlin |
|
| 3 |
44 |
dpavlin |
uid="$1" |
| 4 |
|
|
test -z "$uid" && uid="null" |
| 5 |
|
|
name="dwm-popup-$uid" |
| 6 |
45 |
dpavlin |
id_f="/dev/shm/$name.id" |
| 7 |
42 |
dpavlin |
|
| 8 |
46 |
dpavlin |
function start() { |
| 9 |
44 |
dpavlin |
id=`xwit -current -print | cut -d: -f1` |
| 10 |
46 |
dpavlin |
echo "*** start uid $uid id $id to $id_f ***" |
| 11 |
44 |
dpavlin |
echo $id > $id_f |
| 12 |
46 |
dpavlin |
$@; |
| 13 |
|
|
rm -f $id_f; |
| 14 |
|
|
exit |
| 15 |
|
|
} |
| 16 |
44 |
dpavlin |
|
| 17 |
46 |
dpavlin |
if [ "$2" == "term" ] ; then |
| 18 |
44 |
dpavlin |
case $uid in |
| 19 |
46 |
dpavlin |
a) start screen -R -S $name ;; |
| 20 |
|
|
s) start screen -R -S $name irssi ;; |
| 21 |
|
|
*) start bash ;; |
| 22 |
44 |
dpavlin |
esac |
| 23 |
|
|
fi |
| 24 |
|
|
|
| 25 |
|
|
|
| 26 |
45 |
dpavlin |
case $uid in |
| 27 |
|
|
a) g="100x43+100-20"; f="neep-alt-iso8859-2-24" ;; |
| 28 |
66 |
dpavlin |
s) g="139x25+0+16"; f="neep-alt-iso8859-2-18" ;; |
| 29 |
45 |
dpavlin |
*) g="80x25+100+100"; f="neep-alt-iso8859-2-18" ; echo "*** default ***" ;; |
| 30 |
|
|
esac |
| 31 |
|
|
|
| 32 |
46 |
dpavlin |
xterm=`which rxvt-2.7.10 || whixh rxvt` |
| 33 |
|
|
term="$xterm -geometry $g -name $name -fn $f -rv +sb -n $name -ls -e $0 $uid term" |
| 34 |
45 |
dpavlin |
echo "*** using term: $term ***" |
| 35 |
|
|
|
| 36 |
44 |
dpavlin |
if [ ! -e $id_f ] ; then |
| 37 |
42 |
dpavlin |
$term |
| 38 |
|
|
else |
| 39 |
44 |
dpavlin |
id=`cat $id_f` |
| 40 |
42 |
dpavlin |
info=`xwininfo -id $id` |
| 41 |
45 |
dpavlin |
echo "*** $id from $id_f = $info ***" |
| 42 |
42 |
dpavlin |
test ! -z "$info" && ( |
| 43 |
|
|
op="-unmap" |
| 44 |
|
|
echo $info | grep 'Map State: IsViewable' > /dev/null || op="-pop" |
| 45 |
|
|
xwit $op -id $id |
| 46 |
|
|
) || $term |
| 47 |
|
|
fi |