Como eu mudo o mapa de teclado de um único dispositivo (apresentador da Logitech)?

19

Meu apresentador do Logitech R400 envia os seguintes códigos de chave:

keycode 112 (keysym 0xff55,  Prior) [page up]
keycode 117 (keysym 0xff56,   Next) [page down]
keycode  60 (keysym   0x2e, period)
keycode  71 (keysym 0xffc2,     F5)
keycode   9 (keysym 0xff1b, Escape)

Basicamente, eu quero usar este apresentador para controlar remotamente o Banshee, então eu gostaria de remapear Prior para B , Next para N e assim por diante.

Como posso alterar o mapa de teclado apenas para este dispositivo (como eu certamente não quero remapear esses códigos-chave globalmente)?

    
por htorque 20.10.2011 / 16:51

2 respostas

15

Eu nunca fiz isso, mas acho que você precisa criar um arquivo de mapa de teclado em /lib/udev/keymaps/ e adicionar uma regra para o seu dispositivo em /lib/udev/rules.d/95-keymap.rules

Detalhes:

  • Um keymap do udev mapeia códigos de varredura para códigos-chave, portanto, você precisa encontrar ambos para criar o arquivo keymap. Para encontrar os códigos de verificação, execute o seguinte e pressione os botões no dispositivo:

    sudo /lib/udev/keymap -i input/event5
    

    Pode ser necessário tentar números diferentes para evento * . A saída deve ficar assim:

    scan code: 0x70037   key code: dot
    scan code: 0x70029   key code: esc
    scan code: 0x7003E   key code: f5
    scan code: 0x7004B   key code: pageup
    scan code: 0x7004E   key code: pagedown
    

    Uma lista de códigos-chave pode ser encontrada aqui .

    Agora crie o arquivo keymap (estou armazenando como / lib / udev / keymaps / logitech-r400 ):

    0x70037 brightnessdown
    0x70029 brightnessup
    0x7003E brightnessdown
    0x7004B brightnessup
    0x7004E brightnessdown
    

    Não faz nada de útil - apenas um teste para ver facilmente se funciona.

  • Para testar temporariamente o novo mapa de teclado, execute:

    sudo /lib/udev/keymap input/event5 /lib/udev/keymaps/logitech-r400
    

    que deve resultar em resultados assim:

    Remapped scancode 0x70037 to 0xe0 (prior: 0x34)
    Remapped scancode 0x70029 to 0xe1 (prior: 0x01)
    Remapped scancode 0x7003e to 0xe0 (prior: 0x3f)
    Remapped scancode 0x7004b to 0xe1 (prior: 0x68)
    Remapped scancode 0x7004e to 0xe0 (prior: 0x6d)
    

    Os botões devem agora alterar o brilho.

  • Se você quiser tornar essa alteração permanente, será necessário adicionar uma regra do udev a /lib/udev/rules.d/95-keymap.rules que aplica o arquivo de mapa de chaves ao dispositivo.

    1. Abra o arquivo: gksudo gedit /lib/udev/rules.d/95-keymap.rules
    2. Na parte inferior do arquivo, mas antes da linha LABEL="keyboard_end" , adicione:

      ENV{ID_VENDOR}=="Logitech*", ATTRS{idProduct}=="c52d", RUN+="keymap $name logitech-r400"
      
    3. Salve, feche e, após a reinicialização, os botões devem alterar o brilho.

por Florian Diesch 22.10.2011 / 20:38
3

Estou no Ubuntu 16.04. Eu fiz um guia aqui

% bl0ck_qu0te%     
por Ssh-uunen 26.01.2017 / 12:28