¿Cómo puedo cargar automáticamente las personalizaciones xkb en GNOME?


11

Siguiendo con mi pregunta sobre la personalización de las asignaciones de teclas en Wayland , descubrí que xmodmapaparentemente está en desuso, pero xkb "debería funcionar" en Wayland. Desafortunadamente, xkb es mucho más complicado y, en consecuencia, está peor documentado. Me las arreglé para resolver las estrofas que necesito sobre la base de la información de una pregunta sobre el intercambio CmdyCtrl , otra pregunta de bloqueo de mayúsculas , leyendo algunos de los enlaces en las respuestas y de los archivos de mi sistema, pero no sé cómo aplicarlos de manera que pueda automatizarse y no entrar en conflicto con GNOME.

Estas son las estrofas que he elaborado y probado con éxito 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) ]
    };
};

Puse los dos primeros /usr/share/X11/xkb/symbols/macbooky el tercero en shiftcapsel mismo directorio, y con xkbcompetc. funcionan cuando se cargan encima del gb(mac)diseño estándar .

Estoy editando esto para hacer una actualización y aclarar mi respuesta. La personalización de mi libra dejó de funcionar recientemente, así que verifiqué lo que había cambiado en gb (mac) y me di cuenta de que tenía que agregar , threesuperiora la key <AE03>línea.

Creo que evdev.xmlgnome-tweak-tool lo utiliza para hacer que estas opciones estén disponibles en la GUI. Esto es lo que agregué:

<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>

1
gnome debería ver sus opciones (y respetar los dconfvalores clave debajo org.gnome.desktop.input-sources) siempre que las agregue a las reglas xkb que usa su sistema, es decir, a los archivos correctos, vea mi publicación aquí
don_crissti

Gracias. Definir opciones en los archivos evdev era la pieza que faltaba en el rompecabezas, y ahora tengo que hacer lo que quiero, usando dconf-editor.
realh

En mi sistema (Debian) también encontré /usr/share/X11/xkb/rules/evdev.xml. No estoy seguro de para qué sirve; la aplicación de configuración de GNOME se bloqueará al abrir las opciones del teclado si cometí un error de sintaxis, pero en realidad no puedo encontrar las opciones en la GUI. Agregué líneas apropiadas después de la línea que contiene <optionList>. No puedo publicarlos aquí debido a limitaciones en los comentarios.
realh

Permítanme agregar que xmodmap fue desaprobado alrededor de 1996 cuando apareció XKB. Es decir, años antes de la invención de Wayland.
Robert Siemer

Respuestas:


1

La respuesta de don_crissti a la otra pregunta proporcionó la pieza faltante del rompecabezas. org.gnome.desktop.input-sources.xkb-optionsDefiní opciones en los archivos evdev como se describe y las agregué a gsetting. Funciona perfectamente

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.