Wau*_*uzl 6 external-monitor 12.04 system-settings
我目前使用的是运行 Ubuntu 12.04 的笔记本电脑。当我工作时,我会插入显示器、鼠标和键盘。然后我关闭我的笔记本电脑屏幕并将其用作普通电脑。每次我插入和拔出它时,我都必须更改我的系统设置,因为通常我的笔记本电脑会在我关闭它的屏幕时挂起到 RAM。此外,我必须更改显卡应显示桌面的位置。
当插入或拔出外部显示器或 USB 设备时,有没有办法执行某些脚本?如果是,有没有办法通过 shell 脚本更改我的系统设置?如果没有,有没有其他方法可以做到?
首先——为了使用这个方法——你需要查看你的显卡是否在插入 VGA 显示器时发送了一个 udev 事件。为此,打开一个终端,输入udevadm monitor --property
并插入一个显示器。你应该看到像这样:
KERNEL[7671.540341] change /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVNAME=dri/card0
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
DEVTYPE=drm_minor
HOTPLUG=1
MAJOR=226
MINOR=0
SEQNUM=2296
SUBSYSTEM=drm
UDEV_LOG=3
UDEV [7672.099723] change /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVNAME=/dev/dri/card0
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
DEVTYPE=drm_minor
HOTPLUG=1
MAJOR=226
MINOR=0
SEQNUM=2296
SUBSYSTEM=drm
TAGS=:udev-acl:
UDEV_LOG=3
USEC_INITIALIZED=20836591
Run Code Online (Sandbox Code Playgroud)
如果您没有收到事件,则无法使用此方法。
接下来,为 udev 创建规则。这可以通过创建文件来完成/etc/udev/rules.d/90-monitor-hotplug.rules
。为此,请打开终端并键入gksudo gedit /etc/udev/rules.d/90-monitor-hotplug.rules
。该gksudo
是必要的,因为只有root可以在此directoy创建文件。然后将以下行粘贴到文件中并保存:
SUBSYSTEM=="drm", ACTION=="change", RUN+="/bin/su user -c '/home/user/bin/monitorhotplug.sh'"
Run Code Online (Sandbox Code Playgroud)
当然,你必须user
用你自己的用户名替换这个词。这将导致 udev 运行后面指定的命令RUN
。该命令/home/user/bin/monitorhotplug.sh
以您的用户身份执行文件。现在必须创建此文件。
为此,请打开终端并键入gedit /home/user/bin/monitorhotplug.sh
。记得user
用你自己的用户名代替。现在将以下脚本粘贴到文件中并保存:
#!/bin/bash
# we need some environment variables
export DISPLAY=:0
export XAUTHORITY=~/.Xauthority
eval $(sed -n '/^#/! { s/^/export /; s/$/;/; p }' ~/.dbus/session-bus/*-${DISPLAY//:/})
# if a VGA monitor is plugged in:
if [ $(cat /sys/class/drm/card0-VGA-1/status) = "connected" ]; then
# set my power settings
gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action 'nothing'
gsettings set org.gnome.settings-daemon.plugins.power lid-close-battery-action 'nothing'
xrandr --output VGA1 --auto
# turn off laptop screen
xrandr --output LVDS1 --off
# in case of anything else reset to standard options
else
# reset my power settings
gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action 'suspend'
gsettings set org.gnome.settings-daemon.plugins.power lid-close-battery-action 'suspend'
# xrandr does the rest alone
#xrandr --output VGA1 --off
#xrandr --output LVDS1 --auto
fi
Run Code Online (Sandbox Code Playgroud)
现在该文件必须是可执行的。为此,请打开终端并键入chmod +x /home/user/bin/monitorhotplug.sh
。
现在它应该可以工作了: 1. 当您插入 VGA 显示器时,如果您合上盖子,您的内部笔记本电脑屏幕 (LVDS) 将关闭并且您的笔记本电脑不会挂起。2. 当您将显示器的插头拔出或显示器发生任何其他事件时,它将重置电源设置以在盖子合上时暂停。
还有一个小问题:当您插入显示器并合上盖子时,ubuntu 将锁定屏幕,因此您必须移动鼠标并再次输入密码。
我希望这对某人有帮助。我,我很享受我的小 DIY 扩展坞。:)
归档时间: |
|
查看次数: |
3384 次 |
最近记录: |