为多显示器配置分配键盘快捷键

为多显示器配置分配键盘快捷键

使用 Ubuntu 10.10。我有一个外接屏幕,并且经常将我的电脑移进移出房间。

有没有办法避免nvidia-settings每次我需要将笔记本电脑带出房间时都进行手动配置?

希望能够按下Ctrl+1仅激活笔记本电脑屏幕,按下Ctrl+2仅激活外部屏幕,按下Ctrl+3激活 TwinView。

答案1

由于我使用的是 ATI 驱动程序,因此我的答案可能并不完全适合您的情况,但我使用了一个小脚本,该脚本可以检测外部显示器,然后使用 xrandr 命令行工具启用它。然后我创建了一个运行它的快捷键。

如果 xrandr 也在您的配置上运行,您可以使用它的修改版本。xrandr 包含在包“x11-xserver-utils”中,因此您可能首先需要在控制台中运行“sudo apt-get install x11-xserver-utils”。

脚本中需要修改的内容:

  • 首先在控制台中运行“xrandr -q”以找出主显示器和外接显示器的名称。我的是“LVDS”和“DisplayPort-0”。
  • 将脚本中的 EXT_DISPLAY 设置为外接显示器的名称
  • 将脚本中的 MAIN_DISPLAY 设置为主显示器的名称
  • 将 EXT_POS 保留为“右”,以使外接显示器位于主显示器的右侧,将其替换为“左”(或其他任何值)以使其位于左侧

剧本:

#!/bin/bash

EXT_DISPLAY="DisplayPort-0"
MAIN_DISPLAY="LVDS"
EXT_POS="right"

EXT_OUTPUT="NONE"
xrandr -q > /var/tmp/xrandr.log

STATUS_DISPLAYPORT=$(xrandr -q | sed -n "s/${EXT_DISPLAY} \([a-z]*\).*/\1/p")

if [ "$STATUS_DISPLAYPORT" = "connected" ]; then
    echo "Detected external monitor on $EXT_DISPLAY"
    EXT_OUTPUT="$EXT_DISPLAY"
fi

if [ "$EXT_OUTPUT" = "NONE" ]; then
    echo "LCD only"

else
    echo "Enabling external monitor $EXT_OUTPUT"
    if [ "$EXT_POS" = "right" ]; then
        xrandr --output $MAIN_DISPLAY --pos 0x0 --preferred --output $EXT_OUTPUT --right-of $MAIN_DISPLAY --preferred
    else
        xrandr --output $EXT_OUTPUT --pos 0x0 --preferred --output $MAIN_DISPLAY --right-of $EXT_OUTPUT --preferred 
    fi
fi

将脚本存储在某个目录中,赋予其执行权限并定义启动它的键盘快捷键。至少在这里效果很好。

答案2

我使用分散器:https://launchpad.net/~disper-dev/+archive/ppa. 您可以将命令指定disper -s为仅用于主显示器、disper -S仅用于辅助显示器、disper -e用于扩展桌面以及disper -c用于两个显示器上的克隆的快捷方式。我不得不稍微调整一下以将主显示器设置为适合扩展桌面,我使用命令disper -d CRT-1,DFP-0 -e,其中 CRT-1 和 DFP-0 是使用 找到的显示器的名称disper -l

相关内容