Você já resolveu todas as partes difíceis do quebra-cabeça: -)
Você precisa executar um programa dedicado que reaja ao comando de alternância ou use um programa existente que esteja sendo executado de qualquer maneira e possa reagir às chaves. Alguns gerenciadores de janelas podem ser configurados com flexibilidade para reagir às teclas, por exemplo, estou usando fvwm
para as teclas de brilho e volume do meu laptop. Então descubra o gerenciador de janelas que você está usando e como você pode configurá-lo.
Você pode descobrir o código-chave X em vez do código-chave do kernel executando xev
, concentrando-o e pressionando Fn + F6.
O segundo problema é que para executar uma operação de alternância, você precisa saber o estado atual. A maneira mais simples é provavelmente escrever um pequeno script de shell para ler a propriedade Device Enabled
com xinput
e, em seguida, ativá-lo ou desativá-lo com xinput set-prop
. Execute este script de shell a partir do gerenciador de janelas (se puder) sempre que receber o código X parecido que você descobriu.
Solução
A solução é alterar o arquivo /etc/udev/hwdb.d/10-yoga.hwdb
para:
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*80UE*:pvr*YOGA*900-13ISK2*
KEYBOARD_KEY_bf=f21
@dirkt forneceu informações sobre o arquivo /usr/share/X11/xkb/symbols/inet
. A leitura deste arquivo é clara e o X11 mapeia a chave F21 para XF86TouchpadToggle:
key <FK21> { [ XF86TouchpadToggle ] };
Portanto, em vez de mapear o scancode para touchpad_toggle
, mapeio-o apenas para a tecla de função F21.
Nenhum script é necessário.
Edições restantes
Este laptop envia esse evento quando você o coloca no modo tablet. Mas ao voltar para o modo laptop, ele não é enviado novamente, portanto, o touchpad permanece desativado.
Além disso, se você desativar o touchpad enquanto estiver no modo laptop, o modo tablet permite isso.