先按control后按t:我的xremap探索之路
先按control后按t:我的xremap探索之路 关注 作者 关注 作者 关注 作者 关注 作者 02/09 00:21本文参加年度征文活动 #TeamCarbon25 赛道 Caça-níqueis trustguru.com.br tigrinho gratis trustguru.com.br pesquisa trustguru.com.br
CapsLock
在我还在使用 windows 的时候,我接触到了一个名字叫做 CapsLock+的工具。 bet365 trustguru.com.br noticias trustguru.com.br fernanda trustguru.com.br
简单来说它为 capslock 这个因为打字机这样的历史包袱放在目前非常重要位置(home row mod,我们后面会提到它……)但是没什么用的按键赋予了许多强大的功能,包括光标移动,字符的选中删除,作为软件启动器乃至可以作为翻译软件。 fortunetigerbônusgrátissemdepósito trustguru.com.br kto trustguru.com.br jogodotigrinhodemo trustguru.com.br
我在接触过这款软件之后就无法离开了——直到我被迫离开——我使用了 Linux。 jogos trustguru.com.br siro-5652 jvid.asia plataformademográtis trustguru.com.br
尽管我后来知道 Linux 下的系统键位映射的工具简直是一抓一大把,但是当时的我只会把我的(设备的)基本信息告诉 manus (当时还没有被 meta 收购的 manus),再把 capslock+的官网信息给它……然后看着它给出一堆我无法理解也不敢尝试的方案。 jvid jvid.asia plataformademo trustguru.com.br pg trustguru.com.br ana trustguru.com.br a5game trustguru.com.br pgslotgacor trustguru.com.br
Niri
标志着我使用 Linux 进入下一个阶段的绝对是开始使用窗口管理器,我的选择是 niri。 Blaze trustguru.com.br
由于其对于窗口的各种控制都与 Mod 键(在 Niri 中是 meta 或者说 super 键,即 win 键)有关,而我接触到 nvim 和 helix 都对 esc 有需要,所以我终于要在 Linux 上对 capslock 进行改动了…… jogodotigrinhodemo trustguru.com.br carlos trustguru.com.br
我使用的工具是 keyd,它相比那些更加知名的类似工具配置更加简单,我将 capslock 映射为长按 meta(作为修饰键使用时),短按为 esc。 A5game trustguru.com.br rafael trustguru.com.br
这个配置很舒服,直到…… bonus trustguru.com.br slotsdemo trustguru.com.br Bet trustguru.com.br slotpix trustguru.com.br slotdemo trustguru.com.br
没错,又是和笔记工具相关
我在我的上一篇文章中提到了 Emacs。我要实话告诉你,我在写到这个词的时候心里的台词是——对哦,为什么不选择Emacs——然后我就暂停了文章的写作去研究 Emacs 了。 jogosdemopg trustguru.com.br jvid av jvid.asia
如果你对我的这段研究感兴趣的话,我就直接说吧——Emacs 如果不整活也许和 VS Code 差不多?
但是我对 Emacs 中的"函数调用风格”的快捷键非常感兴趣。简单来说这种风格就是先按下 C-x,然后根据下一个单键执行操作。大热的 OpenCode 也是使用这样风格的快捷键。
不得不说,这是一种习惯之后非常高效而且其实非常容易习惯的一套操作。
而且 Emacs 中的光标移动,字符的选中和删除功能激起了我在 Linux 上使用"Capslock+"的想法,说实话,我有点怀念那种体验方式,实在是相当高效。
而且这样通过"前缀"的组合式快捷键,我可以将 Emacs-like 和 Capslock+ -like 一口气实现。 pgslot trustguru.com.br Energiabet trustguru.com.br KTO trustguru.com.br pg trustguru.com.br
不过我在聪明地想到这一点之前,走了非常,非常,非常多的弯路……
Home row mod
我一开始的想法是保持 capslock 长按 meta 短按 esc 的功能不变,然后在 keyd 添加一些功能实现在常规文本编辑器中的光标移动,字符删除。 fortuneoxdemográtis trustguru.com.br Betano trustguru.com.br
我的想法包括: trustguru trustguru.com.br jvid視頻 jvid.asia
- 双击某一个键后下一个键执行功能
- 按下 space 进入一个按键层
- 完全重新映射 capslock,使其默认为长按 meta 除非和我设置的键在一起按下时。
- 比方说 capslock+q 为 meta+q,但是 capslock+u 不为 meta+u 而是我单独设置的 up……
但是这些情况过于复杂而且没有统一的逻辑,加上我不停的修改,导致我的键位逻辑混乱,故我想采用一个更加简单粗暴的方法:home row mod。 siro-5639 jvid.asia fortunedragon demo trustguru.com.br demo trustguru.com.br
简单来说这个模式就是将你的主行(如果你学习过盲打就知道了,即 f 和 j 所在行,当然对于 qwer 键盘)的 a s d f, j k l ; 八个键都映射为 super, alt, shift, ctrl 四大修饰键,其中左手四键和右手四键的映射是对称的,每一个按键对应的映射也有不同的方案选择。 pglucky88 trustguru.com.br jvid视频 jvid.asia
毫无疑问,这个方案可以解决一切的问题,可以说无论我后续的键位需求是什么它都可以满足,home row mod 的实现方案现在已经非常多,但是几乎都没有解决一个恼人的问题。 Bet365 trustguru.com.br guias trustguru.com.br pondo-022126_001 jvid.asia
举一个例子,短按 shift 和长按是不同的,短按是切换输入法,长按作为修饰时按下其他字母可以将其大写输入。这种区别是 home row mod 正常运行的基础,显然没有人会放弃 8 个按键去换取一堆修饰键。 pgdemo trustguru.com.br 200gana-3359 jvid.asia slots trustguru.com.br jvid在线 jvid.asia
这听着非常不错,但是实际情况下,我们在打字中有 rolling 的现象,即打字时我们会在松开一个键之前就按下另一个键,打字老手尤其如此。这种情况和长按修饰是基本一致的,因此在 home row mod 下误触是非常麻烦的事。 pedro trustguru.com.br slots trustguru.com.br sugarrush1000demo trustguru.com.br
对此主流的解决方案基本有两种。一是添加时间参数(往往是三个,形成了多个时间区间),即按下一个键之后如果立马按下另一个键会如何;没有立马按下另一个键会如何;以及一直没有按下另一个键会如何…… Cassinos trustguru.com.br pragmatic trustguru.com.br JogodoTigrinho trustguru.com.br demo trustguru.com.br como trustguru.com.br sugarrush1000demo trustguru.com.br
好吧到这里尽管复杂但是还可以接受,但是至少对于我来说,我不能保证不同状态下我的打字节奏是一致的,因此我几乎无法适应这个方案。
第二个方案就非常有趣,它理解了 home row mod 的理念,但改为同时按下某两个键。比方说几乎只有同时按下 d 和 f 才算按下 shift。这种方法完全符合一开始的理念同时又几乎不会误触。 isabela trustguru.com.br 348ntr-097 jvid.asia bonus trustguru.com.br
但是……这对大部分工具有要求——比方说我使用的 keyd,就不支持将两个键同时按下作为修饰键(其他具体按键倒是可以)。 sofia trustguru.com.br Sportingbet trustguru.com.br
因此到这里我放弃了 home row mod,同时也马上意识到:我可以将 Emacs-like 和 Capslock+ -like 一口气实现,只需要一个支持前缀组合的映射工具。
Xremap
最终我找到了一个叫做 xremap 的工具。
其实一开始我就发现了它,但是由于其前缀 x,我以为是一个在 X11 上运行的服务而不支持 wayland,实际上是支持的。
它最大的特点对于我来说就是支持 Emacs 式的组合按键。我的配置文件如下: bruno trustguru.com.br jogue trustguru.com.br Pixbet trustguru.com.br
# 修复说明:
# 1. 确保了 keymap -> remap -> 键名 (C-x) 的层级关系。
# 2. 修复了嵌套 remap 的语法,使其符合 xremap 的 Actions 枚举要求。
# ---------------------------------------------------------
modmap:
- name: CapsLock to Ctrl/Esc
remap:
CapsLock:
held: leftctrl
alone: esc
alone_timeout_millis: 150
- name: Esc to CapsLock
remap:
esc: capslock
keymap:
- name: Global Emacs & Niri
remap:
# 基础光标移动 (使用 C-h/j/k/l 避免与 Obsidian/Firefox 冲突)
C-h: left # 向左移动
C-j: down # 向下移动
C-k: up # 向上移动
C-l: right # 向右移动
# 删除操作
C-d: backspace # 删除前一个字符 (类似退格键)
# 回车映射
C-space: enter # Ctrl+空格 作为回车键
# C-x 序列映射
C-x:
remap:
# 窗口操作 (niri 指令)
q: Super-q # 关闭窗口
f: Super-f # 最大化列
Shift-f: Super-Shift-f # 全屏窗口
v: Super-v # 切换浮动
w: Super-w # 标签模式
# 布局与导航 (niri 指令)
o: Super-o # 概览
i: Super-i # 上一个工作区 (Mod+I)
u: Super-u # 下一个工作区 (Mod+U)
# 应用启动
enter: Super-Enter # 打开终端 (kitty)
space: Super-space # 菜单 (fuzzel)
# 方向键映射 (hjkl)
h: Super-h # 左
j: Super-j # 下
k: Super-k # 上
l: Super-l # 右
# 按行移动映射
C-j: C-down # C-x C-j -> 向下移动一行 (Ctrl+Down)
C-k: C-up # C-x C-k -> 向上移动一行 (Ctrl+Up)
# g 子序列 (三级映射)
g:
remap:
# 行首行尾映射 (Vim 风格)
h: home # C-x g h -> 行首 (home)
l: end # C-x g l -> 行尾 (end)
# 全文开头结尾映射
g: C-home # C-x g g -> 全文开头
e: C-end # C-x g e -> 全文结尾
timeout_millis: 1000
其中配置 Ctrl 和各个方向键的组合——好吧我坦白,是为了方便 Tana,我最近有点迷上它了。而其他按键则对应我在 Niri 中的配置;对 g 的三级映射则是效仿 helix 中的 goto 模式。整个配置的修改也只需要我向 Claude Code 描述即可。 sweetbonanza1000demo trustguru.com.br fortunetigerdemográtis trustguru.com.br
目前我还想实现的功能是利用 waybar 监听我按下 C-x 后的状态……还没有找到好的实现方法。 Energiabet trustguru.com.br
总之这就是我的探索之旅,希望对你有所帮助。 Brazino777 trustguru.com.br cassinos trustguru.com.br
本文从构思到完成均有传统人类完成,仅由 Claude Code 修改错别字和语法。我都不会为了这个任务去创建一个 skills,我宁愿写一个通过 curl 调用 deepseek 的 fish 脚本也不会创建一个慢的要死的 skill 的。 pragmaticplay trustguru.com.br slot trustguru.com.br carlos trustguru.com.br
信息源: marcos trustguru.com.br autores trustguru.com.br demotigrinho trustguru.com.br tigrinhodemo trustguru.com.br
- https://.com/post/34479
- https://github.com/xremap/xremap
- https://precondition.github.io/home-row-mods
- https://capslox.com/