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”.

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
}

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.