总结keyd的优点(听我给你吹
因之前调研时发现相关中文信息分散,在此对同类产品报个菜名,以来者~
其他可尝试的通用(非X11专属)改键工具(感谢@everyx @leighton 补充):
X11下的老牌工具:
找到一篇英文总结: https://medium.com/@canadaduane/key-remapping-in-linux-2021-edition-47320999d2aa (额外提及了kbct、Hawck、Interception、houmain/keymapper等)
还有修改scancode相关方法,参见本页@haoliang @beetlerx 的评论。
顺便,XKB与Gnome(不清楚其他DE情况)的键盘布局选项直接相关。
要对系统键盘设置中某种布局(如Dvorak)进行微调的话,可修改/usr/share/X11/xkb/symbols/us
文件(其他语言布局同理)。
![]() | 1 everyx 2022-08-28 20:19:08 +08:00 正在用 https://github.com/sezanzeb/input-remapper ,就是不能映射 fn 组合键,请问不知道 keyd 可以吗? |
![]() | 2 haoliang 2022-08-28 20:28:09 +08:00 我依稀记得有人是在 udev 层面做的改映射,不需要借助额外程序。 哦,找到个参考: https://wiki.archlinux.org/title/map_scancodes_to_keycodes |
![]() | 3 beetlerx 2022-08-28 20:28:48 +08:00 我用的是这个文章里的修改 scancode 方法 https://harttle.land/2019/08/08/linux-keymap-on-macbook.html |
![]() | 4 auvt 2022-08-28 21:03:06 +08:00 via iPhone 感谢 lz 分享,在 mac 上实现了全局 vim 方向按键,想跟 mac 快捷键一起搬到 linux 上,结果可耻地失败了无数次,就为了码个字,后来放弃了…… |
![]() | 7 jinweijie 2022-08-29 08:11:52 +08:00 用 AutoKey 可以吗? |
8 leighton 2022-08-29 09:30:50 +08:00 |
10 TravisMtg 2022-08-29 13:38:50 +08:00 via iPhone 非常好推荐!这段时间一直在纠结 spacefn 咋弄,keyd 能完美整出 spacefn 的方案 |
11 xxiaowangwang 2022-08-29 15:45:18 +08:00 setxkbmap -option "caps:swapescape" 用 XWayland 的话,这个不可以吗? |
12 phoulx OP @xxiaowangwang 没试过诶,感觉 setxkbmap 预设项太多了,对于复杂需求用起来会混乱… |
13 phoulx OP 贴一个我目前的 keyd 配置(适用 v2.4.2 ): https://paste.rs/nFR |
![]() | 14 kaiger 2022-09-01 09:47:39 +08:00 很好用,多谢:) |
![]() | 15 kaiger 2022-09-01 10:56:52 +08:00 OP ,有个问题 为特定的 app 改键好像不成功,例如配置文件: ~/.config/keyd/app.conf ``` [google-chrome] # Remaps the escape key to capslock esc = capslock ``` 是我的语法有问题吗? |
![]() | 16 975779964 2022-09-08 21:50:59 +08:00 请问这个支持 远程 xrdp 或者 nomachine 按键映射么? |
![]() | 17 xiaket 2022-12-18 17:59:29 +08:00 xremap 挺好用的, 配置文件思路很清晰也很好读. 不推荐 xkeysnail, 依赖多, 出问题不好排查. ref: https://blog.xiaket.org/2022/xremap.html |
![]() | 18 jqtmviyu 2023-05-25 11:12:37 +08:00 感谢, 之前 用 xmodmap, 非常麻烦 你的配置链接失效了. 我到 issues 区抄了下, 暂时还没搞清楚怎么实现 mac 上的向前 /后删除一个单词, 向后退格. 幸好大部分情况都是在 shell 和 vim 中编辑, 它们有泛用的快捷键 ``` [ids] * [main] capslock = overload(capslock_layer, esc) [capslock_layer] esc = capslock h = left j = down k = up l = right u = pageup p = pagedown i = home o = end m = backspace ``` |
19 yczjing 2023-07-04 20:53:01 +08:00 |