screenのなかからXのアプリケーションを起動するときに
DISPLAY環境変数を設定するためのラッパを書いてつかっている。
DISPLAY環境変数を設定するためのラッパを書いてつかっている。
#!/bin/sh
if [ -n "$DISPLAY" ]; then
:
else
LIST=$(
nmap -sT -p6000-6020 localhost | awk '
$2=="open" && $1~/^[1-9][0-9]*\/tcp/ {
gsub(/\/tcp/, "", $1);
printf(":%d\n", $1 - 6000);
}'
)
i=1
for disp in $LIST; do
eval DISPLAY_$i=$disp
i=$((i + 1))
done
tty=$(tty 2>/dev/null)
echo "tty=$tty"
if [ -n "$DISPLAY_2" -a -n "$tty" ]; then
i=1
for disp in $LIST; do
printf "%2d %s\n" $i $disp
i=$((i + 1))
done
printf "select DISPLAY: "
read input
eval val=\$DISPLAY_${input:-1}
DISPLAY=${val:-$input}
elif [ -n "$DISPLAY_1" ]; then
DISPLAY=$DISPLAY_1
else
printf "input DISPLAY: "
read DISPLAY
fi
echo "DISPLAY=$DISPLAY"
export DISPLAY
fi
exec "$@"














