从命令行切换监视器

从命令行切换监视器

由于我找到了实现目标的不同方法,并且我之前的问题没有得到任何答案,因此我修改了问题以匹配我找到的答案。

有没有办法可以完全通过命令行关闭笔记本电脑的显示器并打开外部显示器(反之亦然)?

答案1

使用命令

xrandr --output VGA-0 --auto
xrandr --output LVDS --off 

屏幕会自动传输到外部显示器。它甚至不需要 sudo 权限。要找出显示器的名称,只需执行以下操作:

xrandr -q

应该给出类似这样的结果:

VGA-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 338mm x 270mm
...
LVDS connected (normal left inverted right x axis y axis)
...

扩展显示可能可以通过类似的方式实现。

答案2

这绝对不是对你问题的直接回答。但我发现它对我的用例很有帮助。这不是配置文件的导出,但它确实展示了如何在 shell 脚本中自动分散。我将其设置为每次停靠/取消停靠时运行,它似乎修复了我在停靠和取消停靠笔记本电脑时的显示问题:

你必须有分散并安装了 Python。

#!/bin/sh
#
# Detect displays and move panels to the primary display
#

PYTHON=python2.6
DISPER=/usr/bin/disper

# disper command will detect and configure monitors
$PYTHON $DISPER --displays=auto -e -t left

# parse output from disper tool how many displays we have attached
# disper prints 2 lines per displer
lines=`$PYTHON $DISPER -l|wc -l`

display_count=$((lines / 2))

echo $display_count

echo "Detected display count:" $display_count

# Make sure that we move panels to the correct display based
# on the display count
if [ $display_count = 1 ] ; then
    echo "Moving panels to the internal LCD display"
    gconftool-2 \
    --set "/apps/panel/toplevels/bottom_panel_screen0/monitor" \
    --type integer "0"
    gconftool-2 \
    --set "/apps/panel/toplevels/top_panel_screen0/monitor" \
    --type integer "0"
    sleep 5
    pkill gnome-panel
else
    echo "Moving panels to the external display"
    gconftool-2 \
    --set "/apps/panel/toplevels/top_panel_screen0/monitor" \
    --type integer "1"
    gconftool-2 \
    --set "/apps/panel/toplevels/bottom_panel_screen0/monitor" \
    --type integer "1"
    sleep 5
    pkill gnome-panel
fi

答案3

根据@Malabarba 的回复和 xrandr man 文档。

  • 获取监视器参考:xrandr -q
  • 设置主显示屏:xrandr --output <Monitor ref> --primary

完整示例:

xrandr --output HDMI-1 --primary

答案4

作为问题/答案的附加示例,以下是桌面启动器我创建的文件,其(第一)打开外部显示器到所需的分辨率,然后(第二)关闭笔记本电脑屏幕。

[Desktop Entry]
Type=Application
Name[en_US]=Laptop > Ext
Exec=sh -c "xrandr --output HDMI-1 --mode 1366x768 && xrandr --output eDP-1 --off"
Encoding=UTF-8

将命令包装在 shell 中意味着我可以同时执行这两个命令并将键盘快捷键指向此命令。桌面文件。因此,我将键盘上的一个功能键设置为此桌面启动器(从笔记本电脑切换到外部),然后设置另一个键运行相反的桌面快捷方式文件。与以前的做法相比(每次启动监视器控制面板并手动启用/禁用每个监视器),这节省了大量时间。

相关内容