[tip] KDE 单独设置 Emacs 忽略系统的全局快捷键

由于 Emacs 里面舒服的按键大部分已经被设置了,而自己重新设计按键成本太高,所以我尽可能不改变默认快捷键,然后把自己定义的快捷键都绑定给 Super/Win,但是 Super 有一些很有用的全局快捷键会有不少冲突。之前如果存在 Emacs 和全局冲突,我就把全局的删掉。

今天偶然发现 KDE 可以给单独一个应用设置忽略全局的快捷键。这样只有在 Emacs 里面忽略,既不需要删除各种好用的 Super 全局快捷键,也能照顾到 Emacs 自定义的部分。

需要切换到其它应用的时候,可以用 Ctrl+X Ctrl+Z (suspend-frame) 隐藏 Emacs,然后用 KDE 的 Super+数字 或者给 Emacs 单独分配一个快捷键把 Emacs 唤回来。

这样就至少解放了

  • Super + WASD HJKL ← → ↑↓ 用来给某些 mode 的 navigation 方面的功能
  • Super + 数字键 → Tab/Window 切换…

据观察,这在 GNOME/macOS/Windows 里并没有对等的功能。

image

6 个赞

这好像也是我以前老想要但又搞不定的功能,也想过用window键来部分取代ctrl键,但发现不可行,最后折腾下来 选择了使用shift来取代ctrl键 ,终于看到有系统从桌面环境支持这一功能了

根据 emacs 的 key binding convention, C-c <letter> 是留给用户的区域,比如 C-c a b c.

忘了在哪看过有个帖子说 macOS 上有些软件是读取的系统发送的键盘码,不能被映射工具拦截。

我好像看过类似的东西

我也是這套方案,自己常用的單鍵global-key 綁 Super/Win, 因爲 Meta 很多時候會被local-map 給覆蓋掉。以前用kde 的時候沒有發現這個功能,都是直接把系統全局鍵廢了…