xrandr 扩展显示设置

xrandr 扩展显示设置

我有一台旧笔记本电脑联想 E330,运行 Xubunu 16.04

我已经连接了 2 个外部显示器,一个带有 VGA,另一个带有 HDMI 线。

我正在尝试编写一个简单的命令来将我的桌面扩展到两个外部显示器,盖子将保持关闭状态,因此我将同时运行两个显示器。

    Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
LVDS-1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 293mm x 165mm
   1366x768      60.03*+
   1360x768      59.80    59.96  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   960x600       60.00  
   960x540       59.99  
   800x600       60.00    60.32    56.25  
   840x525       60.01    59.88  
   800x512       60.17  
   700x525       59.98  
   640x512       60.02  
   720x450       59.89  
   640x480       60.00    59.94  
   680x384       59.80    59.96  
   576x432       60.06  
   512x384       60.00  
   400x300       60.32    56.34  
   320x240       60.05  
VGA-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080     60.00*+
   1680x1050     59.95  
   1280x1024     75.02    60.02  
   1440x900      74.98    59.89  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   640x480       75.00    72.81    66.67    59.94  
   720x400       70.08  
HDMI-1 connected (normal left inverted right x axis y axis)
   1920x1080     60.00 +
   1680x1050     59.88  
   1280x1024     75.02    60.02  
   1440x900      74.98    59.90  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   640x480       75.00    72.81    66.67    59.94  
   720x400       70.08  
DP-1 disconnected (normal left inverted right x axis y axis)

该命令应该是像其中之一一样简单的命令。

xrandr --auto --output VGA-1 --mode 1920x1080 --right-of HDMI-1

或者

xrandr --output LVDS-1 --off  
xrandr --output VGA-1 --mode 1920x1080
xrandr --output HDMI-1 --mode 1920x1080

正确的脚本应该是什么样的?

断开外接显示器后是否可以启用笔记本电脑屏幕?因为目前即使我断开外接显示器并重新启动系统,它仍然保持关闭状态 ;(

答案1

您必须制作两个脚本才能实现您的目标。

一个用于打开两个外接显示器,一个用于关闭笔记本电脑显示器。

另一个用于撤销脚本一所做的更改。

因此,使用以下内容创建script1.sh并使其可执行。

#!/bin/bash
    xrandr --output LVDS-1 --off  
    xrandr --output VGA-1 --mode 1920x1080 --auto
xrandr --output HDMI-1 --mode 1920x1080 --auto

script2.sh添加以下内容并使其可执行。

#!/bin/bash
xrandr --output VGA-1 --off
xrandr --output HDMI-1 --off
xrandr --output LVDS-1 --mode 1366x768 --auto

您可以在连接外部显示器后运行scipt1.sh,并且必须script2.sh在移除外部显示器之前运行。

请注意,上述方法会同时将您的屏幕镜像到两个单独的屏幕上。如果您需要单独的屏幕而不是镜像,则可以使用或 --left-of选项--right-of并提供相应的设备名称。

您还可以通过打开笔记本电脑显示屏和两个显示器来检查您的硬件是否同时支持三个显示屏。

答案2

首先打开 电源设置实用程序并选择没做什么当笔记本电脑盖子关闭时。 所有设置 > 电源

然后只需添加几个别名即可.bash_aliases

# 表示盖子关闭,这将是扩展显示

alias 2mon='xrandr --output HDMI-1 --auto --primary --rotate normal --output VGA-1 --preferred --rotate normal --left-of VGA-1 --output LVDS-1 --off'

# 仅限笔记本电脑在断开外部监视器之前运行

alias 1mon='xrandr --output LVDS-1 --auto --rotate normal --output HDMI-1 --off --output VGA-1 --off'

答案3

我现在正在使用这个。它在 Xubuntu 上与 awesome-wm 配合使用。这些 xrandr 函数可切换显示器并让 wm 移动标签,这些标签类似于 alt 桌面;它们显示为沿顶部边缘的文件夹选项卡。就像我的情况一样,有时窗口管理器不喜欢被告知将其打包并移动。

这个想法是,在您再次移动屏幕之前重新启动窗口管理器。因此,每次调用 xrandr 时,请确保重新启动窗口管理器。

我正在使用我的 ZSH shell

将这些行放入你的 .zshrc 中,或者它可能也可以在 bashrc 中工作,但我还没有尝试过。

switch1() {
    xrandr --output VGA1 --mode 1920x1080 --primary --output HDMI-1 --mode 1920x1080 --left-of LVDS1 --output LVDS1 --mode 1280x800 --left-of VGA1;
    sleep 2;
    echo 'customization.orig.restart()' | awesome-client;
    xrandr --output VGA1 --mode 1920x1080 --output HDMI-1 --mode 1920x1080 --left-of LVDS1 --output LVDS1 --primary --mode 1280x800 --left-of VGA1;
    sleep 2;
    echo 'customization.orig.restart()' | awesome-client;
    xrandr --output VGA1 --off --output HDMI1 --off;
    echo 'customization.orig.restart()' | awesome-client;
    sleep 1;
}

switch2() {
    xrandr --output VGA1 --mode 1920x1080 --output HDMI-1 --mode 1920x1080 --left-of LVDS1 --output LVDS1 --primary --mode 1280x800 --left-of VGA1;
    sleep 2;
    echo 'customization.orig.restart()' | awesome-client;
    xrandr --output VGA1 --mode 1920x1080 --primary --output HDMI-1 --mode 1920x1080 --left-of LVDS1 --output LVDS1 --mode 1280x800 --left-of VGA1;
    sleep 2;
    echo 'customization.orig.restart()' | awesome-client;
    xrandr --output LVDS1 --off;
    echo 'customization.orig.restart()' | awesome-client;
    sleep 1;
}

接下来解释定制。orig.restart() 只是我所拥有的一个特殊部分。awesome.restart()对于那些不使用修改后的 rc.lua 配置的人来说,AwesomeWM 函数将起作用。

为了让你拥有我发现的一切关于将标签移动到新屏幕的讨论,并使用命名标签移动器函数这里它可以放在 rc.lua 中的任何位置,也可以包含 custom.lua 文件,用于添加您可能添加的额外功能。确保 custom.lua 包含在 rc.lua 文件中。

相关内容