¿Cómo reasignar una sola tecla del teclado de Mac
On diciembre 31, 2021 by adminCómo reasignar una tecla del teclado de Mac OS X a la otra sin usar ninguna herramienta externa?¿Es posible hacerlo sin ser un desarrollador de mac? Resulta ser bastante sencillo en el nuevo macOS X 10.12 Sierra usando una pequeña utilidad llamada hidutil
.
Problema
No te gusta la distribución del teclado de tu Mac, o peor aún, tienes que trabajar con una distribución diferente en el trabajo que la que tienes en casa.¡En cualquiera de los casos puedes instalar alguna herramienta externa que haga la reasignación por ti pero quizás no te guste tener una aplicación adicional sólo para reasignar una sola tecla.Mi problema estaba relacionado con tener un teclado británico en casa y uno americano en el trabajo.Aunque en la OMI no es un problema acostumbrarse a ninguno de ellos cambiar entre ellos a diario es molesto.Había una tecla en particular que dificulta un poco las cosas desde el punto de vista del desarrollador.Era una tecla de tilde `.La tecla de tilde está colocada al lado del 1/! en el teclado americano y se sustituye por una tecla § de signo de sección en el británico.
Solución
Como resulta que para macOS X 10.12 Sierra no hay que hacer nada más que ejecutar un breve trozo de código para hacer la reasignación necesaria.
Aquí hay un ejemplo sencillo para el problema al que me enfrentaba que era la reasignación de la tecla §/£ a la tecla `/~.
hidutil property --set '{"UserKeyMapping": }'
Como puedes ver tienes que colocar valores apropiados (ID de uso) para HIDKeyboardModifierMappingSrc
y HIDKeyboardModifierMappingDst
que tendrás que encontrar en una tabla en los docs oficiales.Además, para cada «ID de uso (hex)» tendrá que calcular el «OR» a nivel de bits con 0x700000000
, lo cual es muy fácil en la mayoría de los casos, pero si tiene alguna dificultad, también puede utilizar el siguiente comando Bash:
printf '%X\n' "$(( 0x700000000 | 0x64 ))"
Donde 0x64
debe ser reemplazado por un valor de la columna «ID de uso (hex)».
Para comprobar las asignaciones actuales/efectivas puede ejecutar:
hidutil property --get "UserKeyMapping"
Y por último pero no menos importante. Para reiniciar todo lo que has configurado hasta ahora sólo tienes que ejecutar:
hidutil property --set '{"UserKeyMapping": }'
NOTA
Todos los cambios realizados con
hidutil
son inmediatos, por lo que no tienes que reiniciar nada.
Configurar automáticamente la asignación de teclas personalizadas después de cada reinicio
Crear archivo plist por ejemplo /Library/LaunchDaemons/org.custom.keyboard-remap.plist:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"> <dict> <key>Label</key> <string>org.custom.keyboard-remap</string> <key>ProgramArguments</key> <array> <string>/usr/bin/hidutil</string> <string>property</string> <string>--set</string> <string>{"UserKeyMapping": }</string> </array> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <false/> </dict></plist>
Luego cárguelo con sudo launchctl load -w /Library/LaunchDaemons/org.custom.keyboard-remap.plist
para que se cargue en cada reinicio del sistema.
Si quiere comprobar si su archivo plist se cargó con éxito puede usar sudo launchctl list | grep org.custom.keyboard-remap.plist
.
NOTAPara descargar el archivo plist desde el autoarranque del sistema utilice
sudo launchctl unload /Library/LaunchDaemons/org.custom.keyboard-remap.plist
Cuestiones
Sólo tengo un problema con este problema que fue encontrar un «ID de uso (hex)» apropiado para la tecla § de la sección.Resulta que fue nombrado en los documentos de Apple como Teclado no-US y |.Con el fin de encontrar que he utilizado el enfoque de prueba y error, por lo que nada fancy.If se encontrará con alguna forma mejor de encontrar «ID de uso (hex)» códigos por favor compartir.
En caso de que están recibiendo Invalid property list
mensaje de error después de cargar el archivo plist que son más probablemente tratando de usethe antigua sintaxis para el archivo plist con <key>Program</key>
en lugar de la mencionada <key>ProgramArguments</key>
.
Fuentes
- https://developer.apple.com/library/archive/technotes/tn2450/_index.html – Nota técnica de Apple relativa a la reasignación de teclas en macOS X Sierra
- https://apple.stackexchange.com/questions/283252/how-do-i-remap-a-key-in-macos-sierra-e-g-right-alt-to-right-control – Tema de Stack Overflow sobre eso
- https://en.wikipedia.org/wiki/British_and_American_keyboards – posibles distribuciones de teclado
- https://apple.stackexchange.com/questions/329085/tilde-and-plus-minus-%C2%B1-in-wrong-place-on-keyboard – exactamente el mismo tema encontrado después de escribir ese post
Deja una respuesta