Wykryj, czy wyświetlacz jest prawidłowy w systemie Linux

2

Czy istnieje sposób na wykrycie, czy wyświetlacz jest ważny w kontrolowany sposób? Na przykład, jeśli ustawię $DISPLAY=anydisplay lub $DISPLAY=0.0, czy istnieje sposób sprawdzenia, czy anydisplay lub 0.0 czy jest prawidłowy ekran, do którego mam dostęp? Piszę program, który ma zostać uruchomiony ze skryptu bash, a pomysł polega na ostrzeżeniu użytkownika, jeśli jego wyświetlanie nie jest poprawne i uruchomienie programu w trybie „konsoli”.

RegedUser00x
źródło

Odpowiedzi:

3

xhost to minimalistyczny sposób sprawdzania dostępności wyświetlania.

#!/usr/bin/env bash

xhost +si:localuser:$( whoami ) >&/dev/null && { 
    echo "GUI"
    myapp --gui
} || {
   echo "console"
   myapp --console
}
Oh My Goodness
źródło
błąd: musi być na komputerze lokalnym, aby dodać lub usunąć hosty.
Erik Aronesty
jaka jest dokładnie skarga? Jak napisano, kod działa (komunikat wskazuje, że wyświetlacz jest dostępny, a kod wyjścia jest pomyślny) i ukrywa fałszywy komunikat o błędzie.
Oh My Goodness
0

Możesz po prostu wyłączyć skrypt z informacyjnym komunikatem o błędzie. Jeśli spróbujesz uruchomić operację graficzną, a wyświetlacz jest niedostępny, pojawi się komunikat o błędzie. Więc po prostu spróbuj uruchomić to, co robisz graficznie i jeśli nie możesz wyjść i powiedzieć użytkownikowi, aby ponownie uruchomił skrypt z innym argumentem. Na przykład:

#!/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)

Wystarczy wymienić xterm z jakąkolwiek funkcją używaną do uruchamiania GUI.

terdon
źródło