screenのなかからXのアプリケーションを起動するときに
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 "$@"