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

10

Continuando com minha pergunta sobre como personalizar mapeamentos de teclas no Wayland Eu descobri que xmodmap aparentemente está obsoleto, mas xkb "deve funcionar" em Wayland. Infelizmente, xkb é muito mais complicado e correspondentemente mais mal documentado. Eu consegui trabalhar as estrofes que eu preciso com base em informações de uma questão sobre trocar Cmd e Ctrl , outra questão de caps lock , lendo alguns dos links nas respostas e dos meus arquivos de sistema, mas não sei como aplicá-las de uma maneira que possa ser automatizada e não conflitar com o GNOME.

Estas são as estrofes que eu trabalhei e testei com sucesso com 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) ]
    };
};

Eu coloquei os dois primeiros em /usr/share/X11/xkb/symbols/macbook e o terceiro em shiftcaps no mesmo diretório, e com xkbcomp etc eles funcionam quando carregados na parte superior do layout gb(mac) padrão.

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

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>
    
por realh 06.07.2016 / 21:16

1 resposta

1

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

    
por 07.07.2016 / 16:52

Tags