linux – 插入外部显示器时自动应用RandR配置的工具

是否有一个工具,使人们能够:

>记住每个监视器的当前RandR配置(位置,方向,分辨率等),
>插入显示器后立即自动应用上次已知的良好配置,无需使用applet或xrandr(1)进行清理?

必须在每个用户,每个显示器的基础上应用配置.

如果在野外没有这样的工具,我想把自己扔在一起,但据我所知,没有办法告诉显示器已插入.我是否必须使用xrandr -q进行轮询偶尔弄清楚输出是连接还是断开,还是有更有效的方法呢?你可以调整udev来做到这一点吗?

解决方法:

我正在使用这个简单(自制)脚本来保持轮询RandR,并在VGA连接/断开时在LVDS1和VGA1之间切换.

这是一个肮脏的解决方案,但它的工作正常.

它是根据我的设置自定义的:你很可能需要更改RandR输出名称(LVDS1和VGA1)和unlike me,你可能会使用你的RandR默认模式VGA.

#!/bin/bash

# setting up new mode for my VGA
xrandr --newmode "1920x1080" 148.5 1920 2008 2052 2200 1080 1089 1095 1125 +hsync +vsync
xrandr --addmode VGA1 1920x1080

# default monitor is LVDS1
MONITOR=LVDS1

# functions to switch from LVDS1 to VGA and vice versa
function ActivateVGA {
    echo "Switching to VGA1"
    xrandr --output VGA1 --mode 1920x1080 --dpi 160 --output LVDS1 --off
    MONITOR=VGA1
}
function DeactivateVGA {
    echo "Switching to LVDS1"
    xrandr --output VGA1 --off --output LVDS1 --auto
    MONITOR=LVDS1
}

# functions to check if VGA is connected and in use
function VGAActive {
    [ $MONITOR = "VGA1" ]
}
function VGAConnected {
    ! xrandr | grep "^VGA1" | grep disconnected
}

# actual script
while true
do
    if ! VGAActive && VGAConnected
    then
        ActivateVGA
    fi

    if VGAActive && ! VGAConnected
    then
        DeactivateVGA
    fi

    sleep 1s
done
上一篇:如何在linux中映射额外的键?


下一篇:荣耀平板创造力再升级,要功能全又要花样多就选它!