Como personalizar os mapeamentos de teclado com Wayland

15

Eu uso o Linux em um Macbook com um teclado UK / GB e personalizo o mapa de teclado para solucionar alguns problemas causados pelo layout esquisito do teclado da Apple. Eu uso xmodmap para fazer isso. Eu gostaria de experimentar Wayland, mas xmodmap não funciona nisso. Como posso obter um resultado semelhante no Wayland? O arquivo .Xmodmap que eu uso contém o seguinte:

keycode  12 = 3 numbersign 3 sterling sterling sterling threesuperior sterling
clear Control
clear Mod4
add Control = Control_L Super_R
add Mod4 = Super_L
keysym Caps_Lock = NoSymbol Caps_Lock

Linha 1: Nos teclados do Reino Unido Shift - 3 é £, então # geralmente tem sua própria chave próxima Return . Mas no Mac # é obtido com Altgr - 3 . Como programador eu uso # muito mais que £, então essa linha os troca. A seleção do layout americano também faz isso, mas fazer isso no Linux também troca algumas outras chaves comumente usadas, enquanto no OS X essas outras chaves não são afetadas pelos EUA / Reino Unido.

Linhas 2-5: Certifique-se de que a tecla Cmd correta atue como Right- Ctrl , porque este teclado não possui uma tecla física Ctrl .

Linha 6: Faz com que o CapsLock funcione somente se você pressionar com Shift . Não específico do Mac, essa deve ser uma opção padrão para todos os sistemas operacionais e teclados.

    
por realh 29.06.2016 / 15:20

4 respostas

10

Infelizmente, modificar o banco de dados XKB do sistema em /usr/share/X11/xkb é o único caminho; da sua outra pergunta parece que você Consegui essa parte trabalhando.

A limitação é principalmente devido à imaturidade do Wayland e a uma supervisão do design no XKB.

  • Ferramentas como setxkbmap e xkbcomp fornecem uma opção -I para adicionar um banco de dados definido pelo usuário para pesquisa (por exemplo, ~/.xkb ou ~/.config/xkb , com arquivos e subdiretórios dispostos como o banco de dados do sistema ). Essas ferramentas interagem com o servidor X, portanto, elas podem ser úteis configurando a camada de compatibilidade Xwayland para executar aplicativos X no Wayland. Mas, no momento, eles não falam os protocolos de Wayland.

  • Os protocolos do Wayland ainda estão amadurecendo. Atualmente, parece que o input-method e protocolos text-input são mais relevantes e ambos são instáveis. Nem mencione nada sobre alterar um mapa de teclas definido; esses detalhes são deixados para o compositor.

  • O GNOME e o KDE fornecem daemons de configurações de manuseio de teclado que devem lidar com as opções do sistema XKB, incluindo as alterações dinâmicas. Pelo que sei, não há como saber sobre personalizações de usuários. Tanto quanto eu sei, Weston e outros compositores dependem de arquivos de configuração ou variáveis de ambiente para definir opções XKB na inicialização, e não fornecem nenhuma maneira de alterá-los além de sair e reiniciar.

  • Mesmo no próprio XKB, isso não é totalmente suportado. Seu arquivo de símbolos personalizado pode include de outros arquivos de símbolos do sistema. Mas no momento não há funcionalidade include para arquivos de regras XKB, portanto, mesmo se você tivesse uma ferramenta que falasse com o compositor Wayland e procurasse suas personalizações pessoais, teria que incluir manualmente todas as regras que deseja usar (ou seja, copie rules/evdev* do sistema XKB e modifique-o). libxkbcommon tem um problema aberto sobre esse tópico e um .

por 02.04.2017 / 15:03
5

Eu tenho usado Ferramentas de Interceptação para Linux com sucesso, e conheço pessoas produzindo outros plugins para seus mapeamentos customizados também. O caps2esc é o primeiro plugin de prova de conceito que eu uso todos os dias, e funciona tanto no X quanto no Wayland. A ferramenta é um nível um pouco mais baixo que o software de mapeamento comum, mas bastante flexível, e meu plano para um próximo plugin é uma ferramenta generalizada de mapeamento de chording.

Aviso: eu sou o autor.

    
por 04.12.2017 / 04:20
1

Para quem vem aqui em 2018 (Ubuntu 17.10), a parte mais crítica disso pode ser feita usando a ferramenta GNOME Tweak.

Ferramenta Gnome Tweak > Teclado & Rato > Opções de layout adicionais > Ctrl é mapeado para as teclas Win (e as teclas Ctrl usuais).

    
por 17.01.2018 / 08:58
1

Esta resposta tem a mesma ideia que a resposta do quickotic, mas apenas com um exemplo mais detalhado:

Gnome Tweaks tem uma lista de 20 ou 30 ajustes de teclado que você pode fazer via xkb. Às vezes você pode encontrar o ajuste que está procurando por padrão. No meu caso, eu queria trocar a tecla printscreen pelo Menu.

A única opção para modificar a chave printscr disponível via xkb foi substituí-la por Win_R. Gunnar Hjalmarsson, neste tópico, sugeriu-me que eu modificasse as modificações do xkb de modo a que eu modificasse as modificações do xkb. que o printscr / win_r faria printscr / menu em vez disso. Nós trabalhamos juntos e vamos retransmiti-lo aqui:

No terminal, digite:

sudo su
nano /usr/share/X11/xkb/symbols/altwin

Na parte inferior do arquivo, você encontrará:

// Win is mapped to the PrtSc key (and the usual Win key).
partial modifier_keys
xkb_symbols "prtsc_rwin" {
    replace key <PRSC> { [ Super_R, Super_R ] };
    modifier_map Mod4 { <PRSC>, <RWIN> };
};

Exclua esta seção e substitua-a por:

// Menu is mapped to the PrtSc key (and the usual Win key).
xkb_symbols "prtsc_rwin" {
     replace key <PRSC> { [ Menu, Menu ] };
     modifier_map Mod4 { <PRSC>, <MENU> };
};

Para excluir no nano, use a tecla backspace (o destaque e a exclusão não funcionam). Para colar, use shift-ctrl-v. Para sair e salvar, pressione ctrl-x, selecione yes para sobrescrever e pressione enter.

Reinicie. No Gnome / Ubuntu Vá para gnome-tweak-tools Nas ferramentas de ajuste, vá para Keyboard & Mouse, pressione o botão Opções de layout adicionais e expanda o comportamento das teclas Alt / Win. Selecionando a opção na parte inferior: Win é mapeado para printscr (lembre-se de que modificamos apenas este comportamento para trocar print e Menu em vez de imprimir e Win). (Tenho certeza que existe uma maneira de ativar a opção xkb modificada no KDE, mas eu não a uso, então não posso dar o procedimento exato).

    
por 14.04.2018 / 06:37