Tenho um laptop conversível 2 em 1 (HP Spectre x360) que estou usando com o Ubuntu 24.04. Mais ou menos tudo funciona muito bem de fábrica: a tela sensível ao toque funciona bem, e se eu dobrar o computador completamente no "modo tablet", o teclado na tela aparece quando preciso, ou posso chamá-lo manualmente deslizando de baixo para cima na tela.
Gostaria de fazer um pouco mais e executar um script quando o computador for alternado para o modo tablet ou não. O SO sabe claramente em que modo está, já que o teclado na tela só aparece quando a tela é dobrada para o modo tablet, mas não tenho ideia de como obter essas informações, muito menos acionar um script quando o modo muda.
Editar: Eu instalei evtest
e, por meio de um processo de tentativa e erro, rastreei até um evento em /dev/input/event11
. No entanto, não tenho ideia de como observar esse evento e executar um script quando ele dispara. Alguma orientação?
Aqui está o resultado de evtest /dev/input/event11
quando coloquei o computador no modo tablet e depois saí dele:
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x0 product 0x0 version 0x0
Input device name: "Intel Virtual Switches"
Supported events:
Event type 0 (EV_SYN)
Event type 5 (EV_SW)
Event code 1 (SW_TABLET_MODE) state 0
Properties:
Testing ... (interrupt to exit)
Event: time 1738791097.627387, type 5 (EV_SW), code 1 (SW_TABLET_MODE), value 1
Event: time 1738791097.627387, -------------- SYN_REPORT ------------
Event: time 1738791102.134017, type 5 (EV_SW), code 1 (SW_TABLET_MODE), value 0
Event: time 1738791102.134017, -------------- SYN_REPORT ------------
Use o
udev
sistema, leiaman -k udev;man udevadm
. Daudevadm
man
página:Use
sudo udevadm monitor
para ver quais eventos acontecem ao entrar/sair do modo tablet.A solução que funcionou para mim - por enquanto - acabou sendo a detecção do modo Tablet e os scripts de configuração para Linux .
É um script escrito em Ruby que observa a saída
libinput debug-events --device /dev/input/event11
(no caso do meu HP Spectre x360) e reage quando observa uma alteração.Para meus propósitos, planejo criar um script bash que funcione da mesma forma, com base no exemplo abaixo (créditos aos usuários dos fóruns do arch). Adicionei meu usuário ao grupo "input" para me permitir acesso ao dispositivo de entrada, embora eu acredite que possa haver uma maneira de usar regras do udev para me dar acesso apenas ao dispositivo que realmente preciso.