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.