Seekey: 一个 layer-shell (niri/sway/hyprland/...) 下开箱即用的按键显示器

楼主在期末周闲得蛋疼(雾)vibe && review了一个键盘可视化工具SeeKey

它是一个开箱即用的工具,打开没有菜单设置弹出、不用你在 Layer-shell 下自己调整窗口位置。拉取仓库 - chmod 777 ./install.sh && ./install.sh - ./seekey 直接使用就很优雅。

这是一个纯 C 语言编写、原生支持 Wayland Layer-Shell 协议的按键可视化工具(Key-Visualizer)。


:bullseye: 为什么选择 SeeKey?(解决的痛点)

如果你使用的是基于 layer-shell 的窗口管理器(如 niri, Hyprland, Sway 等),SeeKey 的体验可以说是无缝的:

  • 真正的桌面底层/顶层常驻(Layer-Shell 级支持):它不像传统的工具那样作为一个“普通窗口”存在,而是像一层完全不干扰输入的 quickshell。能够完美固定在屏幕指定位置,绝对不会抢占你的输入焦点,也不会被 WM 的自动平铺(Tiling)搞乱布局。
  • 极致轻量:纯 C 语言编写,结构清晰,内存占用极小,启动秒开。

:sparkles: 核心特性

SeeKey 提供了丰富的自定义配置,满足你对效率和美观的双重追求:

  • :wrench: 灵活的布局与定位:利用 Layer Shell 机制,支持原生设置 Margins。你可以自定义每次启动时的窗口初始大小、屏幕停靠位置(Anchor)。
  • :artist_palette: 高度可定制化主题:自由更改按钮大小、字体、颜色与整体主题外观。
  • :stopwatch: 动态显示控制:支持自定义按键在屏幕上的停留与淡出时间。
  • :shuffle_tracks_button: 智能按键合并:支持连续相同按键或修饰键(Modifier)的智能合并显示,拒绝刷屏。
  • :performing_arts: 特殊按键图标化:支持为 Ctrl, Shift, Backspace 等特殊功能键配置独立的显示图标。

:camera_with_flash: 运行效果截图(直接安装 + 选择德古拉主题)

:hammer_and_wrench: 快速上手

你可以通过以下方式拉取代码并编译(确保你的系统已安装 wayland-client 等相关依赖):

git clone https://github.com/Nakanomk/Seekey.git
cd Seekey
make                       # build
./seekey --init-config     # drop a starter ./seekey.ini (optional)
./seekey --config-tui      # tweak settings in a terminal UI (optional)
./seekey                   # run


:speech_balloon: 写在最后

楼主是个菜菜,这是一个新开的坑,希望能够帮到大家,也希望大家多多给我提 issue 和 pr。如果你也饱受 Wayland 下键盘可视化工具不好用的折磨,欢迎试用!

也非常期待大家在评论区提出各种 Feature Request、Bug 或者是改进建议。大家能给个星星就更加感谢辽-w-

3 Likes

楼主此前是否听说过 showmethekey

事实上我就是觉得showmethekey不好用才开坑的这个项目()

showmethekey 的按键显示在 niri 上会显示为一个独立窗口,而且窗口没有办法记忆位置,其它 layer-shell我没测试,不过应该也是差不多的情况。而且启动时显示一个菜单窗口的行为也很不简洁。

可以测试一下我的项目试试-3-

确实,看上去 showmethekey 目前还不支持 layer shell(

https://github.com/AlynxZhou/showmethekey/issues/65

还是要正名一下,其实这些 showmethekey 都是支持的()只是需要用户调整的配置太多了

善!

我来更新一下()
首先是先前 @Touko 提到的大写显示问题,现在已经修正了()
之后是现在这个项目有了更现代的外观:


最后,现在本项目已经上传了 AUR

yay -S seekey

大小只有 0.12 MB,大家可以下载来体验一下:D

1 Like