Uzyskaj rozdzielczość ekranu z wiersza poleceń dla Linux Desktop


Odpowiedzi:


37

Użyj polecenia xrandr. Bez żadnego argumentu wyświetla dostępne rozdzielczości i bieżącą (z gwiazdką), na przykład:

$ xrandr | fgrep '*'

Czy możesz dołączyć próbkę do odpowiedzi? I zgaduję, xrandr |g grep \*czy to podstęp?
Ehtesh Choudhury

11

Alternatywne rozwiązanie: xdpyinfo | grep dimensions. xdpyinfojest starszy niż xrandr, więc może być bardziej przenośny, jeśli zdarzy ci się użyć bardzo starej dystrybucji lub innego serwera X.


2
Rzeczywiście, ale niektóre (wszystkie?) Ustawienia wielu monitorów pojawiają się jako jeden ekran, xdpyinfopodczas gdy xrandrpoprawnie wyliczają ekrany i ich rozdzielczość. W zależności od kontekstu może to stanowić problem.
Stéphane Gourichon

Uwaga: chociaż xdpyinfowydaje się, że raportuje prawidłowe wymiary w pikselach, zgłasza złą rozdzielczość (DPI). Np. Na moim monitorze z wymiarami 3840 x 2160 (natywny i rzeczywisty) i rozmiarem 708 mm x 399 mm, jak podaje raport xrandr, xdpyinfomówi, że rozdzielczość wynosi 96 x 96 punktów na cal.
Ruslan

7

Rozdzielczość poziomą i pionową można uzyskać za pomocą następującego polecenia:

xdpyinfo | grep dimensions | awk '{print $2}' | awk -Fx '{print $1, $2}'

lub, w bardziej zwartej formie (jak sugeruje Peter.O w tym komentarzu):

xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}' 

Na przykład na ekranie o rozdzielczości 1600 x 900 spowoduje to wyświetlenie następujących danych wyjściowych:

1600 900

Następnie możesz umieścić wartości w osobnych zmiennych za pomocą polecenia:

read RES_X RES_Y <<<$(xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}')

Wyświetl wartości powyższych zmiennych za pomocą polecenia:

echo $RES_X, $RES_Y

W przypadku wyświetlacza o rozdzielczości 1600x900 wyjście to:

1600, 900

1
xdpyinfo | awk -F '[x] +' '/ Dimensions: / {print 3 $, 4 $}'
Peter.O

@ Peter.O, dzięki. To ładna, kompaktowa forma polecenia. Zaktualizowałem odpowiedź.
crayzeewulf

Rzeczywiście, ale niektóre (wszystkie?) Konfiguracje dla wielu monitorów pojawiają się w xdpyinfo jako jeden ekran, podczas gdy xrandr poprawnie wylicza ekrany i ich rozdzielczość. W zależności od kontekstu może to stanowić problem.
Stéphane Gourichon

5

Powinienem spojrzeć trochę mocniej przed opublikowaniem. xrandrwyemituje bieżące ustawienia wyświetlania, jeśli nie otrzyma żadnych innych argumentów.

Domyślnie spowoduje to zrzucenie wszystkich możliwych ustawień wyświetlania, które można filtrować w następujący sposób:

xrandr | egrep '^[^ ]|[0-9]\*\+'

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.