Ich habe ein Lenovo Thinkpad mit NVIDIA Optimus und eine Mini-Dockingstation Serie 3 .
Ich möchte, dass es im angedockten Zustand nach Möglichkeit automatisch zu einem externen Monitor wechselt. Wenn ich es abdocke, sollte es automatisch zum thinkpad lcd wechseln.
Dies sollte auch in der Startphase funktionieren, da ich dort ein Passwort für die verschlüsselte Festplatte (dm-crypt) eingeben muss.
Ich habe Folgendes versucht, aber es funktioniert nicht:
Ich habe eine Datei /etc/acpi/thinkpad-undock.sh
(+ chmod a+x thinkpad-undock.sh
) erstellt, die die folgenden Zeilen enthält:
#!/bin/sh
xrandr --output LVDS-1 --auto --output DP-5.8 --off
Und auch /etc/acpi/thinkpad-dock.sh
#!/bin/sh
prime-select nvidia # ensures that nvidia card is selected
xrandr --output LVDS-1 --off --output DP-5.8 --auto
Und wieder chmod a+x thinkpad-dock.sh
.
Das manuelle Ausführen beider Skripte funktioniert.
Dann habe ich zwei Dateien für die Behandlung der Ereignisse erstellt:
thinkpad-dock-lenovo
event=ibm/hotkey LEN0068:00 00000080 00004010
action=/etc/acpi/thinkpad-dock.sh
und auch thinkpad-undock-lenovo
event=ibm/hotkey LEN0068:00 00000080 00004011
action=/etc/acpi/thinkpad-undock.sh
Dann habe ich den acpi-Daemon mit neu geladen /etc/init.d/acpid reload
. Wenn ich den Laptop jedoch andocke oder abdocke, geschieht nichts.
Ich habe die oben angegebene Ereignisnummer erhalten, indem ich acpi_listen
den Laptop ausgeführt und dann angedockt und abgedockt habe.
Gibt es also Ideen, wie es funktioniert?
Vielleicht wird das Problem durch eine Desktop-Umgebung gelöst, zum Beispiel kde, aber ich verwende xmonad und trotzdem sollte es, wie oben angegeben, auch auf der Startphase unabhängig von der Desktop-Umgebung funktionieren.
Ich verwende Ubuntu 16.04 mit der Kernel-Version 4.4.0-22.
Ich habe auch versucht, eine udev-Regel wie folgt hinzuzufügen, aber es hat nicht funktioniert:
ENV{EVENT}=="undock", KERNEL=="dock.0", SUBSYSTEM=="platform", RUN+="disper -s"
ENV{EVENT}=="dock", KERNEL=="dock.0", SUBSYSTEM=="platform", RUN+="disper -s"
Mir ist gerade aufgefallen, dass die Datei dock
immer den Wert 0 hat, unabhängig davon, ob der Laptop angedockt oder nicht angedockt ist.
Ich habe Glück gehabt mit beiden Einstellung
DISPLAY
undXAUTHORITY
sowie das Hinzufügen eines kleinen Schlaf, zBquelle
Ich habe ein ähnliches Setup, aber ich habe nie die Lösung verfolgt, auf das Dock zu reagieren. Es ist interessant.
Stattdessen verwende ich den Gnome-Display-Manager, um das LCD-Display auf "Aus" und das externe Display auf das primäre Display zu setzen. Auf diese Weise schaltet der Laptop, wenn ich ihn auf dem Dock abstelle, auf das externe Display um. Wenn ich es anhebe, wechselt es zurück zum LCD.
Dies auf der Konsole zu haben (Booten einer dm-crypt-Installation) funktioniert auch, hat aber seine Nuancen. Wenn der Deckel geschlossen ist, setze ich den Laptop auf das Dock und schalte ihn ein. Er startet automatisch auf dem externen Display (alles, einschließlich BIOS-Bildschirme, das Los). Wenn der Deckel geöffnet ist, wird er erst nach dem Anmelden bei GDM ausgetauscht.
quelle