Junakr 发表于 2024-4-16 23:39

键盘上的生产力优化,macOS 软件改键方案分享

前略:https://bbs.saraba1st.com/2b/thread-2180144-1-1.html
因为这帖让我有些兴趣讨论一下这个话题。

https://bbs.saraba1st.com/2b/forum.php?mod=redirect&goto=findpost&ptid=2160500&pid=63030533
想起来前几个月我也回过相关内容,干脆开个帖抛砖引玉好了。

改键软件是 Karabiner-Elements(后面简称 KE)。
虽然是 macOS 专用的软件,不过思路的实现并不是苹果专属,Windows 编写 AHK 脚本或者用 PowerToys 的键盘映射应该也能实现差不多的效果(研究的不多)。

因为以前折腾键盘宏编程的经验告诉我贪多嚼不烂,所以目前我只保留了四个改键方案,更多的需求通过对应软件的快捷键和快捷指令(Shortcut)解决。

1. Left Command + F1、F2 调整键盘背光:
    - 这个完全是因为键盘上没有背光键,用来讨好旧习惯的一个方案。
    - 不过我本来键盘背光常开,要不要也无所谓。
2. Caps Lock 短按时为 Esc,组合使用时视为 Ctrl:
    - 这是 Change 我 Life 级的一个方案,灵感来自 HHKB 键盘布局。
    - 对于 Esc 癌来说,没有比把 Esc 改到 Caps Lock 更让人神清气爽了。左手区也会因此获得两个 Ctrl,提高操作性的同时,也避免了在 macOS 复杂快捷键的折磨下手指打结。
    - KE 在这里用一个键映射两个键的方法简单来说就是在一定 timeout 内(默认一秒)松开按键,并且没有同时按下其它键的话,会同时发出两个键的信号,所以我这里用了短按的说法。又因为 Ctrl 作为修饰键,单独按下时通常并不会生效,所以看上去只是按下了 Esc,非常完美。
3. Ctrl + H、J、K、L 使用 Vim 方向键模式:
    - 配合上一方案 Caps Lock 改第二 Ctrl 使用,Ctrl 和方向键在同一排,有些考验使用习惯和常用软件快捷键相性的一个方案。
      - 需要经常使用修饰键 + 方向键的话,可以让你的手指不用离开键盘中心区的同时更快的打结。
      - 因为存在双 Ctrl 会同时按下的情况,我时常会因为考虑哪个 Ctrl 先作用而慢半拍。
    - 对了,H、L 是为了完整才一起改的,左右方向移动我更倾向使用 Ctrl + B、F,因为 L 键的位置对我来说并不舒服。
4. Esc 替换为 Caps Lock:
    - 这个方案讲真没太多必要,不过考虑到我几乎不会再把手指伸到原 Esc 键了,为了避免让 Caps Lock 成为一个 Joke(我真的几乎不用它)还是加上了这个映射(同时保证原键盘功能的完整性吧)。
    - 不知道什么时候能出一款 Esc 和 Caps Lock 物理对调的键盘。

最后聊一下 KE 改键存在的一些问题:

- Fn 键最好不要再设置单独按下时的功能了,KE 的虚拟键盘映射目前还无法很好的处理单独按 Fn 和组合 F 区功能键时的信号,只会让它们同时作用。
- F6 对应的勿扰模式功能键开关用了 KE 后会无效,可以通过将 Fn + F6 映射到 F16,然后在系统设置中为勿扰模式分配 F16 快捷键来绕过这个问题。

啊,还有一些 iPad 实体键盘改键的题外话:

- 通过可以联动 Mac 和 iPad 的通用控制,iPad 也可以享受到 macOS 上的键盘改键方案,不过我目前发现 Caps Lock 改键会有 Bug 导致 iPad 输入法切换困难。
- 如果使用妙控键盘一类的外接键盘,iPadOS 提供了有限的修饰键互换(还不区分同一修饰键的左右,改一个全改了)。
    - 我通常只会把 Caps Lock 改到 Ctrl,至于妙控键盘缺少的 Esc ,可以用 Cmd + . 这个 iPadOS 专属的 Esc 快捷键替代。
    - 顺便吐槽一下妙控键盘混乱的 keycode 信号,P 键右边三个键在不同软件绑定快捷键时映射的键居然都不一样。

相关资源:

- KE 丰富的官方规则仓库,有兴趣可以去淘淘有没有贴合自己需求的规则:
    - https://ke-complex-modifications.pqrs.org/
- 上面提到我自用四个方案的规则打包附件:


ArthurFyc 发表于 2024-4-17 10:38

ctrl+hjkl映射到方向键的话还能使用一些 ctrl+hjkl 的快捷键么?用 ctrl+capslock+hjkl?

Junakr 发表于 2024-4-17 10:57

ArthurFyc 发表于 2024-4-17 10:38
ctrl+hjkl映射到方向键的话还能使用一些 ctrl+hjkl 的快捷键么?用 ctrl+capslock+hjkl? ...

如果映射的是 Left Control 的话不行,Ctrl + HJKL 焊死方向键了,Ctrl + Caps Lock(映射 Ctrl)+ HJKL = Ctrl + 上下左右,所以说有些考验快捷键相性。
不过倒是提醒了我 Control 也有右键定义,通常 Ctrl 作为修饰键绑定使用的是 left_control,我提供的规则为了兼容性用的也都是 left_control,如果有需求可以自己手动替换为 right_control,这样就不影响原 Ctrl + HJKL 的使用了(主要影响的是 Ctrl +H 和 Ctrl + K)。
顺便 KE 内置的规则也有类似方案,用的是 Right Command + HJKL,实在不顺手。

Junakr 发表于 2024-4-25 17:12

今天终于排查到一个困扰我好几天的键盘问题,因为非常偏门就不开新帖,在这里记录一下好了。
Mac 上的 CSP(Clip Studio Paint)偶尔会无法识别空格键,导致空格移动、缩放、旋转画布等一系列快捷键全部失效(无法触发对应工具的切换),连按住快捷键临时切换工具也会不起作用(长按 E 可以切换到橡皮擦不过松开时不会回到上一个工具)。
我以为是 Karabiner-Elements 有什么莫名其妙的 Bug 让 CSP 几乎不可用,又或者是一个经典的 Wacom 驱动问题,再或者是什么 macOS 的 Bug。
直到我偶然发现这个问题只在 Mac 系统自带终端打开且所有窗口都关闭时出现(没有通过 Cmd+Q 退出,只要有一个终端窗口打开都不会有问题),让我意识到不记得什么时候打开过「安全键盘输入」这个选项,把它关掉后果然 CSP 恢复正常。

这是苹果官方文档对这个选项的解释:
安全键盘输入会阻止电脑或网络上的其他 App 检测和记录你在“终端”中键入的内容。
在打开安全键盘输入前,请确保其他 App 不要求从“终端”获得按键输入。

至于为什么终端窗口全部关闭但没有退出时,我在 CSP 的输入会被认为是从终端获取按键输入,我完全无法理解。
顺便这个选项也会造成 KE 自带的键盘事件监听应用(Karabiner-EventViewer)无法获取键盘输入,和 CSP 的故障是同一个原因。
不过这倒不是 KE 虚拟键盘接管键盘输入造成的问题,我在把它完全卸载后,这个问题依旧存在。

:https://support.apple.com/zh-cn/guide/terminal/trml109/mac
页: [1]
查看完整版本: 键盘上的生产力优化,macOS 软件改键方案分享