Ich verwende derzeit einen Laptop mit Ubuntu 12.04. Wenn ich bei der Arbeit bin, schließe ich einen Monitor, eine Maus und eine Tastatur an. Dann schließe ich den Bildschirm meines Laptops und verwende ihn als normalen PC. Jedes Mal, wenn ich es ein- und ausstecke, muss ich meine Systemeinstellungen ändern, da mein Laptop normalerweise beim Schließen des Bildschirms im RAM-Modus angehalten wird. Außerdem muss ich ändern, wo meine Grafikkarte meinen Desktop anzeigen soll.
Gibt es eine Möglichkeit, ein Skript auszuführen, wenn ein externer Monitor oder ein USB-Gerät angeschlossen oder ausgeschaltet ist? Wenn ja, gibt es eine Möglichkeit, meine Systemeinstellungen durch ein Shell-Skript zu ändern? Wenn nicht, gibt es eine andere Möglichkeit, dies zu tun?
90-monitor-hotplug.rules
habe,/etc/udev/rules.d
die die einzelne Zeile enthältSUBSYSTEM=="drm", ACTION=="change", RUN+="/path/to/executable.sh"
gsettings
. Zum Beispiel, um Ubuntu zum Aufhängen zu bringen, wenn der Deckel im Batteriemodus geschlossen wirdgsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action 'suspend'
gsettings
da dies direkt erfolgtxrand
. Für eine Liste der verfügbaren Ausgänge Typxrandr-tool outputs
und zum Ausschalten zum Beispiel den VGA-Ausgangstypxrandr --output VGA1 --off
und zum erneuten Einschaltenxrandr --output VGA1 --auto
. Ich denke, das kann besser gemacht werden, aber es wird für mich ausreichen. Ich werde versuchen, alles, was ich jetzt weiß, zusammenzufügen und selbst eine Antwort zu posten.Antworten:
Um diese Methode verwenden zu können, müssen Sie zunächst prüfen, ob Ihre Grafikkarte ein udev-Ereignis sendet, wenn ein VGA-Monitor angeschlossen ist. Öffnen Sie dazu ein Terminal, geben Sie
udevadm monitor --property
einen Monitor ein und schließen Sie ihn an etwas wie das:Wenn Sie kein Ereignis erhalten, ist diese Methode nicht möglich.
Als nächstes wird eine Regel für udev erstellt. Dies kann durch Erstellen einer Datei erfolgen
/etc/udev/rules.d/90-monitor-hotplug.rules
. Öffnen Sie dazu ein Terminal und geben Sie eingksudo gedit /etc/udev/rules.d/90-monitor-hotplug.rules
. Dasgksudo
wird benötigt, da nur root Dateien in dieser Direktive erstellen darf. Fügen Sie dann die folgende Zeile in die Datei ein und speichern Sie sie:Natürlich müssen Sie das Wort
user
durch Ihren eigenen Benutzernamen ersetzen . Dies führt dazu, dass udev den dahinter angegebenen Befehl ausführtRUN
. Der Befehl führt die Datei/home/user/bin/monitorhotplug.sh
als Benutzer aus. Diese Datei muss jetzt erstellt werden.Öffnen Sie dazu ein Terminal und geben Sie ein
gedit /home/user/bin/monitorhotplug.sh
. Denken Sie daran,user
durch Ihren eigenen Benutzernamen zu ersetzen . Fügen Sie nun das folgende Skript in die Datei ein und speichern Sie es:Jetzt muss die Datei ausführbar gemacht werden. Öffnen Sie dazu ein Terminal und geben Sie ein
chmod +x /home/user/bin/monitorhotplug.sh
.Jetzt sollte es funktionieren: 1. Wenn Sie einen VGA-Monitor anschließen, wird Ihr interner Laptop-Bildschirm (LVDS) ausgeschaltet und Ihr Laptop wird nicht angehalten, wenn Sie den Deckel schließen. 2. Wenn Sie den Monitor ausstecken oder ein anderes Ereignis mit Monitoren auftritt, werden die Energieeinstellungen zurückgesetzt, um bei geschlossenem Deckel anzuhalten.
Es gibt noch ein kleines Problem: Wenn Sie Ihren Monitor angeschlossen und den Deckel geschlossen haben, sperrt Ubuntu den Bildschirm, sodass Sie die Maus bewegen und Ihr Passwort erneut eingeben müssen.
Ich hoffe das hilft jemandem. Ich persönlich genieße meine kleine DIY-Dockingstation. :) :)
quelle