我有一台运行 Kubuntu Precise (12.04) 的笔记本电脑,我偶尔用它来观看视频。执行此操作时,我会插入一根连接到 A/V 接收器的 HDMI 电缆,并连接 HDMI 显示器。
当我以这种方式观看视频时,当我与系统交互来控制播放等时,我仍然需要使用笔记本显示器。从我坐的地方很难阅读HDMI显示器上的文字。
当我插入 HDMI 电缆时,Kubuntu 会检测到它,但我必须经历一个奇怪的舞蹈序列(可以工作,但很复杂)才能每次都正确设置视频和音频。为了解决这个问题,我尝试编写一个 bash 脚本,以便xrandr
第一次就能正确完成它。
我从 Peoro 对 U&L 问答题的回答中得到了基本想法:插入外部显示器时自动应用 RandR 配置的工具。
关于我的剧本
我的脚本(包含在下面)可以工作,但需要改进。
它为 HDMI 显示器正确设置了视频模式,但 LVDS1 显示器(在笔记本电脑上)更改为仅显示桌面的左上部分 - 这是一个问题,因为它切断了右侧的窗口滚动条和任务栏底端。
我尝试用 修复这个问题--scale
,但我的第一次尝试把事情搞砸了,我不得不重新启动才能恢复正常工作的显示。
有没有办法让两个显示器显示相同的内容,但每个显示器都使用自己单独的首选分辨率?
或者,至少有一种方法可以设置笔记本显示器,以便在使用 HDMI 显示器时仍然可以访问整个桌面?
由于我正在调试脚本,因此它尚未清理。我可能想让它稍后做更多事情。
我的剧本
#!/bin/bash
## hdmi_set
## Copyleft 11/13/2013 JPmicrosystems
## Adapted from
## https://unix.stackexchange.com/questions/4489/a-tool-for-automatically-applying-randr-configuration-when-external-display-is-p
## Answer by peoro
# 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
##source $HOME/bin/bash_trace
# default monitor is LVDS1
MONITOR=LVDS1
# functions to switch from LVDS1 to HDMI and vice versa
function ActivateHDMI {
echo "Switching to HDMI"
##xrandr --output HDMI1 --mode 1920x1080 --dpi 160 --output LVDS1 --off
##xrandr --output HDMI1 --same-as LVDS1
xrandr --output HDMI1 --mode 1920x1080
xrandr --output LVDS1 --mode 1366x768
MONITOR=HDMI1
}
function DeactivateHDMI {
echo "Switching to LVDS1"
xrandr --output HDMI1 --off --output LVDS1 --auto
MONITOR=LVDS1
}
# functions to check if VGA is connected and in use
function HDMIActive {
[ $MONITOR = "HDMI1" ]
}
function HDMIConnected {
! xrandr | grep "^HDMI1" | grep disconnected
}
## MONITOR doesn't do anything because it's not preserved between script executions
# actual script
##while true
##do
if HDMIConnected
then
ActivateHDMI
fi
if ! HDMIConnected
then
DeactivateHDMI
fi
##sleep 1s
##done
xrandr 的输出
这是 xrandr 看到的内容:
bigbird@ramdass:~$ xrandr
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
1366x768 60.0*+
1360x768 59.8 60.0
1024x768 60.0
800x600 60.3 56.2
640x480 59.9
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected (normal left inverted right x axis y axis)
1920x1080 60.0 +
1680x1050 60.0
1280x1024 60.0
1440x900 59.9
1280x720 60.0
1024x768 60.0
800x600 60.3
720x480 59.9
640x480 60.0
720x400 70.1
DP1 disconnected (normal left inverted right x axis y axis)