Layout de teclado personalizado não usado textualmente

3

Eu criei um layout de teclado personalizado, ~/dot/c98.xkb . Parece assim:

// vim: ft=xkb
xkb_keymap {
    xkb_keycodes "k" { include "evdev(evdev)" };
    xkb_geometry "g" { include "pc(pc105)" };

    xkb_types "t" {
    };
    xkb_compat "c" {
    };
    xkb_symbols "s" {
    };
};

Obviamente, há coisas realmente nos blocos vazios, mas eu pulei para economizar espaço.

Compilar e descompactar através de xkbcomp c98.xkb c98.xkm; xkbcomp c98.xkm c98_xkm.xkb cria um arquivo equivalente ao original (tão semelhante quanto qualquer código decompilado).

No entanto, fazê-lo através de xkbcomp c98.xkb $DISPLAY; xkbcomp $DISPLAY c98_display.xkb resulta em uma mensagem de erro (ainda funciona, porém; mensagem copiada abaixo) e um arquivo que tem alguma semelhança com o original:

  • keycodes inclui evdev+aliases(qwerty) em vez de apenas evdev . Ele foi renomeado para evdev+aliases(qwerty) .
  • types contém muitas coisas, mas não o que eu especifiquei (parece incluir apenas complete ) e foi renomeado para complete /
  • compat contém o que eu disse, mas com mais virtual_modifiers . Esse também é chamado complete .
  • symbols contém o que deveria, exceto que o campo name[group1] foi alterado para English (US) e alguns dos campos type têm valores estranhos - eu acho que armazena índices e não nomes, e desde o campo types está corrompido ... O nome deste bloco foi alterado para pc+us+inet(evdev) .
  • geometry parece conter exatamente o que deveria, incluindo o nome do bloco.

Parece que xkbcomp copia apenas alguns dos blocos por algum motivo, deixando os campos keycodes e types sozinhos.

A mensagem de erro mencionada ao tentar definir o layout é:

X Error of failed request:  BadAtom (invalid Atom parameter)
  Major opcode of failed request:  135 (XKEYBOARD)
  Minor opcode of failed request:  18 (XkbSetNames)
  Atom id in failed request:  0x435345
  Serial number of failed request:  70
  Current serial number in output stream:  73

O código-fonte completo, bem como a comparação entre c98_xkm.xkb e c98_display.xkb , podem ser encontrados aqui .

    
por Caagr98 14.11.2016 / 20:59

0 respostas

Tags