So schalte ich Monitore automatisch mit meinem Laptop-Dock um
11
Ich habe einen Dell Precision M4300 mit einem Dell Dock PRO1X unter Ubuntu Natty.
Wenn ich den Laptop angedockt habe, ist das LCD-Display ausgeschaltet und ich verwende zwei externe Monitore. Wenn ich den Laptop abdocke, wechselt er jedoch nicht zum Laptop-Bildschirm. Das gleiche passiert, wenn ich den Laptop andocke, er wechselt nicht zu den externen Monitoren.
Wenn ich den Laptop neu starte, wählt er das richtige Setup, wechselt jedoch nicht automatisch die Monitore, wenn Ubuntu ausgeführt wird.
Ich habe endlich ein komplettes Skript-Setup zusammengestellt, das meinen Dock-Status erkennt und die Monitore automatisch wechselt.
Das erste, was ich tat, war, meine Xorg.conf loszuwerden, da sie mehr Probleme verursachte, die sie löste. Da ich eine NVDIA-Karte verwende, stellte ich schließlich fest, dass die Verwendung von Disper der beste Weg ist. Ich hatte es zuvor reduziert, da seine Standardbefehle mein Dualview-Setup nicht erreichen konnten, aber dann stellte ich fest, dass ich einen benutzerdefinierten Metamode erstellen konnte, der mit disper verwendet werden konnte.
Um den benutzerdefinierten Metamode zu erstellen, habe ich die in Xorg.conf gespeicherten Werte zusammen mit früheren Tests mit nv-control-dpy und xrandr als Leitfaden verwendet. Dieser Metamode und andere Twinview-Werte wurden einer Datei hinzugefügt, die über stdin an disper übergeben werden kann .
#!/bin/bash
# Export the dbus session address on startup so it can be used by any other environment
sleep 5
touch $HOME/.Xdbus
chmod 600 $HOME/.Xdbus
env | grep DBUS_SESSION_BUS_ADDRESS > $HOME/.Xdbus
echo 'export DBUS_SESSION_BUS_ADDRESS' >> $HOME/.Xdbus
# Export XAUTHORITY value on startup so it can be used by cron
env | grep XAUTHORITY >> $HOME/.Xdbus
echo 'export XAUTHORITY' >> $HOME/.Xdbus
Nur auf vom Benutzer ausführbare Datei festlegen: chmod 700 ~/.export_x_info
Dann legen Sie es in Startup Applications:
Name: X Environment Variables
Command: /home/your_user/.export_x_info
Sofern Sie nicht neu starten, müssen Sie ~ / .export_x_info ausführen, um die .Xdbus- Datei zu erstellen
Erstellen Sie die udev-Regel, mit der bei einem Dock-Ereignis ausgeführt wird:
Erstellen Sie das Skript, das der udev-Regel zugeordnet ist:
Skriptname: /usr/local/sbin/dell-dock
#!/bin/sh
# wait for the dock state to change
sleep 0.5
DOCKED=$(cat /sys/devices/platform/dock.0/docked)
case "$DOCKED" in
"0")
echo "Run UnDocking Script..."
/usr/local/sbin/undock
;;
"1")
echo "Run Docking Script..."
/usr/local/sbin/dock
;;
esac
exit 0
chmod +x /usr/local/sbin/dell-dock
Erstellen Sie das Undock-Skript (ändern Sie Ihren_Benutzer entsprechend Ihrem Benutzernamen):
Ja, es scheint, dass diese Datei nicht existiert: $ cat /sys/devices/platform/dock.0/docked cat: /sys/devices/platform/dock.0/docked: No such file or directory
$ cat /sys/devices/platform/dock.0/docked cat: /sys/devices/platform/dock.0/docked: No such file or directory
Sie können autorandr verwenden .
Siehe auch:
quelle