
灵活高效的Linux系统级键盘重映射工具
keyd是一个系统级Linux键盘重映射工具,使用内核级输入机制实现高效重映射。它支持自定义图层、按键重载、键盘特定配置等功能,可实现类似QMK固件的效果。keyd采用简洁配置,支持实时重映射,并提供客户端-服务器模型便于脚本和应用程序重映射。适合需要自定义键盘布局或在同一设备使用多种键盘的用户。
Linux缺乏一个好的按键重映射解决方案。为了达到满意的效果,需要使用多种工具(如xcape、xmodmap),最终结果往往局限于特定环境(X11)。keyd试图通过提供一个灵活的全系统守护进程来解决这个问题,该守护进程使用内核级输入原语(evdev、uinput)重新映射按键。
自首次发布以来,配置格式经历了几次迭代。对于从v1迁移配置的用户,最好重新阅读手册页。
另请参阅:更新日志。
keyd具有几个独特的功能,其中许多传统上只在自定义键盘固件如QMK中才能找到,还有一些是keyd独有的。
一些更有趣的功能包括:
C-1而不破坏修饰键语义的人。*注意:*master分支作为开发分支,在发布版本之间可能偶尔会出现问题。发布版本会被标记,应被视为稳定版。
git clone https://github.com/rvaiya/keyd
cd keyd
make && sudo make install
sudo systemctl enable keyd && sudo systemctl start keyd
安装并启动keyd(例如sudo systemctl enable keyd)
在/etc/keyd/default.conf中添加以下内容:
[ids]
*
[main]
# 将大写锁定键映射 为按下时为Esc,按住时为Ctrl。
capslock = overload(control, esc)
# 将Esc键重新映射为大写锁定
esc = capslock
可以使用keyd monitor命令获取按键名称。请注意,当keyd运行时,此命令的输出将对应于keyd的输出。可以通过先停止keyd然后运行该命令来查看原始输入事件。有关更多详细信息,请参阅手册页。
运行sudo keyd reload重新加载配置集。
查看手册页(man keyd)以获取更全面的说明。
配置错误将出现在日志输出中,可以使用系统的服务管理器以通常的方式访问(例如sudo journalctl -eu keyd)。
注意:错误的配置文件可能会导致您的机器无法使用。如果您发现自己处于这种情况,特殊按键序列backspace+escape+enter应该会导致keyd终止。
一些鼠标(如罗技MX Master)能够发出按键信号,因此会被通配符ID匹配。可能需要显式地将这些设备列入黑名单。
将自己添加到keyd组:
usermod -aG keyd <用户名>
填写~/.config/keyd/app.conf:
例如
[alacritty]
alt.] = macro(C-g n)
alt.[ = macro(C-g p)
[chromium]
alt.[ = C-S-tab
alt.] = macro(C-tab)
运行:
keyd-application-mapper
除非您正在运行Gnome,否则您可能想在显示服务器初始化逻辑中(例如~/.xinitrc)添加keyd-application-mapper -d。
有关更多详细信息,请参阅手册页。
通过usb-gadget对单板计算机(SBC)的实验性支持已经添加,由Giorgi Chavchanidze提供。
详情请参见usb-gadget.md。
一些发行版也存在第三方软件包。如果您希望将您的软件包添加到列表中,请提交PR。这些软件包由社区成员维护,我们不对其承担个人责任。
Arch Linux软件包由Arch打包者维护。
实验性的keyd和keyd-application-mapper软件包可以在正在进行中的Debian软件包仓库的CI构建工件中找到:
COPR软件包由@alternateved维护。
opensuse软件包由@bubbleguuum维护。
使用sudo zypper in keyd可轻松安装。
实验性的keyd和keyd-application-mapper软件包可在ppa:keyd-team/ppa存档中找到。
如果您希望帮助维护此PPA,请联系@rhansen。
[ids]
*
[main]
leftshift = oneshot(shift)
capslock = overload(symbols, esc)
[symbols]
d = ~
f = /
...
许多用户可能对充分利用keyd不感兴趣。对于那些寻求简单生活质量改善的人,我推荐以下配置:
[ids]
*
[main]
shift = oneshot(shift)
meta = oneshot(meta)
control = oneshot(control)
leftalt = oneshot(alt)
rightalt = oneshot(altgr)
capslock = overload(control, esc)
insert = S-insert
这将重载大写锁定键,使其同时具有Escape(轻击时)和Control(按住时)的功能,并将所有修饰键重新映射为"一次性"键。因此,要输出字母A,您现在只需轻击Shift然后按a,而不必一直按住它。最后,它将插入键重新映射为S-insert(在X11上粘贴)。
xmodmap及类似工具是显示服务器级别的工具,功能有限。keyd是一个系统级解决方案,实现了高级功能,如分层和一次性修饰键。虽然一些X工具提供类似功能,但我不知道有什么比keyd更灵活的工具。
keyd是几年前编写的,目的是让我能够在我不断增长的键盘收藏上轻松尝试不同的布局。当时kmonad还不存在,像QMK这样的自定义键盘固件(启发了keyd)是获得类似功能的唯一方式。我在发布keyd后才知道kmonad。虽然kmonad是一个不错的项目,有类似的目标,但它采用了不同的方法和设计理念。
值得注意的是,keyd完全用C语言编写,考虑到性能和简单性,可能永远不会像kmonad(可用Haskell扩展)那样可配置。话虽如此,它在不到2000行C代码中提供了(作者认为)最有价值的功能,同时提供了简单的 语言无关的配置格式。
如果您觉得缺少什么或发现bug,欢迎在github上提出问题。keyd有一个极简主义(但合理的)设计理念,有意省略某些功能(例如以root身份执行任意可执行文件)。已存在于QMK等自定义键盘固件中的功能是很好的包含候选。
参见CONTRIBUTING。 IRC频道:oftc上的#keyd


全球首个AI音乐社区
音述AI是全球首个AI音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。


阿里Qoder团队推出的桌面端AI智能体
QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。


一站式搞定所有学习需求
不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。


为AI短剧协作而生
专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。


能听懂你表达的视频模型
Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。


国内直接访问,限时3折
输入简单文字,生成想要的图片,纳米香蕉中文站基于 Google 模型的 AI 图片生成网站,支持文字生图、图生图。官网价格限时3折活动


职场AI,就用扣子
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!


多风格AI绘画神器
堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。


零代码AI应用开发平台
零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号