bash - xrandr:如何检查是否镜像屏幕
问题描述
什么是检查我的显示器是否被 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
解决方案
我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
推荐阅读
- mysql - SQL Dump - Wordpress 无法识别导入的表
- deployment - 构建时 gatsby-source-contentful 选项错误
- sql-execution-plan - 是否有可能从存储过程中获得解释计划结果?
- angular - Angular http get调用保存对变量的响应?
- tomcat - Tomcat - 有没有办法从来自 /etc/hosts 的域名中过滤 _
- python-3.x - 如何在客户端请求中创建访问令牌以及如何在 lambda-authorizer 代码中对其进行验证?
- amazon-web-services - 将动态数据帧转换为火花时出现 AWS 粘合错误
- javascript - 如何为蜜蜂队列中的每个项目创建延迟?
- javascript - 等待在 nextjs 页面中加载贝宝脚本
- kubernetes - 无法在 minikube 上安装 confluent helm chart