Detectar se a exibição é válida no Linux

2

Existe uma maneira de detectar se a exibição é válida de maneira controlada? Por exemplo, se eu definir $DISPLAY=anydisplay ou $DISPLAY=0.0 , existe uma maneira de verificar se anydisplay ou 0.0 é uma exibição válida à qual eu tenho acesso? Eu estou escrevendo um programa que se destina a ser lançado a partir de um script bash ea idéia é avisar o usuário se sua exibição não é válida e executar o programa no modo 'console'.

    
por RegedUser00x 11.09.2013 / 13:47

2 respostas

3

xhost é uma maneira minimalista de analisar a acessibilidade de exibição.

#!/usr/bin/env bash

xhost +si:localuser:$( whoami ) >&/dev/null && { 
    echo "GUI"
    myapp --gui
} || {
   echo "console"
   myapp --console
}
    
por 13.09.2013 / 21:59
0

Você pode apenas fazer o script sair com uma mensagem de erro informativa. Se você tentar iniciar uma operação gráfica e a exibição não estiver acessível, você receberá uma mensagem de erro. Então, apenas tente iniciar o que estiver fazendo graficamente e se você não conseguir sair e dizer ao usuário para executar novamente o script com outro argumento. Por exemplo:

#!/usr/bin/env bash

xterm 2>/dev/null || 
(echo "The display $DISPLAY is not accessible."
echo "Please run the script again using the '--no-gui' optiion" && 
exit 1)

Basta substituir xterm pela função que você usa para iniciar sua GUI.

    
por 11.09.2013 / 14:29