GPL-3.0-or-later · 0.11.1, beta · Linux、Windows、macOS、浏览器

sharkfin

面向基于 ROYUAN 硬件制造的键盘的开源配置工具:Attack Shark、Akko、 Epomaker、MonsGeek、Ajazz、Hator、ikbc 等。在键盘图片上重映射按键、 设置灯效、逐键上色、录制宏、在磁轴键盘上设置轴体, 并把设置备份到文件。支持列表中有 1412 款键盘。

浏览器版本需要 Chrome、Edge 或其他 Chromium 浏览器。写入需要 USB 数据线。除非软件包已经装好,Linux 需要一行 udev 规则。 Beta 阶段:重新调整设置之前,请先导出一份备份。

sharkfin 按键映射编辑器,展示逐键绘制的 Attack Shark X86,Abyss 配色 sharkfin 按键映射编辑器,展示逐键绘制的 Attack Shark X86,Olivia 配色 sharkfin 按键映射编辑器,展示逐键绘制的 Attack Shark X86,Laser 配色 sharkfin 按键映射编辑器,展示逐键绘制的 Attack Shark X86,Botanical 配色 sharkfin 按键映射编辑器,展示逐键绘制的 Attack Shark X86,8008 配色

功能

  • 按键。在键盘图片上点击一个按键,把它设成另一个按键、鼠标按键、光标移动、滚轮、一个宏或一个媒体控制键。基础层和 Fn 层,以及旋钮。每次写入都会立即到达键盘。
  • 灯光。键盘固件自带的灯效,多数键盘有 18 种,可设置方向、颜色、亮度和速度。你调整时,灯效就在键盘图片上运行。松开滑块时才写入键盘。键盘带侧边 LED 时会出现侧边灯控制项。
  • 上色。为单个按键上色,再把图案发送到键盘。发送是单独的一次点击,并且有频率限制,因为图案会写入键盘的闪存。
  • 宏。录制按键和鼠标序列,每个事件可设延迟,存入 50 个板载插槽,并可在任一层把某个按键绑定到一个宏:重复、切换或按住触发。
  • 轴体。在磁轴键盘上:触发点、回弹点、rapid trigger、死区、动态行程、mod-tap、toggle 和 snap,可按单键或全部按键设置。已读出固件的键盘可以写入,设置向导也能为你的键盘打开写入。
  • 设备。防抖、Windows 键锁定、WASD 与方向键互换、关闭背光、自动识别主机系统、休眠计时、恢复出厂设置,以及为带屏幕的键盘设置屏幕图片。
  • 备份。把按键映射、灯效和设置导出为文件,以后可以还原。宏和逐键上色不在文件里。配置保存在键盘本身。
  • 设置向导。面向 sharkfin 还不认识的键盘:几项测试和问题,把它从只读带到可用,并生成一份报告,让它对所有人都能用。参见 设置向导。

支持的键盘

sharkfin 与基于 ROYUAN 硬件制造的键盘通信。大多数上报 USB 厂商 ID 3151;也有一些以自家品牌的 ID 出货。 键盘插上时会根据它自己的回应被识别,所以从不需要你选择型号。

支持列表中的键盘1412
开箱即可写入1181
连接时向键盘询问命令集,你允许后即可写入231
开箱即逐键绘制373
与你的键盘一次性确认后逐键绘制832

没有绘制图片的键盘照样能用:你会看到按键插槽网格,也可以在 「按键」页里 绘制键盘。完全不在列表中的键盘会根据它自己的回答被读取,设置向导 页面允许更改并逐项检查。“支持”在各个状态下分别意味着什么:支持情况。

安全与隐私

  • sharkfin 只写入设置,从不写入固件。没有什么可以变砖。如果键盘不再回应,拔下十秒。安全
  • 命令集未知的键盘不会被写入。键盘会说明自己使用哪一套。
  • 浏览器版本加载完成后不会发出任何自己的请求,它拿到的是键盘的设置通道,从来不是你的输入。没有账号、没有统计分析、没有 cookie。隐私

常见问题

我的键盘受支持吗?

插上试试,sharkfin 会告诉你它看到了什么。键盘列表每个型号一页,列出它的 USB ID 以及 sharkfin 在它上面能做什么。不在列表中的键盘会根据它自己的回答被读取,并在 设置向导 页面完成设置。

我用的是 Linux,需要 udev 规则吗?

.deb、.rpm 和 Arch 软件包会自动安装。使用 AppImage 或浏览器版本时,把下面这行粘贴到终端并重新插拔键盘:

echo 'SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3151|0461|046a|0db0|145f|14a5|2ea8|3121|3299|331a|374a|379a|38a9|38ee|391d|3984|39a8|39ab|54ab", MODE="0660", TAG+="uaccess"' \
  | sudo tee /etc/udev/rules.d/70-sharkfin.rules >/dev/null \
  && sudo udevadm control --reload-rules && sudo udevadm trigger
只写入一个规则文件并重新加载 udev。

来自 VIA、Vial 或厂商软件包的规则可能已经够用。sharkfin 发现一个它打不开的键盘时,会显示同样这条命令。更多内容见 Linux。

需要数据线吗?

写入时需要。通过 2.4 GHz 接收器时,sharkfin 只能读到接收器转发的内容:有的接收器带设置通道,有的什么都不带,而同一型号两种都有出货,所以没有针对每款键盘的统一答案。把接收器插上,应用会告诉你手上这个属于哪一种。蓝牙 没有设置通道。设置保存在键盘上,因此之后在无线状态下仍然有效。

它会把我的键盘变砖吗?

它从不刷写固件。已知最严重的故障是键盘不响应 USB,直到你重新插拔:关闭应用,拔下十秒,再插回去。整个过程中打字始终可用。

在 GitHub 上为 sharkfin 加星

加星有助于其他使用这些键盘的人找到 sharkfin。源代码、问题反馈和键盘报告也都在那里。