4 votos

Teclas de opción izquierda/derecha invertidas bajo Mojave en teclado de PC con opción/comando conmutado.

Tengo Emacs 26.1 de emacsformacosx.com configurado para utilizar la opción izquierda como meta, e ignorar la opción derecha, para dejarla disponible para caracteres acentuados, etc.

Funciona bien con el teclado integrado de mi MacBook Pro, y funcionaba bien con un teclado externo de PC en High Sierra. Pero desde que instalé Mojave (un reformateo e instalación limpia), el teclado externo está al revés - la opción izquierda se ignora, la opción derecha es meta.

El teclado es un CoolerMaster QuickFire Rapid . Como complicación adicional, tengo la opción y el comando conmutados a través de Preferencias de teclado / Teclado / Teclas modificadoras.

  1. ¿qué más puedo hacer para diagnosticar el problema? ¿Hay alguna forma de saber qué códigos están enviando las teclas? (El Visor de Teclado resalta ambas teclas de opción cada vez que se pulsa una, así que no es de ayuda).
  2. ¿hay alguna forma de intercambiar intencionadamente las claves, por ejemplo en ~/Library/KeyBindings/ ¿pero sólo para ese teclado en concreto?
  3. ¿hay una manera de detectar al menos qué teclado está instalado, por ejemplo, en un bash script, lo que podría permitirme parcialmente hack alrededor del problema en mi init.el ? (No sería ideal tener que reiniciar emacs cuando cambio de teclado, pero sería mejor que nada).

Nota: Realmente no quiero instalar ningún software de mapeo de teclado de terceros (Karabiner, etc.) sólo para tratar este problema, aunque supongo que estaría abierto a ello para la parte de diagnóstico.


Actualizado para añadir: Según el comentario de @nohillside, he probado a desactivar el conmutador opción/comando en Preferencias del teclado. Esto solucionó el problema de izquierda/derecha. No es una solución viable, pero parece aislar el problema de la personalización de la tecla modificadora.


Actualizado de nuevo: He actualizado a Mojave un iMac que usa el mismo teclado de PC y no presenta el problema; puede que sea específico de los portátiles (o incluso de ese MacBook Pro en concreto).


Actualizado de nuevo: Desde que actualicé a Catalina, el iMac tiene el mismo problema.


Solución final: Tengo un Soltar CTRL teclado programable (hay opciones más baratas) con Firmware QMK y reasigné las teclas del teclado, en lugar de depender del interruptor de software del Mac.

1 votos

¿Puedes desactivar todas las modificaciones y ver cómo funciona entonces? ¿Y después añadirlas paso a paso?

0 votos

En el mismo barco con la última MBP 15 "+ Mojave. El teclado interno/incorporado está configurado para intercambiar alt y cmd. Entonces, dos alts se intercambian con la opción de intercambio alt-cmd en todos los teclados externos. (He probado con tres teclados diferentes). ¿Probablemente tu iMac no está configurado para intercambiar alt-cmd, ya que nunca usas un teclado apple con él?

0 votos

@krim Yo uso el teclado interno, pero sólo intercambio las teclas cuando uso un teclado externo de PC (no Apple).

3voto

Brecht Machiels Puntos 111

Cambiar Comando y Opción en versiones recientes de MacOS por alguna razón también cambia Opción Izquierda/Derecha. Afortunadamente, es posible configurar manualmente qué teclas intercambiar mediante la función valores predeterminados herramienta de línea de comandos.

  1. En primer lugar, averigüe cuáles son los ID de proveedor y de producto de su teclado externo:

    ioreg -p IOUSB -c IOUSBDevice | grep -e class -e idVendor -e idProduct

    Por ejemplo, tengo un teclado Microsoft Wired 600:

    ...
    | ...
    +-o Wired Keyboard 600@14200000  <class AppleUSBDevice, id 0x1000003a3, registered, matched, active, busy 0 (0 ms), retain 13>
          "idProduct" = 1872
          "idVendor" = 1118
  2. Borra las asignaciones de teclas modificadoras existentes:

    defaults -currentHost delete -g com.apple.keyboard.modifiermapping.<vendor-ID>-<product-id>-0

    Para mi teclado Wired 600:

    defaults -currentHost delete -g com.apple.keyboard.modifiermapping.1118-1872-0
  3. Intercambia las teclas modificadoras de Comando/Opción (de izquierda a izquierda, de derecha a derecha):

    defaults -currentHost write -g com.apple.keyboard.modifiermapping.1118-1872-0 -array-add '<dict><key>HIDKeyboardModifierMappingDst</key><integer>30064771299</integer><key>HIDKeyboardModifierMappingSrc</key><integer>30064771298</integer></dict>'
    defaults -currentHost write -g com.apple.keyboard.modifiermapping.1118-1872-0 -array-add '<dict><key>HIDKeyboardModifierMappingDst</key><integer>30064771298</integer><key>HIDKeyboardModifierMappingSrc</key><integer>30064771299</integer></dict>'
    defaults -currentHost write -g com.apple.keyboard.modifiermapping.1118-1872-0 -array-add '<dict><key>HIDKeyboardModifierMappingDst</key><integer>30064771302</integer><key>HIDKeyboardModifierMappingSrc</key><integer>30064771303</integer></dict>'
    defaults -currentHost write -g com.apple.keyboard.modifiermapping.1118-1872-0 -array-add '<dict><key>HIDKeyboardModifierMappingDst</key><integer>30064771303</integer><key>HIDKeyboardModifierMappingSrc</key><integer>30064771302</integer></dict>'
  4. Vuelva a conectar el teclado o cierre la sesión para que los ajustes surtan efecto.

Si lo deseas, también puedes desactivar la tecla Bloq Mayús:

defaults -currentHost write -g com.apple.keyboard.modifiermapping.1118-1872-0 -array-add '<dict><key>HIDKeyboardModifierMappingDst</key><integer>30064771072</integer><key>HIDKeyboardModifierMappingSrc</key><integer>30064771129</integer></dict>'

Aquí está una lista de los IDs para ellos llaves remapeadas aquí:

  decimal    hexadecimal
-----------  -----------
30064771298  0x7000000e2  Left Alt
30064771299  0x7000000e3  Left Cmd
30064771302  0x7000000e6  Right Alt
30064771303  0x7000000e7  Right Cmd
30064771129  0x700000039  Caps Lock
30064771072  0x700000000  <no action>

Aquí encontrará más información:

PS. Puede consultar el ~/Library/Preferences/ByHost/.GlobalPreferences.XXXXXXXX-YYYY-ZZZZ-WWWWW-VVVVVVVVVVVVV.plist para ver las asignaciones actuales. El ID largo será específico de su ordenador. TextMate, por ejemplo, abrirá archivos plist.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X