Para reasignar una tecla, puede utilizar la función hidutil
mando. En este ejemplo, estoy remapeando F16 a la Option en el derecha lado (probablemente no se utiliza mucho, si es que se utiliza).
hidutil property --set '{"UserKeyMapping": \
[{\"HIDKeyboardModifierMappingSrc":0x7000000E6, \
"HIDKeyboardModifierMappingDst":0x70000006A}]}}
Las barras invertidas (\) permiten un comando multilínea para facilitar una mejor legibilidad. El comando puede copiarse/pegarse tal cual o eliminar las barras invertidas y las nuevas líneas para convertirlo en una sola línea.
Cuando escribas el comando, ten esto en cuenta:
- Src = la tecla que desea pulsar
- Dst = lo que quieres que haga
He proporcionado una parte de los valores hexadecimales de las teclas de función ampliadas definidas en Apple Nota técnica TN240 que describe cómo utilizar hidutil
.
Clave
Código hexadecimal
Clave
Código hexadecimal
Teclado F13
0x68
Teclado F19
0x6E
Teclado F14
0x69
Teclado F20
0x6F
Teclado F15
0x6A
Teclado F21
0x70
Teclado F16
0x6B
Teclado F22
0x71
Teclado F17
0x6C
Teclado F23
0x72
Teclado F18
0x6D
Teclado F24
0x73
Mejorar con un script...
Para facilitar el trabajo con este complejo comando, he creado un sencillo Bash script (más abajo) que te permitirá especificar las claves de origen y destino como variables.
He utilizado una función, mdCMDStr
, para "hacer la cadena de comandos" y poder replicar fácilmente comandos adicionales con el mínimo esfuerzo. Simplemente, reasigne el SOURCE
y DEST
y llamar a las variables mkCMDStr
y hidutil
tantas veces como sea necesario.
#! /bin/bash
function mkCMDStr () {
# Creates the command string
SETKEY_CMD={\"UserKeyMapping\":[{\"HIDKeyboardModifierMappingSrc\":${1},\"HIDKeyboardModifierMappingDst\":${2}}]}
}
SOURCE=0x7000000E6 #Keyboard Right Option/Alt
DEST=0x70000006A #Keyboard F16
mkCMDStr $SOURCE $DEST
hidutil property --set "${SETKEY_CMD}"
exit
Descargar el script
De este modo no persisten a través de reinicios. Puede hacer que esto sea "permanente" poniendo este script en Elementos de inicio de sesión o creando un archivo LaunchAgent .