RaphaelCaputo2/shark-k86-mac

GitHub: RaphaelCaputo2/shark-k86-mac

为 Attack Shark K86 机械键盘提供原生 macOS/Linux 控制能力的 Python 工具,支持 RGB 灯效与 TFT 屏幕的全面自定义。

Stars: 0 | Forks: 0

# shark-k86-mac **Attack Shark K86** 机械键盘的原生 **macOS / Linux** 控制工具 —— 包括 RGB 灯光、侧边灯带以及 128×128 TFT 屏幕。无需 Windows,无需虚拟机,无需浏览器。 Attack Shark 仅提供了一个 Windows 应用程序(此外还有一个并非对所有人都有效的浏览器 WebHID 驱动程序)。这是一个小型的 Python 工具,可直接与键盘的厂商 HID 接口进行通信,因此您可以在 Mac 或 Linux 机器上通过终端来控制它。 ## 功能 - 🎨 按键和侧边灯带的**纯色自定义** - 🌈 **20 多种内置特效**(波浪、涟漪、贪吃蛇、呼吸、流星、烟花……)—— 包括响应式的*打字涟漪*特效 - 🖼️ **发送任意图片**(PNG/JPG/……)至 TFT 屏幕 - 🎞️ **发送动画 GIF** 至屏幕 - 💡 LED 主控 + 节电控制(那个会在后台默默关掉灯光的功能) - 🔎 只读设备信息(固件版本、状态) ## 支持的设备 | | | |---|---| | 产品 | Attack Shark K86 (ROYUAN "Gaming Keyboard") | | USB VID:PID | `0x3151:0x4015` | | 控制接口 | HID interface 2, usage page `0xffff`, usage `0x0002` | 其他 ROYUAN/Attack Shark 型号可能共享相同的通信帧格式,但尚未经过测试。 ## 安装 ``` git clone https://github.com/RaphaelCaputo2/shark-k86-mac.git cd shark-k86-mac pip install -r requirements.txt # hidapi + pillow # 可选:安装 `k86` 命令 pip install -e . ``` 通过 **USB 线缆**连接键盘,并将背面的开关拨至 **Win + USB**。 - **Linux:** 您可能需要配置一条 udev 规则,以便在不使用 `sudo` 的情况下访问设备: # /etc/udev/rules.d/99-attackshark-k86.rules SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3151", ATTRS{idProduct}=="4015", MODE="0660", TAG+="uaccess" 然后执行 `sudo udevadm control --reload && sudo udevadm trigger`。 - **macOS:** 开箱即用。 ## 用法 ``` # 灯效 k86 color purple # solid colour on the keys (name or "R,G,B") k86 color 0,128,255 --bright 4 k86 side blue # side strips k86 both cyan # keys + side, same colour k86 effect ripple --rainbow # reactive: type and watch it spread 🌊 k86 effect wave --rainbow k86 effect breath --rgb 255 0 0 k86 show # live colour show k86 leds off # / on k86 info # firmware + state (read-only) # 屏幕 (128x128) k86 image ~/Pictures/logo.png k86 image logo.png --rotate 90 --flip h k86 gif ~/Pictures/loop.gif k86 test # 4-colour test pattern ``` 如果没有执行 `pip install -e .`,可以作为模块运行:`python -m k86.cli color purple`。 ### 作为库使用 ``` from k86 import K86 with K86() as kb: kb.leds(on=True) kb.set_main_color(255, 0, 255) # magenta keys kb.set_side_color(0, 0, 255) # blue side strips from k86 import screen screen.write_image(screen.load_image("logo.png")) ``` 请参阅 [`examples/`](examples/) 以查看在 TFT 屏幕上显示实时时钟的示例。 ## 注意事项 - **亮度范围为 0–4。** 发送 `> 4` 的值会导致固件丢弃整个数据包。 - **节电模式会隐藏所有灯光。** 如果没有任何灯光亮起,说明 LED 关闭位或节电模式已开启 —— 请调用 `k86 leds on`(该库在每次执行颜色命令前都会自动执行此操作)。 - **自定义颜色与彩虹模式** 的区别在于选项 nibble:`7` = 您的 RGB 颜色,`8` = 彩虹模式。 ## 免责声明 本项目为非官方工具,与 Attack Shark / ROYUAN 没有任何 affiliation。使用风险自负。它仅发送与官方软件相同的厂商 HID 命令;不会刷新固件。 ## 鸣谢 由 [@RaphaelCaputo2](https://github.com/RaphaelCaputo2) 逆向工程并开发。 协议源自 Attack Shark 公开的 WebHID 驱动程序(他们的 JavaScript 代码**并未**在此处分发 —— 此处仅包含关于通信格式的净室描述)。 ## 许可证 [MIT](LICENSE)
标签:HID, Python, RGB灯效, 外设管理, 无后门, 硬件控制工具, 逆向工具