我想使用双显示器在两种模式之间切换快捷方式:
- 均显示在
- 左显示屏打开
- 或者,如果只有右侧显示屏打开,则同时打开两个显示屏
这个问题被问过很多次。然而全部在线找到的来源并不准确:总是缺少一点点,例如,用于检测哪些监视器打开的命令实际上是用于检测哪些监视器已连接的;或者缺少脚本等。
因此我把所有答案合并如下。
为了制作这个问答,我使用了以下来源(我可能忘记了一些):
要检测哪些监视器处于打开状态:
获取脚本:
答案1
转到您的命令行并创建一个 .sh 文件(这将最终位于主文件夹中,我个人将它们放在子文件夹中):
gedit ~/swap_monitors.sh
复制并粘贴以下批处理脚本。请注意bash
开头的调用,而不是sh
#!/bin/bash
## script to toggle between monitor modes
currentmonitor=$(xrandr | awk '/\ connected/ && /[[:digit:]]x[[:digit:]].*+/{print $1}')
double=$'DisplayPort-0\nHDMI-A-0'
right=$'DisplayPort-0'
left=$'HDMI-A-0'
if [ "$currentmonitor" = "$double" ]; then
xrandr --output $left --auto --primary --output $right --off
elif [ "$currentmonitor" = "$right" ]; then
xrandr --output $left --auto --primary --output $right --auto --right-of $left
else
xrandr --output $left --auto --primary --output $right --auto --right-of $left
fi
exit 0
将变量double
、right
和更改left
为您的显示器名称(使用 检查xrandr -q
)。xrandr
如果需要,还可以更改命令,例如,您可能更喜欢在右侧屏幕上使用主命令。
请注意,elif
条件会导致与之后相同的命令,else
因此这里没用。但我留下它以防您想要另一种行为(例如在 double>right>left>double>... 之间循环)
转到系统设置>键盘面板(nautilus)并添加快捷方式:
名称:交换监控模式
命令:/home/[用户名]/swap_monitors.sh
我个人添加了快捷键 Super+F4。
答案2
使用以下方法做类似的事情对我有帮助arandr
sudo apt install arandr
arandr
使用该工具,您可以配置一个设置,然后布局>另存为...并将其命名为运行脚本,如“home_monitors_layout.sh”等。
然后,您可以编辑脚本,或使用生成的布局命令并将其插入此处提供的其他答案中,而不是手动配置左/右/中/等布局