Ho un thinkpad lenovo con nvidia optimus e una mini docking station serie 3 .
Voglio che, quando ancorato, dovrebbe passare automaticamente a un monitor esterno, se possibile, e se lo sgancio, dovrebbe passare automaticamente al thinkpad lcd.
Questo dovrebbe funzionare anche nella fase di avvio perché lì devo digitare una password per il disco crittografato (dm-crypt).
Ho provato quanto segue ma non funziona:
Ho creato un file /etc/acpi/thinkpad-undock.sh
(+ chmod a+x thinkpad-undock.sh
) che contiene le seguenti righe:
#!/bin/sh
xrandr --output LVDS-1 --auto --output DP-5.8 --off
E anche /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
E ancora chmod a+x thinkpad-dock.sh
.
L'esecuzione manuale di entrambi gli script funziona manualmente.
Quindi ho creato due file per la gestione degli eventi:
thinkpad-dock-lenovo
event=ibm/hotkey LEN0068:00 00000080 00004010
action=/etc/acpi/thinkpad-dock.sh
e anche thinkpad-undock-lenovo
event=ibm/hotkey LEN0068:00 00000080 00004011
action=/etc/acpi/thinkpad-undock.sh
Quindi ho ricaricato il demone acpi con /etc/init.d/acpid reload
. Tuttavia, se aggancio o sgancio il laptop non fa nulla.
Ho ottenuto il numero dell'evento sopra eseguendo acpi_listen
e quindi agganciando e sganciando il laptop.
Quindi ci sono idee su come farlo funzionare.
Forse il problema è risolto da alcuni ambienti desktop come ad esempio kde, ma sto usando xmonad e tuttavia, come indicato sopra, dovrebbe funzionare anche in fase di avvio indipendentemente dall'ambiente desktop.
Sto eseguendo Ubuntu 16.04 con la versione del kernel 4.4.0-22.
Ho anche provato ad aggiungere una regola udev come segue ma non ha funzionato:
ENV{EVENT}=="undock", KERNEL=="dock.0", SUBSYSTEM=="platform", RUN+="disper -s"
ENV{EVENT}=="dock", KERNEL=="dock.0", SUBSYSTEM=="platform", RUN+="disper -s"
Ho appena notato che il file dock
ha sempre il valore 0, indipendentemente dal fatto che il laptop sia agganciato o sganciato.