Wayland环境下Shell命令设置显示器坐标的解决方案
命令行设置显示器坐标实现无禁用镜像方案
核心逻辑:不对第三台显示器执行禁用操作,仅通过命令修改其屏幕原点坐标,使其与目标显示器坐标完全重合,即可实现画面镜像效果,同时保留HDMI音频输出正常工作,不会出现窗口跑到不可见区域的问题
Windows 平台实现
直接使用单文件命令行工具nircmd即可实现你要的指定显示器ID设置坐标的效果,无需安装,调用格式和你预期的set-display-coords完全对齐:
- 先执行
nircmd monitorinfo获取所有显示器的ID、分辨率、刷新率参数,确认第三台显示器对应的ID值 - 设置坐标的命令格式如下:
nircmd setmonitorconfig <显示器ID> 1 <显示器宽度> <显示器高度> <目标X坐标> <目标Y坐标> <色深> <刷新率> - 常用场景示例:
- 把ID为3的第三台显示器对齐坐标(0,0)的第一台显示器:
nircmd setmonitorconfig 3 1 1920 1080 0 0 32 60 - 把ID为3的第三台显示器对齐坐标(3840,0)的第二台显示器:
nircmd setmonitorconfig 3 1 1920 1080 3840 0 32 60
- 把ID为3的第三台显示器对齐坐标(0,0)的第一台显示器:
命令中参数
1代表保持显示器启用为扩展状态,不会触发设备禁用,对应的HDMI音频输出不会中断。
Linux 平台实现
X11环境下直接使用系统原生自带的xrandr命令即可完成操作,无需安装任何额外工具:
- 直接执行无参数的
xrandr命令,即可列出所有显示器的接口名、支持的分辨率、刷新率参数,确认第三台显示器对应的接口名称(比如HDMI-2) - 设置坐标的命令格式如下:
xrandr --output <显示器接口名> --mode <分辨率> --pos <目标X坐标>x<目标Y坐标> - 常用场景示例:
- 把接在HDMI-2接口的第三台显示器对齐坐标(0,0)的第一台显示器:
xrandr --output HDMI-2 --mode 1920x1080 --pos 0x0 - 把接在HDMI-2接口的第三台显示器对齐坐标(3840,0)的第二台显示器:
xrandr --output HDMI-2 --mode 1920x1080 --pos 3840x0
- 把接在HDMI-2接口的第三台显示器对齐坐标(0,0)的第一台显示器:
如果使用Wayland桌面环境,替换为
wlr-randr工具即可,参数格式和xrandr基本一致,操作过程不会禁用显示输出,HDMI音频可正常保留。
macOS 平台实现
使用displayplacer命令行工具即可实现坐标自定义设置,可通过homebrew直接安装:
- 执行
displayplacer list获取所有显示器的序列号ID、分辨率等参数 - 设置坐标的命令格式如下:
displayplacer id:<显示器ID> origin:(<目标X坐标>,<目标Y坐标>) res:<分辨率>
操作过程不会禁用对应显示设备,HDMI音频输出不会中断。
内容的提问来源于stack exchange,提问作者Dinu
相关产品推荐
相关产品推荐

