Faça da sua tecla capslock uma tecla de play / pause
Esta solução remapeará o scancode da sua tecla capslock para um código de chave diferente no driver de entrada do kernel, nesse caso, play / pause.
Vantagens
- Não há necessidade de modificar os arquivos do sistema existentes (apenas um novo arquivo deve ser criado)
- Os aplicativos não sabem que na verdade é uma tecla de capslock, mas pensam que uma tecla de reprodução / pausa real foi pressionada
- Não há necessidade de desativar o capslock, não há possibilidade de estragar a
xkb
configuração
Desvantagens
- Tem que ser feito para cada teclado individualmente (o que, dependendo da situação, também pode ser uma vantagem)
Pré-requisitos
- evtest (pode ser instalado via
sudo apt-get install evtest
)
Procedimento
Em um terminal, execute sudo evtest
e selecione seu teclado. Se não houver saída ao pressionar uma tecla, pressione Ctrl+ Ce tente um dispositivo diferente. Lembre-se do número do evento do dispositivo que você selecionou, precisaremos depois. Pressione a tecla Capslock. Algumas linhas como as seguintes aparecerão:
Event: time 1529406021.187148, -------------- SYN_REPORT ------------
Event: time 1529406021.218427, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70039
Event: time 1529406021.218427, type 1 (EV_KEY), code 58 (KEY_CAPSLOCK), value 0
Precisamos do valor da MSC_SCAN
linha que precede a KEY_CAPSLOCK
linha. No exemplo acima, isso seria 70039, mas o scancode no seu teclado provavelmente é diferente.
Agora execute o seguinte comando, mas substitua o X pelo número do evento do dispositivo que você usou para o evtest
comando:
grep "" /sys/class/input/eventX/device/id/*
... esta saída vontade bustype
, product
, vendor
e version
do teclado.
Crie um arquivo nomeado 65-keyboard-custom.hwdb
em /etc/udev/hwdb.d/
(permissões de root necessárias) com o seguinte conteúdo:
evdev:input:b[bustype]v[vendor]p[product]e[version]*
KEYBOARD_KEY_[scancode]=playpause
...Onde
- [barramento], [fornecedor], [produto] e [versão] têm exatamente 4 caracteres e as letras precisam ser maiúsculas
- [scancode] tem que estar em minúsculas
- a
evdev:...
linha não tem espaço anterior
- a
KEYBOARD_KEY...
linha tem exatamente um espaço anterior
Por exemplo:
evdev:input:b0003v046DpC228e0110*
KEYBOARD_KEY_70039=playpause
Por fim, compile a nova configuração no banco de dados de hardware:
sudo systemd-hwdb update
Se você deseja aplicar as alterações imediatamente, informe o udev:
sudo udevadm trigger
Se você deseja reverter as alterações, basta remover o arquivo que você criou e reiniciar.
Você pode encontrar informações mais detalhadas na minha resposta original sobre este tópico.
vlc --key-play-pause <key-string>
, mas eu não encontrei uma cadeia que VLC aceita como capslock ...