Como carregar automaticamente personalizações do xkb no GNOME?

11

Seguindo minha pergunta sobre a personalização de mapeamentos de teclas em Wayland , descobri que isso xmodmapé aparentemente obsoleto, mas o xkb "deve funcionar" em Wayland. Infelizmente, o xkb é muito mais complicado e correspondentemente mais mal documentado. Consegui elaborar as estrofes de que preciso com base nas informações de uma pergunta sobre troca CmdeCtrl , outra questão de caps lock , lendo alguns dos links nas respostas e nos arquivos do meu sistema, mas não sei como aplicá-los de uma maneira que pode ser automatizada e não conflitar com o GNOME.

Essas são as estrofes com as quais trabalhei e testei com sucesso xkbcomp.

partial alphanumeric_keys
xkb_symbols "pound" {
    // Put sterling on RAlt-3 and numbersign on Shift-3.
    key <AE03> { [ 3, numbersign, sterling, threesuperior ] };
};

// Make right cmd key act as ctrl
partial modifier_keys
xkb_symbols "rcmdctrl" {
    key <RWIN> { [ Control_R ] };
    modifier_map Control { <LCTL>, <RWIN> };
    modifier_map Mod4 { <LWIN> };
};

partial modifier_keys
xkb_symbols "shiftcaps" {
    key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = [ VoidSymbol, Caps_Lock ],
        actions[Group1] = [ NoAction(), LockMods(modifiers=Lock) ]
    };
};

Coloquei os dois primeiros /usr/share/X11/xkb/symbols/macbooke o terceiro no shiftcapsmesmo diretório e, com xkbcompetc, eles funcionam quando carregados no topo do gb(mac)layout padrão .

Estou editando isso para fazer uma atualização e esclarecer minha resposta. Minha personalização de libra parou de funcionar recentemente, então verifiquei o que havia mudado em gb (mac) e percebi que tinha que adicionar , threesuperiorà key <AE03>linha.

Eu acho que evdev.xmlé usado pelo gnome-tweak-tool para disponibilizar essas opções na GUI. Aqui está o que eu adicionei:

<group allowMultipleSelection="true">
  <configItem>
    <name>macbook</name>
    <description>Macbook customisations</description>
  </configItem>
  <option>
    <configItem>
      <name>macbook:pound</name>
      <description>Hash on Shift-3, Sterling on AltGr-3</description>
    </configItem>
  </option>
  <option>
    <configItem>
      <name>macbook:rcmdctrl</name>
      <description>Right Cmd key acts as Ctrl</description>
    </configItem>
  </option>
</group>
<group allowMultipleSelection="false">
  <configItem>
    <name>shiftcaps</name>
    <description>Caps Lock with Shift</description>
  </configItem>
  <option>
    <configItem>
      <name>shiftcaps:shiftcaps</name>
      <description>Caps Lock requires Shift to toggle</description>
    </configItem>
  </option>
</group>
realh
fonte
1
gnome deve ver suas opções (e honrar os dconfvalores-chave no âmbito org.gnome.desktop.input-sources), contanto que você adicioná-los à xkb governa o sistema está usando, ou seja, os arquivos corretos, veja meu post aqui
don_crissti
Obrigado. Definir opções nos arquivos evdev foi a peça que faltava no quebra-cabeça, e eu tenho que fazer o que quero agora, usando o dconf-editor.
realh 07/07/16
No meu sistema (Debian) eu também encontrei /usr/share/X11/xkb/rules/evdev.xml. Não sei para que serve; o aplicativo de configurações do GNOME trava ao abrir as opções de teclado se eu cometer um erro de sintaxe, mas não consigo encontrar as opções na GUI. Eu adicionei linhas apropriadas após a linha que contém <optionList>. Não posso publicá-las aqui por causa de limitações nos comentários.
realh 07/07/16
Permitam-me acrescentar que o xmodmap foi descontinuado por volta de 1996, quando o XKB surgiu. Ou seja, anos antes da invenção do wayland.
Robert Siemer 29/10

Respostas:

1

A resposta de don_crissti à outra pergunta forneceu a peça que faltava no quebra-cabeça. Eu defini opções nos arquivos evdev conforme descrito e as adicionei ao org.gnome.desktop.input-sources.xkb-optionsgsetting. Funciona perfeitamente.

realh
fonte