linux - 没有功能键的扩展到重复的监控脚本

标签 linux bash ubuntu

我想创建一个 bash 脚本,允许我:

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

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

非常感谢!

最佳答案

要制定您的 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 .

关于linux - 没有功能键的扩展到重复的监控脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53388510/

相关文章:

javascript - Fabrice Bellard 编写的 Javascript 中的 Linux 模拟器如何工作?

linux - 如果 mmap() 没有 fd(使用 MAP_ANONYMOUS),将调用哪个函数?

python - 如何获取平面 XML 以便将外部实体合并到顶层

mysql - 为 MySQL 集成自定义数据库的 Openfire 配置

python - unity_facebook_daemon.py 是什么? (Ubuntu 13)

regex - 使用带点的 sed 在字符串中删除行

linux - 为什么 Bash 变量在 if 语句内为空,但在 if 语句外却不为空?

bash - 为什么命令错误| grep 'regex-not-matching-error' 仍然打印错误?

bash - ntpd -qg : Use with timeout

java - Java SSL 在 Ubuntu 上的 OpenJDK 中被破坏了吗?