根据显示器是否已插入更改系统设置

我目前正在使用运行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 

如果您没有收到活动,则无法使用此方法。

接下来,创建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'" 

当然,您必须使用您自己的用户名替换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 

现在必须使文件可执行。 为此,请打开终端并键入chmod +x /home/user/bin/monitorhotplug.sh

现在它应该工作:1。当您插入VGA显示器时,如果您关闭盖子,您的内部笔记本电脑屏幕(LVDS)将关闭,您的笔记本电脑将不会暂停。 2.当您关闭显示器或显示监视器的任何其他事件时,它将重置电源设置以在盖子关闭时暂停。

还有一个小问题:当您将显示器插入并关闭盖子时,ubuntu将锁定屏幕,因此您必须移动鼠标并再次输入密码。

我希望这有助于某人。 我,我是个人享受我的小型DIY基座。 🙂