从命令行切换监视器


21

由于我找到了实现目标的另一种方法,并且由于上一个问题没有答案,因此我更改了问题以使其与我找到的答案相匹配。

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


我只是在搜寻完全相同的事情,而偶然发现了您在7分钟前才问到的这个问题。真是令人惊讶。我希望你能得到答案。
JD Long

我知道,如果您启动到恢复模式并执行(或类似操作),则可以将基本目录xorg.conf放到根(/root/yorg.conf.new)目录中X --configure
鲍比(Bobby)

问题(至少对我而言)是我不想手动写出xorg.conf。我想将当前设置转储为xorg.conf格式,然后使用GUI更改设置,然后将其转储到文件中。然后,我可以编写一个脚本来在两个设置之间进行更改,这非常容易。现在,我必须进入GUI并单击六下才能更改设置。
JD Long

@JD Long:这正是我也想做的。如果有找到方法,请务必在这里写。我的脚本唯一缺少的两件事是xorg.conf文件和一个刷新当前显示的命令(无需重新启动gdm)。
马拉巴巴

我今天一直在试验分散(willem.engen.nl/projects/disper)。帮助文件显示了应该导出的-p选项。仅该开关未实现。悲伤的长号
JD Long

Answers:


28

使用命令

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)
...

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


运行xrandr(带有任何标志)时,出现消息“无法打开显示”。可能是什么原因?
brandizzi 2013年

4
如果xrandr -q提供LVDS1VGA1::仅限外部:xrandr --output VGA1 --auto --output LVDS1 --off。向左扩展,内部主要语言:xrandr --output VGA1 --auto --left-of LVDS1 --output LVDS1 --auto --primary。向左延伸,外部主要:xrandr --output VGA1 --auto --left-of LVDS1 --primary --output LVDS1 --auto。仅限内部使用:xrandr --output VGA1 --off --output LVDS1 --auto

好答案!也许值得为初学者解释,VGA和LVDS之间的内部和外部通常是哪一个?
Matifou

4

这当然不是您问题的直接答案。但是我发现它对我的用例很有帮助。这不是配置文件的导出,但确实显示了如何在shell脚本中自动执行分散。我将其设置为在每次停靠/取消停靠时都可以运行,这似乎可以解决我在停靠和拔出笔记本电脑时出现的显示问题:

您必须安装了diver和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

Disper似乎是一个有用的工具。我会调查一下,看是否可以适应我的情况。唯一的区别是我想禁用笔记本电脑的显示器,而不是扩展它。在我的低端笔记本电脑上,它要平滑一些,并且会自动处理面板。
马拉巴巴

再次考虑,可能不支持我的ati视频卡,因为他们只声称支持nvidia。
马拉巴巴

好的,diper页面将我带到了这个页面:thinkwiki.org/wiki/Sample_Fn-F7_script 事实证明,使用xrandr命令切换显示器非常容易。
马拉巴巴

感谢您发布xrandr链接。我会调查的。我无所事事。FWIW,我的笔记本电脑装有Intel卡,并且我正在使用分散驱动器,没有问题。
JD Long
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.