xrandr: как проверить зеркальность экранов - PullRequest
0 голосов
/ 14 февраля 2019

Какой простой способ проверить, отражаются ли мои мониторы с помощью xrandr?

Фон
Я использую polybar, и на данный момент у меня есть скрипт, которыйзапускает дополнительный polybar, если подключен мой второй монитор.Проблема в том, что когда я зеркалирую, я не хочу запускать этот второй бар.Вот мой код, если кому-то интересно:

#!/bin/bash

# Terminate already running bar instances
killall -q polybar

# Wait until the processes have been shut down
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done

# Launch bar 
polybar main_bar -r & 

my_laptop_external_monitor=$(xrandr --query | grep 'HDMI-1')
if [[ $my_laptop_external_monitor = *connected* ]]; then
    polybar external_bar &
fi

1 Ответ

0 голосов
/ 18 февраля 2019

Я запустил xrandr --listmonitors в моей системе с и без клонированных мониторов:

Не клонировано :

Monitors: 2
 0: +*DisplayPort-0 1920/598x1080/336+1920+0  DisplayPort-0
 1: +HDMI-0 1920/598x1080/336+0+0  HDMI-0

Клонировано

Monitors: 2
 0: +*DisplayPort-0 1920/598x1080/336+0+0  DisplayPort-0
 1: +HDMI-0 1920/598x1080/336+0+0  HDMI-0

Единственная разница заключается в положении выхода на экране, 1920+0 против 0+0.Когда монитор зеркальный, положение обоих мониторов одинаково (оба 0+0).

Если вы зеркально отразите свои мониторы таким образом 1 , хороший способ проверить, является ли монитор зеркальным, состоит в сравнении их положений в выходном сигнале xrandr --listmonitors.

.Я не думаю, что есть более чистый способ, чем этот.Насколько я могу судить, вы на самом деле не зеркально отображаете или не клонируете мониторы, вы просто устанавливаете их положение внутри экрана таким образом, чтобы они перекрывались, и при рендеринге оба монитора показывают одно и то же изображение, потому что они находятся в одном и том же месте.Вот почему на самом деле не существует простого способа проверки зеркальных экранов.


1 Примечание: Монитор был клонирован с помощью следующей команды

xrandr --output HDMI-0 --same-as DisplayPort-0
...