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
}
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'.
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
}
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.