Cria a configuração do xkb a partir do xmodmap

6

Eu tenho um arquivo xmodmap personalizado que uso, incluindo diacríticos multilíngues úteis, citações em inglês, traços & c. Eu quero usar este mapa com kmscon , então eu preciso criar uma configuração xkb dele. Existe um método automatizado para fazer isso? Ou até mesmo um processo manual direto, já que não precisarei fazer isso com frequência?

    
por André von Kugland 12.05.2015 / 05:29

4 respostas

5

Faça seu próprio arquivo de configuração xkb

A idéia é "ler" a configuração atual do teclado (não chame xmodmap ), e escreva seu próprio arquivo de símbolos baseado nele. Primeiro:

xkbcomp -xkb $DISPLAY

Isso cria server-0_0.xkb . Neste arquivo, pegue o seguinte bloco:

xkb_symbols "pc+inet(evdev)+compose(menu)+whatever(option)" {
    key <ESC> { [ Escape ] };
    ...
};

altere a primeira linha para:

default xkb_symbols "my_symbols" {
    include "pc+inet(evdev)"
    include "compose(menu)+whatever(option)"

(Eu acho que você pode dividir as opções em quantas linhas "include" quiser). Altere as chaves que você deseja modificar e coloque-as com override :

override key <AE10>  { [ 0, parenright, degree ]};

Remova todas as chaves inalteradas.

Instalação em todo o sistema

Coloque tudo isso em /usr/share/X11/xkb/symbols/my_terrific_kb . Agora os usuários podem carregá-lo com setxkbmap my_terrific_kb (em .xinitrc ou .xsessionrc ). Provavelmente, você pode colocar Option "XkbLayout" "my_terrific_kb" em xorg.conf para uma alteração em todo o sistema.

Instalação de usuário único

Coloque tudo isso em ~/anywhere/my_terrific_kb . Encontre o ID da entrada X do seu teclado com xinput list . Em seguida, execute xkbcomp -i <XInput_id> ~/anywhere/my_terrific_kb $DISPLAY .

    
por 04.04.2016 / 21:30
1

Acabei de resolver o problema. Depois de aplicar a configuração xmodmap , usei xkbcomp :0 custom-xkb-keymap para copiar o mapa de teclado xkb atual (da exibição :0 ) para um arquivo chamado custom-xkb-keymap .

    
por 12.05.2015 / 05:41
1

O arquivo de mapa produzido por xkbcomp :0 custom-xkb-keymap consiste em muitos componentes que você pode carregar simplesmente trocando os argumentos xkbcomp custom-xkb-keymap :0 . Ele mostra alguns avisos aqui, mas parece funcionar, quando eu mudo o layout no arquivo.

O layout do xkb é armazenado no diretório symbols , por exemplo %código%. O caminho pode variar dependendo do sistema. Quando você precisa do layout, você precisa cortar a parte que se parece com:

xkb_symbols "id+id+id(pc104)" {
    name[group1]="..."
    .
    .
    .
};

e armazene-o no diretório /usr/local/share/X11/xkb/symbols . Por favor, certifique-se, você não sobrescreve nenhum arquivo lá! Uma vez armazenado (por exemplo, como symbols ) você pode carregá-lo digitando mylayout . E isso corresponde ao setxkbmap mylayout setting xorg.conf na seção Option "XkbLayout" "mylayout" (veja man page para kbd para mais detalhes).

Parece que as outras partes na saída InputDevice correspondem aos arquivos nos outros diretórios, portanto, se algo não funcionar, você provavelmente terá que dividir o xkcomp em seus componentes e copiá-lo para o diretórios apropriados em custom-xkb-keymap . Mas isso é algo que eu nunca fiz ainda.

Layouts melhores

Em vez de usar despejos brutos com aparência de código decompilado, você também pode criar seu próprio arquivo /usr/local/share/X11/xkb , que é mais legível. Eu tenho o meu próprio layout personalizado, que provavelmente não será utilizável para a maioria de vocês, mas você ainda pode dar uma olhada neste arquivo curto que Eu uso para programação em teclados alemães (só para ter uma idéia de como isso pode parecer e o que você pode fazer com um arquivo symbols ).

    
por 01.09.2016 / 00:04
0

Existe um problema semelhante nesta discussão: Xephyr: o mapeamento do teclado não funciona corretamente Semelhante à solução fornecida, você pode salvar as configurações do teclado com

setxkbmap -display :0 -print > mykeymap

Este arquivo pode ser aplicado pelo xkbcomp em outros sistemas:

xkbcomp mykeymap :0

Este comando pode ocorrer no início automático do gnome ou de outros DEs. Não sei se todas as alterações manuais serão realizadas, mas acho que vale a pena tentar. Onde colocar esse arquivo para ser carregado automaticamente sem usar o xkbcomp, eu não sei.

    
por 31.08.2016 / 23:11

Tags