Я хотел бы найти обои, которые наилучшим образом соответствуют моему разрешению. Как я могу получить разрешение, просто написав команды в командной строке?
Взято из этот ответ:
xdpyinfo | grep dimensions
Или получить только разрешение:
xdpyinfo | awk '/dimensions/{print $2}'
операционная
xdpyinfo | grep -oP 'dimensions:\s+\K\S+'
Я бы просто использовал xrandr
:
$ xrandr Screen 0: minimum 320 x 200, current 3520 x 1200, maximum 32767 x 32767LVDS1 connected 1600x900+1920+0 (normal left inverted right x axis y axis) 310mm x 174mm 1600x900 60.0*+ 1440x900 59.9 1360x768 59.8 60.0 1152x864 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 VGA1 disconnected (normal left inverted right x axis y axis)HDMI1 disconnected (normal left inverted right x axis y axis)DP1 connected primary 1920x1200+0+0 (normal left inverted right x axis y axis) 518mm x 324mm 1920x1200 60.0*+ 1920x1080 60.0 50.0 59.9 24.0 24.0 1920x1080i 60.1 50.0 60.0 1600x1200 60.0 1280x1024 75.0 60.0 1152x864 75.0 1280x720 60.0 50.0 59.9 1024x768 75.1 60.0 800x600 75.0 60.3 720x576 50.0 720x480 60.0 59.9 640x480 75.0 60.0 59.9 720x400 70.1 HDMI2 disconnected (normal left inverted right x axis y axis)HDMI3 disconnected (normal left inverted right x axis y axis)DP2 disconnected (normal left inverted right x axis y axis)DP3 disconnected (normal left inverted right x axis y axis)VIRTUAL1 disconnected (normal left inverted right x axis y axis)
Здесь у меня есть два экрана, разрешение которых:
- 1600x900 (ноутбук)
- 1920x1200 (монитор)
Чтобы получить только разрешение вашего основного монитора, вы также можете использовать этот python oneliner:
$ python3 -c 'from gi.repository import Gdk; screen=Gdk.Screen.get_default(); \geo = screen.get_monitor_geometry(screen.get_primary_monitor()); \print(geo.width, "x", geo.height)'1920 x 1200
Чтобы получить разрешение вашего расширенного рабочего стола (для настройки с несколькими мониторами):
$ python3 -c 'from gi.repository import Gdk; screen=Gdk.Screen.get_default(); \print(screen.get_width(), "x", screen.get_height())'3520 x 1200
Просьба заключалась в том, чтобы разрешение. Это дается с помощью
xdpyinfo | grep resolution
Вы также можете использовать:
xrandr | grep ' connected'
Пример вывода на одной из моих машин:
LVDS connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
Как бы то ни было, при использовании нескольких подключенных дисплеев и / или смещений с помощью TwinView xdpyinfo предоставит вам разрешение всего набора дисплеев в том виде, в каком они настроены. Если вам требуется разрешение одного монитора или монитора, подключенного к одному из портов отображения, вам необходимо использовать xrandr. Однако даже в такой конфигурации xrandr может быть ненадежным и не показывать разрешение. Смотрите этот пример записи из моего конфигурационного файла X windows:
Option "MetaModes" "DP-1: 1440x900 +0+0, DP-3: 1440x900 +1568+0, DP-5: 1440x900 +3136+0"
Вывод xrandr выглядит следующим образом:
DVI-D-0 disconnected primary (normal left inverted right x axis y axis)HDMI-0 disconnected (normal left inverted right x axis y axis)DP-0 disconnected (normal left inverted right x axis y axis)DP-1 connected 1440x900+0+0 (normal left inverted right x axis y axis) 410mm x 256mm 1440x900 59.89*+ 1280x1024 60.02 1280x960 60.00 1280x800 59.81 1280x720 60.00 1152x864 75.00 1024x768 70.07 60.00 800x600 75.00 60.32 56.25 640x480 75.00 72.81 59.94DP-2 disconnected (normal left inverted right x axis y axis)DP-3 connected (normal left inverted right x axis y axis) 1440x900 59.89 + 74.98 1280x1024 60.02 1280x960 60.00 1280x800 59.81 1280x720 60.00 1152x864 75.00 1024x768 70.07 60.00 800x600 75.00 60.32 56.25 640x480 75.00 72.81 59.94DP-4 disconnected (normal left inverted right x axis y axis)DP-5 connected 1440x900+1568+0 (normal left inverted right x axis y axis) 410mm x 256mm 1440x900 59.89*+ 1280x1024 60.02 1280x960 60.00 1280x800 59.81 1280x720 60.00 1152x864 75.00 1024x768 70.07 60.00 800x600 75.00 60.32 56.25 640x480 75.00 72.81 59.94
Вы можете видеть, что DP-3 не показывает разрешение в строке, которое показал бы grep для "подключено". Таким образом, лучшая, наиболее последовательная и надежная команда, которую я нашел для определения разрешения любого отдельного подключенного дисплея, - это:
/usr/bin/xrandr --query|/usr/bin/grep -A 1 connected|grep -v connected
который производит это:
1440x900 59.89*+-- 1440x900 59.89*+ 74.98-- 1440x900 59.89*+
На этом этапе довольно тривиально выбрать разные разрешения или grep только для одного порта.
На raspberry pi без X я смог получить разрешение экрана, запустив:
fbset -s
Другим решением является использование xprop:
$ xprop -notype -len 16 -root _NET_DESKTOP_GEOMETRY | cut -c 25-11520, 1080
Если кого-то это волнует, на моей машине это было немного быстрее, чем grepping xdpyinfo
Или, если вы заботитесь только о ширине:
$ xprop -notype -len 8 -root _NET_DESKTOP_GEOMETRY | cut -c 25-11520
Протестировано только на нескольких дисплеях, организованных через Xinerama.
Вы можете получить разрешение вашего текущего экрана следующим образом:
-
Получите разрешение X, выполнив:
X=$(xrandr --current | grep '*' | uniq | awk '{print $1}' | cut -d 'x' -f1)
-
Получите разрешение Y, выполнив:
Y=$(xrandr --current | grep '*' | uniq | awk '{print $1}' | cut -d 'x' -f2)
-
Выведите разрешение X и Y, выполнив:
echo "$X"x"$Y"
Это должно быть возможно сделать так, не используя awk
тоже.
Одним из альтернативных способов является:
Вы можете начать с выбора предпочитаемого вами веб-сайта, который покажет вам ваше разрешение экрана.
firefox https://de.piliapp.com/what-is-my/screen-resolution/
Вы также можете показать веб-страницу на своем терминале, используя https://www.brow.sh/
Если хотите, вы можете скрэппинговать эту страницу с помощью терминала, включив соответствующие инструменты скрэппинга веб-сайта python и экспортировав выходные данные в переменную терминала.
Вы также можете сделать xrandr | grep '\bconnected\b'
.
Ваше здоровье!
Вы можете получить результат монитора по следующему пути с помощью bash:
read x y < <(xrandr --current | grep -oP '\d+x\d+' | tr x ' ')echo $xecho $y