Crear una clave de escape física en la nueva MacBook Pro con TouchBar alterando .keylayout para la tecla §

10

Los diseños de teclado del Reino Unido para TouchBar MacBook Pro tienen una tecla § / ± bastante inútil en la parte superior izquierda que sería perfecta para usar como tecla de escape física (ver esta imagen ).

macOS tiene un sistema de mapeo de teclado (/ Library / Keyboard Layouts / - por ejemplo, consulte http://www.gingerbeardman.com/UK.keylayout/ y https://developer.apple.com/library/content/technotes/tn2056/ _index.html ) que permite cambiar las claves.

Me parece posible que poner una línea en la distribución del teclado relevante sea similar a:

<key code="<code for that key>" output="&#x1B;" />

debería permitirme hacer de esa llave una tecla de escape. (¡Si puedo encontrar / crear el diseño para todas las otras teclas también!)

Googleé. No he encontrado a nadie que mencione que han hecho esto, lo que me parece extraño. ¿Hay alguna razón por la que esto no funcionaría? ¿Se puede reasignar el teclado TouchBar con un archivo .keylayout sin perder ninguna funcionalidad?

¡He estado esperando comprar un nuevo MacBook Pro por miedo a perder la llave de escape física! Sé que puedes reasignar ctrl / cmd / etc para que se escape usando las preferencias del sistema, pero en comparación, parece una solución pobre.

JosephH
fuente
¿Qué tecla vas a usar si no se bloquean las mayúsculas o las incluidas que Apple hace muy fáciles y configurables?
bmike
1
@bmike La tecla § / ± en la parte superior izquierda de la distribución del teclado del Reino Unido: vea esta imagen para ver la tecla de la que estoy hablando: d.ibtimes.co.uk/en/full/1570365/macbook-pro-touch- bar.jpg : ¡es una clave inútil que nunca he usado para su propósito en ninguna Mac!
JosephH
Wow, me perdí esa parte por completo. Veamos si puedo encontrar alguna opción para reasignar eso. Mi respuesta no es tan flexible con la opción de reasignación "fácil".
bmike
@bmike ¡Gracias! Si. Es una opción interesante que no está realmente disponible en los mapas de teclado de EE. UU. :-) Espero que sea posible con un .keylayout. De hecho, he ordenado la MacBook Pro Touchbar ahora para que pueda experimentar cuando llegue.
JosephH

Respuestas:

9
  1. Instalar elementos Karabiner
  2. Ejecútelo desde el Launchpad (obviamente)
  3. En la pestaña "Modificaciones simples", cree un mapeo "reacción no estadounidense" para "escapar"
  4. ¡Disfrutar!

Por cierto, el código clave para "§" es 0A (según lo informado por Karabiner Event Viewer)

igrinis
fuente
1
error tipográfico:s/non-us-backlash/non-us-backslash
Shlomi Noach
6

Abra Preferencias del sistema - seleccione el teclado. Luego seleccione Teclas modificadoras ... hacia la parte inferior derecha de la ventana.

Tengo escape asignado a la tecla de bloqueo de mayúsculas.

ingrese la descripción de la imagen aquí

Estoy de acuerdo en que usar las teclas de control para escapar es pobre, pero la tecla de bloqueo de mayúsculas funciona muy bien. En la práctica, no he tenido ningún problema para aprender a usar la tecla de escape suave. Tener el bloqueo de mayúsculas es mucho más rápido una vez que me acostumbré debido a la menor distancia de viaje desde la fila de inicio.

bmike
fuente
6

Encontré algo de documentación sobre Remapping Keys en macOS 10.12 Sierra que funciona sin herramientas de terceros.

Para cambiar la tecla justo encima de la pestaña, configure src en 0x64 (Teclado no estadounidense \ y |) y dst en 0x29 (Escape). Estos valores deben ser OR con 0x700000000 en la llamada a hidutil por alguna razón.

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

Puede poner esto en un LaunchAgent (~ / Library / LaunchAgents / give.me.esc.key.plist) para configurarlo cada vez que inicie sesión.

<?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>give.me.esc.key</string>
    <key>ProgramArguments</key>
    <array>
        <string>hidutil</string>
        <string>property</string>
        <string>--set</string>
        <string>{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000064,"HIDKeyboardModifierMappingDst":0x700000029}]}</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>
gipset
fuente
Me salvaste la vida. Odio los teclados con la tecla tilda junto al botón de desplazamiento corto y el botón f * n §debajo de escape. Así que lo reasigné con el botón tilda y el turno extendido. hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000064,"HIDKeyboardModifierMappingDst":0x700000035},{"HIDKeyboardModifierMappingSrc":0x700000035,"HIDKeyboardModifierMappingDst":0x7000000e1}]}'Por cierto, puede obtener esos códigos utilizando el visor de claves de karabiner
DanSkeel
¿Cómo puedo evitar el acceso a shift- §así que todavía puedo usar ±? Es decir, ¿puedo usar modificadores?
Wivku