这款键盘神器比 Karabiner 更好用(这就是理由)

BBetter Stack
컴퓨터/소프트웨어게임/e스포츠가전제품/카메라

Transcript

00:00:00我是 Kanata,这是一个能激发键盘无限潜力的开源工具。
00:00:03它可以实现“短按”和“长按”触发不同的按键,
00:00:08用一个按键触发一连串的按键操作,
00:00:10或者为不同的自定义键位映射设置多个层级。
00:00:12对于像我这种尽量只用键盘操作的人来说,这简直太棒了。
00:00:16不过,这种奇奇怪怪的配置语法是怎么回事?
00:00:19而且,既然已经有了 Karabiner 或其他 K 开头的工具,我为什么要用它呢?
00:00:24点下订阅,我们这就开始深入探讨。
00:00:27Kanata 是易洛魁原住民语中“村庄”的意思,
00:00:30其实跟键盘一点关系都没有。
00:00:33但如果你像我一样痴迷机械键盘,你可能听说过 QMK,
00:00:37这是一款非常流行的开源键盘固件,
00:00:39它能让你在键盘信号传给电脑之前就完成键位重映射。
00:00:42Kanata 就像是软件层面的 QMK,
00:00:46因此它支持所有键盘,甚至包括你的笔记本自带键盘。
00:00:49因为它采用 Rust 编写,这意味着它运行极快,
00:00:52打字时几乎感觉不到任何延迟。
00:00:55不过,它的配置并不算简单,
00:00:57因为在 Mac 上通过 Karabiner 安装好 Kanata 后(
00:01:00这点我稍后会详细说明),
00:01:02你需要使用一种受 Lisp 启发的 S-expression 语法来编写配置文件。
00:01:07这可能是我见过的最古怪的配置语法了。
00:01:11通常你会把函数名写在括号外面,
00:01:16但在这种配置文件里,函数名要写在括号里,就在参数旁边。
00:01:21当你开始嵌套函数时,情况会变得更诡异,
00:01:24而这种嵌套在配置中非常常见。
00:01:26因为函数名不在括号外,
00:01:30所有内容都堆在括号里,初看之下非常难以理解。
00:01:35不过,用一段时间后你就会习惯了。
00:01:36举个简单的键位映射例子,假设我想把 A 键映射为 X。
00:01:41我可以使用 defsource 函数来指定源键位,参数设为 A,
00:01:46并至少使用一个 deflayer 函数来指定输出键位。
00:01:50我将其命名为 base,参数设为 X。
00:01:53任何没列在配置文件里的按键都会保持原样。
00:01:57如果再增加 B 和 C 键,并分别映射为 X 和 Z,就像这样。
00:02:02幸运的是,空格和制表符是不受限制的,
00:02:04所以你可以随意调整间距,让配置清晰易读。
00:02:08这个配置文件还能实现更多酷炫的功能。
00:02:10我可以配置 tap-hold(点按长按),让短按和长按触发不同的操作,
00:02:15只需设置好超时时间,再加上你想要的对应按键即可。
00:02:19在这个例子中,短按 A 会触发 X,而长按则会触发 Left Shift。
00:02:24为了简化操作,我还可以用 defvar 函数定义一些变量,
00:02:28这样就能在配置中通过美元符号多次引用,
00:02:32这非常适合设置 Home Row Mods(将起始行按键映射为四个常用修饰键)。
00:02:36老实说,起初这感觉真的很怪,
00:02:39但我现在已经完全习惯了,无法想象没有这种配置该怎么用键盘。
00:02:42我还可以创建一个名为 editor 的新层级 (deflayer),
00:02:46专门用于视频剪辑。我可以为它设置一整套全新的键位,
00:02:51并设置一个切层键来随时切换。
00:02:54如果你想在切换层级或执行其他操作时玩点更酷的,
00:02:58你可以启用 Kanata 的 TCP 服务,让其他应用程序能够监听它。
00:03:03比如我就让 SketchyBar 监听 Kanata,
00:03:06这样当我切换层级时,桌面顶部就会实时显示。
00:03:10没错,达到这种效果确实需要编写大量的配置,
00:03:13但这种事完全可以让 AI 来帮忙。
00:03:16言归正传,既然 Karabiner-Elements 这么强大,为什么还要用 Kanata?
00:03:21毕竟它能做 Kanata 的所有事,甚至更多,
00:03:24比如针对特定应用程序或特定键盘进行键位映射,
00:03:28拥有非常直观的事件查看器来测试按键,
00:03:30还为不喜欢命令行操作的用户提供了精美的图形界面。
00:03:35但对我来说,Karabiner 的 tap-hold 功能(尤其是 Home Row Mods)太弱了。
00:03:40我花了大量的研究和配置才勉强让它工作。
00:03:45而且即便设置好了,用起来也不如 Kanata 顺手。
00:03:49它经常会把“长按”误认成“短按”。
00:03:51而 Kanata 无需任何微调,开箱即用地完美处理了这个功能,
00:03:56这让我完全不想再回到 Karabiner-Elements 了。
00:03:59所以如果你非常看重 Home Row Mods,我建议使用 Kanata。
00:04:03当然,它也并非完美无缺。
00:04:05如果你有不同的键位方案,你可能需要为不同键盘准备多个配置文件,
00:04:09这有点麻烦,因为当你拔掉键盘后,
00:04:12你必须手动运行命令来切换对应的映射。
00:04:15我还发现无法将键盘上的播放/暂停键映射到 F8,
00:04:20而这在 Karabiner 里是可以轻松实现的。
00:04:22此外,为了让 Kanata 兼容 MX Master 鼠标,我也折腾了好一阵。
00:04:26幸运的是,我通过不断摸索代码解决了大部分问题,
00:04:30以后我可能会把这些方案开源出来。
00:04:31我真希望 Kanata 的社区能壮大起来,
00:04:34如果大家能把这个视频分享给朋友和同事,应该会有所帮助吧?

Key Takeaway

Kanata 是一款高性能、高自定义强度的开源键盘映射工具,凭借其卓越的 tap-hold 算法和 Rust 驱动的超低延迟,成为比 Karabiner 更好的键盘效率神器。

Highlights

Kanata 是一款基于 Rust 编写的开源键盘映射工具,类似于软件层面的 QMK 固件。

其核心优势在于极其出色的 tap-hold(点按与长按)处理能力,尤其适合 Home Row Mods 使用者。

配置语法采用受 Lisp 启发的 S-expression,虽然初学者可能觉得古怪,但其灵活性极高。

支持多层级(Layers)配置,可以为不同场景(如视频剪辑)定制专属的按键映射。

支持 TCP 服务,可与其他应用(如 SketchyBar)联动,实时显示键盘当前层级状态。

虽然在多键盘管理和特定功能键映射上存在挑战,但其极低的延迟性能表现优异。

相较于 Karabiner-Elements,Kanata 在处理复杂长按逻辑时更加精准,极少出现误触。

Timeline

Kanata 工具简介与核心特性

视频开篇介绍了 Kanata 这一款旨在激发键盘无限潜力的开源工具。它能够实现点按与长按触发不同功能、宏命令以及多层级键位映射,非常适合键盘极客使用。演讲者将 Kanata 比作软件版的 QMK 固件,这意味着它不依赖特定硬件,甚至可以用于笔记本自带键盘。由于该工具使用 Rust 语言编写,其运行速度极快,用户在打字时几乎感受不到任何系统延迟。这部分的重点在于强调其作为底层映射工具的普适性与高性能表现。

深入解析 S-expression 配置语法

演讲者详细讨论了 Kanata 相对复杂的配置方式,即受 Lisp 启发的 S-expression 语法。这种语法要求将函数名写在括号内且与参数相邻,初次接触可能会觉得非常古怪且难以理解。视频展示了如何使用 defsource 定义源键位,以及通过 deflayer 来设置输出层级,例如将 A 键映射为 X。尽管这种嵌套语法结构看起来堆叠感很强,但演讲者指出空格和制表符可以自由使用以增强代码可读性。掌握这种语法是发挥 Kanata 强大功能的关键门槛,适应后会发现其逻辑非常清晰。

高级功能:长按触发与变量定义

这一章节重点介绍了 Kanata 的酷炫进阶功能,特别是能够根据按键时长触发不同操作的 tap-hold 设置。通过设置超时时间,用户可以实现短按 A 键输入字母、长按则触发 Shift 等修饰键的效果。为了提升效率,Kanata 还支持通过 defvar 函数定义变量,方便在配置中多次引用,这对于设置 Home Row Mods 至关重要。此外,视频还演示了如何为特定软件(如编辑器)创建专属层级,并利用 TCP 服务与 SketchyBar 等工具联动。这种高度的可扩展性使得键盘不仅是输入设备,更是能根据任务实时变换形态的效率工具。

与 Karabiner-Elements 的对比分析

视频的核心观点在于解释为什么 Kanata 在某些方面优于强大的 Karabiner-Elements。演讲者承认 Karabiner 拥有更友好的图形界面和事件查看器,但在处理 Home Row Mods 这种高频长按逻辑时表现较弱。Karabiner 经常会出现将长按误判为短按的情况,导致输入中断或错误,而 Kanata 的算法则能完美处理这些细节。在对比中,演讲者强调了 Kanata 在核心键位转换逻辑上的稳定性和精准度。对于追求极致键盘操控体验的用户来说,这种可靠性是选择 Kanata 的决定性理由。

现存局限性、个人经验与总结

最后一部分客观地分析了 Kanata 目前存在的不足之处。例如,该工具目前还不具备自动识别键盘并切换配置的功能,且在某些特殊功能键(如多媒体播放键)的映射上不如 Karabiner 方便。演讲者还分享了自己在兼容 MX Master 鼠标过程中遇到的挑战,并表示通过不断摸索已基本解决这些问题。他提到未来可能会将个人的优化配置方案开源,以回馈社区。视频以呼吁更多开发者和爱好者加入 Kanata 社区并分享视频作为结尾。这一部分不仅提供了平衡的视角,也对工具的未来发展寄予了厚望。

Community Posts

No posts yet. Be the first to write about this video!

Write about this video