Solía usar Karabiner para reasignar Right Alt a Right Control (como usuario de Emacs, uso Control MUCHO más que Alt), pero la actualización a Sierra rompió esto. Bajar de categoría no es una opción.
¿Cómo reasigno manualmente las teclas en Sierra? Específicamente me gustaría reasignar Right Alt a Right Control.
La nota técnica TN2450 de Apple describe cómo reasignar teclas. Ejecutar el siguiente comando reasignará Right Alt para que sea Right Control.
hidutil property --set '{"UserKeyMapping":
[{"HIDKeyboardModifierMappingSrc":0x7000000e6,
"HIDKeyboardModifierMappingDst":0x7000000e4}]
}'
Tenga en cuenta que el comando anterior no está cambiando el Alt derecho y el Control derecho. Ambos serán Right Control. Si tienes un MacBook, no lo notarás hasta que conectes un teclado externo. Si desea cambiar Alt derecho y Control derecho, debe agregar un segundo comando de cambio, como el siguiente.
hidutil property --set '{"UserKeyMapping":
[{"HIDKeyboardModifierMappingSrc":0x7000000e4,
"HIDKeyboardModifierMappingDst":0x7000000e6},
{"HIDKeyboardModifierMappingSrc":0x7000000e6,
"HIDKeyboardModifierMappingDst":0x7000000e4}]
}'
La tabla en la parte inferior de la Nota técnica tiene una lista de valores hexadecimales para cada clave. Para generalizar la respuesta anterior para cambiar cualquier clave, debe or
el valor hexadecimal de esa lista junto con 0x700000000
. El siguiente código de Python demuestra una forma de hacer esto.
In [1]: def convert(val):
...: int_val = int(val, 16)
...: int_ref = 0x700000000
...:
...: return hex(int_ref | int_val)
...:
In [2]: r_alt = '0xE6'
In [3]: print(convert(r_alt))
0x7000000e6
Un enfoque más general y fácil de usar es usar Karabiner-Elements , que es una versión de Karabiner que funciona en Sierra.
Esta es una adición a la respuesta de Steven C. Howell.
Tengo una nueva MacBook Pro con un teclado escandinavo. Este nuevo modelo ya no tiene tecla Esc, lo que es un hándicap importante para mí.
Descubrí que lo siguiente traducirá la tecla § (arriba a la izquierda, a la izquierda de 1 y arriba de la tecla de tabulación), que creo que nunca antes había usado para nada, para producir Esc.
hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000064,"HIDKeyboardModifierMappingDst":0x700000029}]}'
En la documentación de Apple (vinculada desde la respuesta de Steven), esto está etiquetado como "Teclado no estadounidense \ y |" (0x64).
Varias de las teclas "no estadounidenses" son difíciles de descubrir porque generalmente se refieren a teclas que tienen una etiqueta diferente en el teclado que está utilizando. (También descubrí que "Acento grave y tilde" se refiere a la tecla entre la mayúscula y la z, que en mi teclado produce <
. No pude establecer qué tecla corresponde a "Non-US #
and ~
" y no experimenté más una vez que encontré mi clave). Si desea experimentar, intente ejecutar el script en la terminal hasta que encuentre la clave que necesita:
for ((i=1;i<=128;++i)); do
printf '0x7000000%0x\n' "$i"
printf '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x7000000%0x,"HIDKeyboardModifierMappingDst":0x70000000a}]}' "$i" |
xargs -0 hidutil property --set >/dev/null
read -p "Type some stuff: "
hidutil property --set '{"UserKeyMapping":[{}]}' >/dev/null
done
Esto recorre los códigos clave y cambia uno a la vez, con la esperanza de que pueda encontrar a través de prueba y error una clave que no sea particularmente útil para usted. Intenta escribir algo cuando te lo pida; si obtienes un g
en lugar de lo que esperabas, has encontrado el código de tecla correcto. (Cambie 0x70000000a
a otra cosa si g
no es una opción conveniente para usted. ¿Tal vez quiera reasignar la g
tecla?) Cuando termine de escribir, simplemente presione Entrar para pasar a la siguiente tecla.
Por lo que vale, el último comando dentro del bucle es cómo eliminar todas las UserKeyMapping
configuraciones:
hidutil property --set '{"UserKeyMapping":[{}]}'
Cuando lo ejecuta inicialmente hidutil property --get UserKeyMapping
, produce
(null)
pero parece que no puede retroalimentar este valor para eliminar la configuración (o más bien, acepta pero ignora esta entrada).
(Si no está familiarizado con la Terminal, simplemente copie/pegue la cosa desde for
hasta done
que se le bash$
solicite o similar).
Según esta pregunta relacionada con el desbordamiento de pila , puede colocar el comando en un archivo de secuencia de comandos en su directorio de inicio y agregarlo a su launchd
configuración para que este cambio sea persistente.
En caso de que algunos lectores no se sientan cómodos haciendo esto por su cuenta, aquí hay un script rápido que lo hace por usted. Nuevamente, simplemente copie / pegue esto en el indicador de la Terminal.
mkdir -p ~/bin
printf '%s\n' '#!/bin/sh' \
'hidutil property --set '"'"'{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000064,"HIDKeyboardModifierMappingDst":0x700000029}]}'"'" \
>~/bin/userkeymapping
chmod 755 ~/bin/userkeymapping
mkdir -p ~/Library/LaunchAgents
cat<<: >~/Library/LaunchAgents/userkeymapping.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>userkeymapping</string>
<key>ProgramArguments</key>
<array>
<string>$HOME/bin/userkeymapping</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
:
launchctl load ~/Library/LaunchAgents/userkeymapping.plist
Obviamente, si terminó con alguna otra clave que 0x700000064
no sea, necesita cambiarla en el script, o en el archivo ~/bin/userkeymapping
que termina creando si ya ejecutó lo anterior.
LoginHook
, pero no funcionó para mí, y en base a stackoverflow.com/a/22872222/874188 , cambié a un launchd
enfoque en su lugar.zsh
, pero sigo desconcertado de que Apple haya cambiado a este malvado shell como predeterminado para los nuevos usuarios.Vaya al menú Apple y elija "Preferencias del sistema" y luego vaya al panel de preferencias "Teclado" y elija la pestaña "Teclado"
Haga clic en el botón "Teclas modificadoras" en la esquina inferior derecha
Aᴄʜᴇʀᴏɴғᴀɪʟ
Steven C. Howell
Src
yDst
.arbusto de fuego
arbusto de fuego
Nanashi no Gombe
\
en mi teclado esShift+Option+7
la que me gustaría reemplazar con algo más simpleOption+.
que casi no uso. ¿Cómo puedo hacer eso? Gracias por tu ayuda.xavi
¡ (and ¿)
to befn
+Delete Forward
. ¿Es eso posible?triplicado
Bachsau
Steven C. Howell
Bachsau
Steven C. Howell
clarktfu
mandarina
Bachsau
ky-
steven lu