没有功能键的扩展到复制监视脚本

时间:2018-11-20 07:56:52

标签: linux bash ubuntu

我想创建一个bash脚本,使我可以:

将屏幕的模式从扩展模式更改为重复模式,反之亦然。

我的键盘没有功能键,我想创建一个脚本来切断此操作,但我不知道该怎么做

非常感谢!

1 个答案:

答案 0 :(得分:1)

要制定bash功能,首先需要使用此命令了解连接的屏幕。

xrandr --current

它将显示类似于此的输出

Screen 0: minimum 8 x 8, current 1600 x 900, maximum 32767 x 32767
eDP1 connected 1600x900+0+0 (normal left inverted right x axis y axis) 380mm x 210mm
   1600x900      60.04*+  59.82    39.99
   1400x900      59.96    59.88
   1368x768      60.00    59.88    59.85
   1280x800      59.81    59.91
   1280x720      59.86    60.00    59.74
   1024x768      60.00
   1024x576      60.00    59.90    59.82
   960x540       60.00    59.63    59.82
   800x600       60.32    56.25
   864x486       60.00    59.92    59.57
   800x450       60.00
   640x480       59.94
   720x405       59.51    60.00    58.99
   640x360       59.84    59.32    60.00
HDMI1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

如您所见,我有2个输出eDPI1(我的笔记本电脑屏幕)和HDMI1我的外接显示器(当前已断开连接)。

有了这些变量,我现在可以编写一个从镜像切换为扩展和返回的函数。

#!/bin/bash

export SCREEN_STATE="extended"

function screenToggle() {
    if [[ $SCREEN_STATE == "extended" ]]; then
        xrandr --output eDPI1 --output HDMI1 --same-as eDPI1
        export SCREEN_STATE="mirrored"

    else
        xrandr --output eDPI1 --output HDMI1 --left-of eDPI1
        export SCREEN_STATE="extended"

    fi
}

请注意,我尚未测试此代码,并且在第一轮运行时,由于第二行的原因,显示器将进入镜像模式,并且您无法更改其行为。

有关控制分辨率所需的更多值,请参见man xrandrthis similar question