Skip to content

karabiner guide windows keymap

ES edited this page Jul 16, 2026 · 1 revision

Karabiner Windows 键位指南

macOS 普通 GUI 应用中,Karabiner 会交换左 Ctrl 与左 Cmd,让复制、粘贴、全选和常用系统操作接近 Windows/Linux 习惯

这是理解整套快捷键的前提:普通 GUI 应用会交换,终端、Neovide 和远程客户端不会交换

核心映射

物理按键 普通 GUI 应用中的结果
左 Ctrl 左 Cmd
左 Cmd 左 Ctrl

因此在浏览器、Finder 等普通应用中:

  • 物理 Ctrl-c/v/x/a/z 对应 macOS 的复制、粘贴、剪切、全选和撤销
  • 物理左 Cmd 更接近 Windows Ctrl 的位置和行为

右侧 Ctrl/Cmd 不参与这项全局交换

豁免应用

终端和远程客户端需要看到真实的 Ctrl,因此不会交换:

  • Kitty
  • WezTerm
  • Ghostty
  • Terminal
  • iTerm2
  • Neovide
  • RDP、VNC、NoMachine、Moonlight 等远程客户端

例如在终端中,配置里的 Ctrl-Shift-t 就是物理 Ctrl,不需要按 Cmd

Windows 风格系统快捷键

物理快捷键 功能
Ctrl-l 锁定屏幕
Ctrl-i 打开系统设置
Ctrl-e 打开 HOME 目录
Ctrl-Shift-Left/Right 按单词向左或向右选择文本

锁屏通过 ~/scripts/lock-screen.sh 执行,避免使用 osascript 合成按键时触发 TCC 权限问题

Neovide 特殊处理

macOS 会把 Option-h 参与输入法或死键处理。Neovide 中的 Ctrl/Command-Alt-h 会被 Karabiner 转换为 F19,再由 Neovim 配置接收,从而稳定完成向左导航

禁用 Cmd-h

配置禁用了普通 GUI 应用中的左 Cmd + h,防止误触 macOS 的“隐藏当前应用”。终端和远程客户端仍在豁免范围内

排错

终端中 Ctrl 行为反了

确认终端 bundle identifier 仍包含在 Karabiner 豁免列表,并检查是否启动了另一个会改键的软件

普通应用中 Ctrl-c 没有复制

打开 Karabiner-Elements,确认当前 profile 启用,Complex Modifications 中的 Ctrl/Cmd 规则处于活动状态

远程 Windows 中按键不对

远程客户端应被豁免,让物理 Ctrl 原样发送给远端。新增远程客户端时,需要把它的 bundle identifier 加入相同条件

配置真源为 ~/.config/karabiner/karabiner.json

Clone this wiki locally