Bash xrandr:如何检查镜像屏幕
用什么干净的方法来检查我的监视器是否使用xrandr镜像 背景Bash xrandr:如何检查镜像屏幕,bash,xrandr,Bash,Xrandr,用什么干净的方法来检查我的监视器是否使用xrandr镜像 背景 我正在使用polybar,现在我有一个脚本,如果我的第二个显示器连接上,它会启动一个额外的polybar。问题是,当我镜像时,我不想启动第二个条。如果有人好奇,这是我的密码: #!/bin/bash # Terminate already running bar instances killall -q polybar # Wait until the processes have been shut down while pg
我正在使用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
我在我的系统上运行了xrandr--listmonitors
,包括克隆的监视器和未克隆的监视器:
未克隆:
克隆的
唯一的区别是输出在屏幕中的位置,1920+0
vs0+0
。镜像监视器时,两个监视器的位置相同(均0+0
)
如果以这种方式镜像监视器1,检查监视器是否镜像的一个好方法是比较它们在xrandr--listmonitors
输出中的位置
我认为没有比这更干净的方法了。据我所知,你实际上并没有镜像或克隆监视器,你只是在屏幕内部设置它们的位置,使它们重叠。渲染时,两个监视器显示相同的图片,因为它们位于同一位置。这就是为什么没有一种直接的方法来测试镜像屏幕
1旁注:监视器是用以下命令克隆的
xrandr——输出HDMI-0——与DisplayPort-0相同
好的,如果我理解正确,那么镜像时两者的位置都将是0+0
,无论外部监视器的分辨率如何(我使用的外部监视器的分辨率不同)@MattiasJohnson是的,这很有可能,特别是如果您最多有两个监视器,但你必须亲自测试才能绝对确定。外部监视器的分辨率应该无关紧要,因为它将缩放到主监视器的分辨率。
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