Eu tenho um thinkpad lenovo com nvidia optimus e uma mini docking station série 3 .
Quero que, enquanto acoplado, ele mude automaticamente para um monitor externo, se possível, e se eu desencaixá-lo, mude automaticamente para o thinkpad lcd.
Isso também deve funcionar no estágio de inicialização, porque é preciso digitar uma senha para o disco criptografado (dm-crypt).
Eu tentei o seguinte, mas não funciona:
Eu criei um arquivo /etc/acpi/thinkpad-undock.sh
(+ chmod a+x thinkpad-undock.sh
) que contém as seguintes linhas:
#!/bin/sh
xrandr --output LVDS-1 --auto --output DP-5.8 --off
E também /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 mais uma vez chmod a+x thinkpad-dock.sh
.
A execução dos dois scripts funciona manualmente.
Depois, criei dois arquivos para manipular os eventos:
thinkpad-dock-lenovo
event=ibm/hotkey LEN0068:00 00000080 00004010
action=/etc/acpi/thinkpad-dock.sh
e também thinkpad-undock-lenovo
event=ibm/hotkey LEN0068:00 00000080 00004011
action=/etc/acpi/thinkpad-undock.sh
Então recarreguei o daemon acpi com /etc/init.d/acpid reload
. No entanto, se eu acoplar ou desacoplar o laptop, ele não fará nada.
Obtive o número do evento acima executando acpi_listen
e, em seguida, encaixando e desencaixando o laptop.
Portanto, existem idéias de como fazê-lo funcionar.
Talvez o problema seja resolvido por algum ambiente de desktop, por exemplo, kde, mas eu estou usando o xmonad e, no entanto, conforme indicado acima, ele deve funcionar mesmo no estágio de inicialização, independentemente do ambiente de desktop.
Estou executando o ubuntu 16.04 com o kernel versão 4.4.0-22.
Tentei também adicionar uma regra do udev da seguinte forma, mas não funcionou:
ENV{EVENT}=="undock", KERNEL=="dock.0", SUBSYSTEM=="platform", RUN+="disper -s"
ENV{EVENT}=="dock", KERNEL=="dock.0", SUBSYSTEM=="platform", RUN+="disper -s"
Acabei de notar que o arquivo dock
sempre tem o valor 0, independentemente de o laptop estar encaixado ou desencaixado.