Asignación de teclado Mac ↔ Windows — Karabiner + PowerToys Keyboard Manager
Suaviza la división Cmd ↔ Ctrl entre los dos sistemas operativos. Configuración de Karabiner-Elements (Mac) y PowerToys Keyboard Manager (Windows) más cinco reasignaciones habituales.
La mayor fricción para quien usa Mac y Windows es el intercambio de Cmd ↔ Ctrl. macOS usa Cmd + C para copiar; Windows usa Ctrl + C. En Mac, Ctrl está en la incómoda esquina inferior; en Windows, la tecla Win apenas se usa. Tras adaptarse a un SO, las manos siguen equivocándose en el otro.
Creo que el objetivo no es hacer que un sistema imite al otro por completo, sino reducir el coste de cambio de contexto. Antes intentaba adaptarme mentalmente cada vez que cambiaba de máquina; ahora, con unas pocas reasignaciones clave, el cerebro deja de gastar energía en recordar qué tecla corresponde a cada sistema.
Esta guía unifica el comportamiento de las teclas en ambos SO con Karabiner-Elements (Mac) y PowerToys Keyboard Manager (Windows). Cinco reasignaciones habituales + asignaciones por aplicación + resolución de problemas.
Destinatarios: desarrolladores que usan Mac y Windows. Los usuarios de teclado externo (HHKB, Filco, etc.) aplican los mismos principios.
TL;DR
- Mac: Karabiner-Elements (
brew install --cask karabiner-elements) - Windows: paquete PowerToys (
winget install Microsoft.PowerToys) → Keyboard Manager - Asigna la misma tecla física → la misma acción en ambos SO (unifica Cmd ↔ Ctrl)
- Los teclados externos pueden cambiar de SO automáticamente mediante capa / interruptor dip
- Si la política corporativa bloquea PowerToys, usa AutoHotkey como sustituto
Requisitos previos
- macOS 14+ y Windows 11 22H2+ en ambas máquinas
- Derechos de administrador en ambas
1. Enfoque — ¿qué lado se adapta?
Tres opciones:
A. Hacer que Mac se comporte como Windows (usuarios de Windows nuevos en Mac)
- Asigna
Cmd → Ctrlcon Karabiner - Algunos atajos nativos de Mac dejan de funcionar (Spotlight, etc.)
- Recomendación: media
B. Hacer que Windows se comporte como Mac (usuarios de Mac forzados a Windows)
- Asigna
Win → Ctrl(o al revés) con PowerToys - Algunos atajos nativos de Windows dejan de funcionar (Win + Tab, etc.)
- Recomendación: media
C. Ajustar moderadamente ambos lados (el más habitual)
- Respeta las teclas nativas de cada SO; solo unifica los atajos que usas a diario
- Curva de aprendizaje más suave
- Recomendación: alta
Esta guía se centra en el Enfoque C. Los enfoques A y B reutilizan la misma configuración, pero con tablas de asignación distintas.
2. Mac — Configuración de Karabiner-Elements
2.1 Instalación
brew install --cask karabiner-elementsO descarga desde karabiner-elements.pqrs.org.
El primer inicio solicita cinco permisos de macOS:
- Monitorización de entrada (Karabiner)
- Monitorización de entrada (Karabiner-EventViewer)
- Accesibilidad (Karabiner)
- Accesibilidad (karabiner_grabber)
- Herramientas de desarrollo (opcional)
Ajustes del sistema → Privacidad y seguridad → concede cada uno.
2.2 Detección del teclado
Karabiner detecta automáticamente los teclados externos. En Settings → Devices se listan todos.
2.3 Modificaciones simples
Usa la pestaña Simple Modifications para añadir una pareja de teclas.
| De | A |
|---|---|
right_control | right_command |
caps_lock | escape (o control para usuarios de vim) |
right_option | right_command (opcional — amplía el área de Cmd) |
2.4 Modificaciones complejas
Las asignaciones condicionales se definen en JSON. Edita ~/.config/karabiner/karabiner.json o añádelas desde la interfaz gráfica.
Caso habitual: hacer que Cmd + tecla actúe como Win + tecla al estilo Windows en un teclado externo:
{
"description": "Map left_command to left_control (for Windows layout keyboard)",
"manipulators": [
{
"type": "basic",
"from": { "key_code": "left_command" },
"to": [{ "key_code": "left_control" }],
"conditions": [
{
"type": "device_if",
"identifiers": [
{ "vendor_id": 1278, "product_id": 33 } // ID del teclado externo
]
}
]
}
]
}Encuentra el vendor/product ID de tu teclado externo con Karabiner-EventViewer.
3. Windows — PowerToys Keyboard Manager
3.1 Instalar PowerToys
winget install Microsoft.PowerToysO descarga desde github.com/microsoft/PowerToys.
3.2 Activar Keyboard Manager
Inicia PowerToys → menú izquierdo → Keyboard Manager → activa el interruptor Enable Keyboard Manager.
3.3 Reasignar una tecla
Haz clic en Remap a key → añade una pareja.
| Tecla | Asignada a |
|---|---|
| Bloq Mayús | Esc |
| Ctrl derecho | Win derecho (coincide con la posición de Cmd en Mac) |
| Alt derecho | Ctrl derecho |
3.4 Reasignar un atajo
Remap a shortcut — acorde a acorde.
Caso habitual: Cmd + Space de macOS (Spotlight) → Alt + Space de Windows (PowerToys Run):
| De | A |
|---|---|
| Win + Space | Alt + Space |
| Win + C | Ctrl + C |
| Win + V | Ctrl + V |
| Win + Tab | Alt + Tab |
Deja «Target App» vacío para aplicarlo globalmente; rellénalo para limitarlo a una app concreta.
3.5 Alternativa con AutoHotkey (cuando PowerToys está bloqueado)
AutoHotkey es un único ejecutable con el mismo efecto. mac-like.ahk:
; Hace que Win+tecla se comporte como Ctrl+tecla estilo Mac
LWin & c::Send ^c
LWin & v::Send ^v
LWin & x::Send ^x
LWin & z::Send ^z
LWin & a::Send ^a
LWin & s::Send ^s
LWin & Space::Send !{Space} ; PowerToys RunEjecuta mac-like.ahk → queda activo en la bandeja del sistema.
4. Cinco reasignaciones habituales (recomendadas)
Aplica en ambos SO:
| Intención | Mac (Karabiner) | Windows (PowerToys) |
|---|---|---|
| Bloq Mayús → Esc | caps_lock → escape | Bloq Mayús → Esc |
| Ampliar modificadores derechos | right_option → right_command | Alt derecho → Ctrl derecho |
| Ampliar modificadores izquierdos | (por defecto) | Ctrl derecho → Win derecho |
| Alternar IME (teclado externo) | right_command → f19 + atajo IME | (alternancia IME nativa de Windows) |
| Coherencia de nueva pestaña | (Cmd+T por defecto) | (PowerToys: mantiene Ctrl+T) |
5. Teclados externos — cambio automático de SO (opcional)
Algunos teclados (HHKB, Niz Plum, etc.) incluyen interruptores dip o teclas de modo OS para diseños que reconocen el SO host.
HHKB Professional Hybrid
- Interruptores dip en la parte posterior, o
Fn+Q/W/Een el dispositivo - Modo Mac / Modo Win / Modo Lite
Niz Plum
Fn+/en el dispositivo, o cambio de diseño mediante software
Teclados personalizados QMK/VIA
- Asignación por capas mediante firmware VIA / QMK
- Cambio automático según el puerto USB al que se conecta
Cuando el teclado externo dispone de sus propios modos de SO, Karabiner y PowerToys tienen menos protagonismo.
6. Asignación por aplicación (patrones habituales)
macOS — frontmost_application_if de Karabiner
Asignación que se activa en una app específica:
{
"description": "VS Code only: Cmd+B → Ctrl+B (same shortcut as Linux/Win)",
"manipulators": [
{
"type": "basic",
"from": { "key_code": "b", "modifiers": { "mandatory": ["left_command"] } },
"to": [{ "key_code": "b", "modifiers": ["left_control"] }],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": ["^com\\.microsoft\\.VSCode$"]
}
]
}
]
}Windows — Target App de PowerToys
En Remap a shortcut, establece Target App al nombre del proceso:
- VS Code:
Code.exe - Chrome:
chrome.exe - WSL:
wt.exe(Windows Terminal)
7. Verificación
Mac
# Comprueba que Karabiner está disparando
open /Applications/Karabiner-EventViewer.app
# → Pulsa teclas; los eventos aparecen. Las asignaciones se muestran como transformación de → a.Windows
- PowerToys → Keyboard Manager → lista de reasignaciones
- Escribe en cualquier campo de texto, confirma el comportamiento reasignado
- (AutoHotkey) Icono H verde en la bandeja del sistema
8. Resolución de problemas
macOS Sequoia sigue revocando los permisos de Karabiner
- Tras las actualizaciones de macOS, el modelo de seguridad suele volver a solicitar permisos
- Ve a Ajustes del sistema → Privacidad y seguridad → desactiva y reactiva Monitorización de entrada / Accesibilidad para Karabiner
- O reinstala Karabiner-Elements
PowerToys Keyboard Manager no funciona en algunas apps
- Las apps ejecutadas como administrador (algunos juegos) eluden PowerToys
- Ejecuta PowerToys como administrador (icono de bandeja → Restart as administrator)
Tras la asignación, solo el teclado externo se comporta mal
- Karabiner: en Devices, selecciona el teclado y activa «Modify events from this device»
- PowerToys: las teclas específicas del fabricante (p. ej., botones laterales del Logitech G502) no se pueden reasignar
La tecla de alternancia IME de macOS deja de funcionar
- Ajustes del sistema → Teclado → Fuentes de entrada → Atajos: comprueba el atajo IME
- Con Karabiner, asigna el
right_commanddel teclado externo al atajo IME:{ "from": { "key_code": "right_command" }, "to": [{ "key_code": "japanese_kana" }] // reconocido por el IME coreano }
Windows Win + L (bloqueo) fue reasignada
- Atajo de seguridad del sistema reservado. PowerToys no puede interceptarlo (Windows tiene prioridad)
- AutoHotkey tampoco puede anularlo
- Sin solución alternativa: elige otro atajo
Conflicto de IME Mac vs Windows en un teclado Bluetooth compartido
- El mismo teclado Bluetooth emparejado con ambas máquinas: el estado IME del último SO usado persiste
- Usa el interruptor de modo OS del teclado (HHKB Fn+Q/W/E)
- O desempareja y vuelve a emparejar al cambiar de máquina
9. Siguientes pasos
- Productividad en Mac (Raycast · Rectangle · fundamentos de Karabiner) — /mac/productivity
- Compartir entrada — un teclado para dos PCs — /multi-os/input-sharing — Barrier · Logitech Flow
- Configuración inicial de Mac — /mac/initial-setup
- Configuración inicial de Windows — /windows/initial-setup
Referencias
Historial de cambios
- 2026-05-16: Primer borrador. Instalación de Karabiner + PowerToys + cinco reasignaciones habituales + por aplicación + teclados externos + seis casos de resolución de problemas.