Pode haver uma maneira mais fácil, mas eu escreveria um script que consultasse as exibições com xdpyinfo .
Existem praticamente 3 casos:
-
A exibição existe e seu shell tem acesso ao display. xdpyinfo mostrará muitas informações.
-
A exibição existe e seu shell não tem acesso ao display. xdpyinfo emitirá um erro de acesso e um erro incapaz de abrir, como este:
Invalid MIT-MAGIC-COOKIE-1 keyxdpyinfo: unable to open display ":0".
-
A exibição não existe. xdpyinfo emitirá um erro incapaz de abrir:
xdpyinfo: unable to open display ":1".
Um script seria parecido com isto:
#/bin/bash
CHECKDISPLAY=0
DONE="no"
while [ "$DONE" == "no" ]
do
out=$(xdpyinfo -display :$CHECKDISPLAY 2>&1)
if [[ "$out" == name* ]] || [[ "$out" == Invalid* ]]
then
# command succeeded; or failed with access error; display exists
(( CHECKDISPLAY+=1 ))
else
# display doesn't exist
DONE="yes"
fi
done
echo "first available display is :$CHECKDISPLAY"