1 votos

Reasignar 0x32 (No. de EE. UU. # y ~) a 0x35 (Acento grave y virgulilla) no tiene efecto

Tengo un Macbook Pro italiano. Tiene una tecla ù§ bastante inútil que quiero volver a asignar a `~.

Parece que el ID de uso hexadecimal para esa tecla ù§ es 0x32 es decir, la tecla Non-US # and ~, según el Pie de Página 2 (insertado en la página 56 de la especificación USB y encontrado en la página 59. Puedes encontrarlo fácilmente buscando el símbolo § en el documento). También consulté la página técnica de Apple a menudo vinculada Nota Técnica de Apple, y no pude encontrar otra tecla posible.

Así que con esa información, he estado intentando usar hidutil para establecer que el 0x32 (Tecla de teclado Non-US # and ~) pase a ser 0x35 (Acento grave y virgulilla). Parece que no tiene efecto. Otros cambios de teclas funcionan, solo no ese. Aquí está mi código:

hidutil property --set '{"UserKeyMapping": 
    [{"HIDKeyboardModifierMappingSrc":0x700000032,
      "HIDKeyboardModifierMappingDst":0x700000035}]
}'

¿Alguna idea?

1voto

PATRY Puntos 3068

Los caracteres realmente producidos por las teclas de hardware son determinados por el software de mapeo del diseño del sistema (en MacOS por la Fuente de Entrada activa). En el diseño italiano, no hay ninguna tecla que esté mapeada a la comilla invertida/tilde, por lo que no creo que haya forma de cambiar alguna otra tecla para producir eso a través de un sistema de intercambio de teclas como hidutil. Debes usar software de remapeo de teclas como Ukelele o Karabiner.

-1voto

Program5284 Puntos 18

Código incorrecto

En primer lugar, la tecla "ù§" (en realidad es solo ù ya que § solo se puede obtener a través de una combinación de teclas) tiene un código hexadecimal de tecla (o ID de uso) de 0x32, no es 0x31.

No olvides que estás utilizando un teclado italiano. La ubicación de las teclas y por lo tanto sus códigos de tecla son diferentes a otros teclados. La tecla ù y § en el teclado italiano está ubicada en el mismo lugar que la tecla \ and | en el teclado inglés internacional. Según la Nota Técnica TN2450, el ID de uso hexadecimal para \ and | es 0x31. Por lo tanto, el código de tecla para la tecla ù y § en el teclado italiano es 0x31.

Código corregido

Tu comando también es incorrecto de otra manera.

Entiendo que quieres que el comando reemplace la función de la tecla ù y § por la de la tecla [grave accent] y ~. Pero en realidad lo que hace es intentar agregar la función de la tecla ù y § a la tecla [grave accent] y ~ (sin éxito por supuesto).

Aún de acuerdo con la Nota Técnica TN2450, tu comando contiene aproximadamente la mitad de los parámetros necesarios en él. Una vez que hayas agregado la función de la tecla [grave accent] y ~ a la tecla ù y §, tienes que establecer la función de la tecla [grave accent] y ~ (no caracter) a otra cosa (generalmente ù y § pero puede ser ninguno).

Por lo tanto, el comando debería ser:

hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000031,"HIDKeyboardModifierMappingDst":0x700000035},{"HIDKeyboardModifierMappingSrc":0x700000035,"HIDKeyboardModifierMappingDst":0x700000031}]}'

Ten en cuenta que:

  • Src es la función de tecla que cambiarás
  • Dst es la función de tecla a la que se cambiará

El comando anterior debería "intercambiar" la función de las dos teclas, estableciendo la función de 0x31 en 0x35 y 0x35 en 0x31. Lo que significa que al presionar las teclas ù y §, obtendrás el resultado esperado para las teclas [grave accent] y ~ y viceversa. Para establecer 0x31 en 0x35 y 0x35 en ninguno:

hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000031,"HIDKeyboardModifierMappingDst":0x700000035},{"HIDKeyboardModifierMappingSrc":0x700000035,"HIDKeyboardModifierMappingDst":[]}]}'

Esto significa que al presionar las teclas ù y §, obtendrás el resultado esperado para las teclas [grave accent] y ~ pero cuando presiones las teclas [grave accent] and ~, no obtendrás nada.

Nota 1: Hasta donde sé, hidutil no funcionará para caracteres obtenidos a través de una combinación de teclas.

Nota 2: Los parámetros se restablecerán a los valores predeterminados cada vez que reinicies, lo que significa que tendrás que ejecutar el comando en cada arranque.

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