Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
e75362a
feat: 初始化项目,提交完整代码
chenjianing123 Apr 28, 2026
a2efa29
固件
chenjianing123 Apr 28, 2026
ac45857
图片
chenjianing123 Apr 28, 2026
f3aa76e
修复typeless录音失效问题
chenjianing123 Apr 28, 2026
56ecc02
修复typeless录音失效问题
chenjianing123 Apr 28, 2026
44b4908
授权弹窗优化
chenjianing123 Apr 28, 2026
e3a6420
Initial project import
ShawnYins Apr 30, 2026
272c1a8
Merge remote main history
ShawnYins Apr 30, 2026
3518af2
适配codex
chenjianing123 May 1, 2026
e47f8b2
Merge remote-tracking branch 'origin/main'
chenjianing123 May 1, 2026
f2c0fb0
新增 AhaType 并优化 macOS 兼容与连接状态
ShawnYins May 5, 2026
c62457c
!1 新增 AhaType 功能,适配 macOS 12/15 并优化连接状态
ShawnYins May 5, 2026
cebc963
win版适配codex
May 11, 2026
3aa1bc2
win版适配codex
May 11, 2026
dd7679b
win版适配codex
May 11, 2026
9a17ab5
win版优化语音输入-todo
May 12, 2026
bb4bf53
适配codex+调试日志
chenjianing123 May 18, 2026
ede5c15
适配kimi先提交一版
chenjianing123 May 19, 2026
78b82e1
适配kimi拨杆
chenjianing123 May 20, 2026
fb3819e
优化新手引导授权与语音输入适配
ShawnYins May 18, 2026
a187a32
新增虚拟拨杆、实时灯效/OLED 还原与画布响应优化
ShawnYins May 28, 2026
8f0664e
默认 OLED 切换 Cursor/Codex GIF + 自动同步、画布 OLED 修复、帮助中心内嵌
ShawnYins May 29, 2026
038b186
画布元件防交叠、修改按钮按 macOS HIG 收窄、Mode 描述与 ⋯ 菜单微调
ShawnYins May 29, 2026
fc3b3c0
修复 DMG 安装包样式:HFS+ + 等 Finder 看到卷再跑 AppleScript
ShawnYins May 29, 2026
5d95944
Fix agent launch handoff and DMG packaging
ShawnYins Jun 2, 2026
f0a5b1c
修复 Agent 生命周期管理与编辑模式卡死,优化 DMG 打包流程
ShawnYins Jun 2, 2026
d3e47dd
合并 github/main-anpx:整合 .gitignore 规则
ShawnYins Jun 2, 2026
9cd4117
修复 macOS 26 首次启动无响应:补全权限描述项 + 降低灯条动画 CPU 占用
ShawnYins Jun 5, 2026
61183f5
修复从 DMG 拖出安装后无法打开:打包前先对 App Bundle 单独公证并 staple
ShawnYins Jun 5, 2026
3664784
Fix macOS 26 launch and signing packaging
ShawnYins Jun 7, 2026
01279bd
修改swift目录
Jun 10, 2026
e154975
更新固件
Jun 10, 2026
f24ab88
feat: 灯效自定义配置、4 Mode 支持、权限延迟申请、编辑态 UI 优化
Jun 10, 2026
a18cb6d
fix: Mode Tab 名称编辑在切换 tab、点击其他位置时也自动保存
Jun 10, 2026
d754f97
java win版
Jun 12, 2026
0085fd2
整理目录
Jun 12, 2026
3a1587a
claude hook
Jun 12, 2026
a59b0a9
Update macOS client for latest firmware sync
Jun 12, 2026
4a0a07e
Fix AhaKey light preview and backspace icon
Jun 13, 2026
b21b9bd
Merge remote-tracking branch 'origin/main-anpx' into main-anpx
Jun 14, 2026
35bbfe6
Refine macOS voice presets and write completion flow
Jun 15, 2026
534121e
Fix write completion dialog and key capture
Jun 15, 2026
bfb4584
Refine primary key input modes
Jun 15, 2026
944d42c
Adjust primary key input layout
Jun 15, 2026
919ecb3
Combine primary key input controls
Jun 15, 2026
1df7387
Fix macOS package entrypoints for source builds
Jun 16, 2026
2bfad6d
Update AhaType cloud service endpoint
Jun 16, 2026
d55242e
Fix AhaType login failure messaging
Jun 16, 2026
31dbc3c
Fix production AhaType API compatibility
Jun 16, 2026
4ad5f3c
提交ubuntu初始架构
Jun 17, 2026
a2a0140
Merge remote-tracking branch 'origin/main-anpx' into main-anpx
Jun 17, 2026
73026f6
Fix payment refresh order status handling
Jun 17, 2026
0f002bf
chore: stop tracking build artifacts and ignore them
ZephyrKeXiner Jun 18, 2026
05f9242
Sync physical switch state to agent
Jun 21, 2026
39393f7
ubuntu BLE
anpeixu Jun 21, 2026
bb28e81
ubuntu优化
anpeixu Jun 22, 2026
774344e
Force fresh account refresh after payment
Jun 22, 2026
86331f5
claude hook
Jun 22, 2026
4812844
常规优化
Jun 22, 2026
87626b4
Merge remote-tracking branch 'origin/main-anpx' into main-anpx
Jun 22, 2026
3d986a2
双套任务状态 GIF:固件 0x84/0x85/0x86/0x90 + 客户端 + CI 构建
ShawnYins Jun 23, 2026
87f4a4b
Merge remote main-anpx into local ui-iteration (保留固件新特性)
ShawnYins Jun 23, 2026
37a7701
Fix CH582 firmware build for GCC 14 + xpack toolchain
ShawnYins Jun 23, 2026
c7fec7e
CI: use xpack riscv-none-elf-gcc 14.2.0 + fix LIB_DIR path
ShawnYins Jun 23, 2026
4096eec
Clean firmware and old mac client from main-anpx
starinthenorthernsky Jul 13, 2026
2c564f8
Merge pull request #44 from AhakeyAI/codex/clean-main-anpx-firmware-o…
TheNorthStarYang Jul 13, 2026
6b351de
feat(macOS): 客户端 UI/功能迭代:权限控制、电源保护、本地化、OLED GIF、支付刷新
ShawnYins Jul 17, 2026
7d47de2
Merge ui-iteration client changes into main-anpx
Jul 17, 2026
8622b97
中英文切换
Jul 21, 2026
16f1296
中英文切换优化
Jul 23, 2026
d194e87
解决打开BLE卡顿问题
Jul 24, 2026
c613679
feat(macOS): sync Rhino four-state LCD client
ShawnYins Jul 30, 2026
249874b
feat(rust): add Rust Tauri client with BLE protocol aligned to macOS …
Aug 4, 2026
cfb5ec5
chore: clean up unused baseline files and legacy artifacts
Aug 4, 2026
c155d8c
feat(rust): wire 6 BLE commands + add loading state and 1s keep-alive
Aug 4, 2026
62940e0
refactor(ble): replace btleplug/winrt with TCP client to BLE_tcp_brid…
Aug 4, 2026
5351374
refactor(ui): remove BLE device picker, connect directly to v2 bridge
Aug 4, 2026
045008c
fix(ui): two UI bugs - mode switch reset + knob state stale
Aug 4, 2026
b8d3992
feat(ui): 2A selectedPart routing + 7-hotspot canvas + 5 InspectorPan…
Aug 4, 2026
fc7f6c5
Merge remote-tracking branch 'origin/main-anpx' into main-anpx
anpeixu Aug 4, 2026
7134628
提交ubuntu ble
Aug 4, 2026
c1114ff
Merge remote-tracking branch 'origin/main-anpx' into main-anpx
Aug 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
55 changes: 55 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ logs/
**/config_client.json
**/settings.json.bak.*
**/hooks.json.bak.*
**/build.local.env
**/*.local.env

# Local backups / temp
*.bak
Expand All @@ -72,3 +74,56 @@ logs/
# Local model / runtime payloads
internal/
.gstack/
/ahakeyconfig-win-java/.m2repo/
/ahakeyconfig-win-java/target/

# Java / Maven build output
target/
*.class

# Swift build artifacts
.build/
.swiftpm/
DerivedData/
*.xcuserstate

# Packaged outputs
dist/

# Local env (signing creds etc.) — covered by **/*.local.env above

# Server codebase (separate Gitee repo)
badao-resource-sharing-backstage/

# Firmware backup / artifacts
CH582m_vibe_coding_BLE_keyboard-master.bak-previous/
*.hex

# Local SSH keys / toolchain
.ssh/
.toolchain/

# Server setup helpers
server-ssh-setup.md
server-ssh-setup.sh

# Web client (separate project)
ahakey-web-main/

# Misc local assets
backspace.png
codex.gif
cursor.gif

# Python / bridge runtime outputs
*.out
*.err

# BLE_tcp_bridge_v3 — 防止打包时再生成 30+ 个按时间戳命名的 spec
BLE_tcp_bridge_v3/ahakey-bridge-2*.spec
BLE_tcp_bridge_v3/ahakey-bridge-onefile-2*.spec
BLE_tcp_bridge_v3/test-winrt.spec

# Rust toolchain installer 不该入库
rustup-init.exe

8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
31 changes: 31 additions & 0 deletions BLE_tcp_bridge_linux/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
PACKAGE_NAME = ahakey-ble-bridge
VERSION = 1.0.0
ARCH = all
DEB_NAME = $(PACKAGE_NAME)_$(VERSION)_$(ARCH).deb

.PHONY: all build clean install uninstall

all: build

build:
@echo "Building $(DEB_NAME)..."
@cp bridge_gui.py deb_package/opt/ahakey/ble-bridge/
@chmod 644 deb_package/opt/ahakey/ble-bridge/bridge_gui.py
@chmod 755 deb_package/DEBIAN/postinst deb_package/DEBIAN/prerm
@chmod 755 deb_package/usr/bin/ahakey-ble-bridge
@dpkg-deb --build deb_package $(DEB_NAME)
@echo "Built: $(DEB_NAME)"

clean:
@echo "Cleaning..."
@rm -f $(DEB_NAME)
@rm -f deb_package/opt/ahakey/ble-bridge/bridge_gui.py

install: build
@echo "Installing..."
@sudo dpkg -i $(DEB_NAME)
@sudo apt-get install -f -y

uninstall:
@echo "Uninstalling..."
@sudo dpkg -r $(PACKAGE_NAME)
145 changes: 145 additions & 0 deletions BLE_tcp_bridge_linux/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# BLE TCP Bridge for Linux (GUI 版)

使用 BlueZ D-Bus API 连接 BLE 设备,提供 TCP 接口给上位机通信。
对标 Windows 版 BLE_tcp_bridge 的功能和界面。

## 功能特性

- **GUI 界面**: PyQt5 桌面应用,类似 Win 版布局(适配 Ubuntu 20.04)
- **自动扫描**: 启动后自动扫描周围 BLE 设备
- **自动连接**: 发现已保存的 AhaKey 设备后自动连接
- **设备选择**: 下拉列表选择设备,无需手动输入 MAC
- **系统托盘**: 关闭窗口最小化到托盘,后台持续运行
- **TCP 桥接**: 提供 127.0.0.1:9000 接口给 Java 应用连接
- **DEB 包**: 支持打包成 deb 包,一键安装

## 构建 deb 包

```bash
# 进入目录
cd BLE_tcp_bridge_linux

# 构建 deb 包
make

# 安装 deb 包
sudo dpkg -i ahakey-ble-bridge_1.0.0_all.deb

# 修复依赖(如果需要)
sudo apt-get install -f
```

## 安装后使用

1. 在应用程序菜单中找到 **AhaKey BLE Bridge**
2. 点击图标启动程序
3. 程序会自动扫描并连接 AhaKey 设备

## 卸载

```bash
sudo dpkg -r ahakey-ble-bridge
```

## 开发运行

```bash
# 正常启动
python3 bridge_gui.py

# 最小化启动
python3 bridge_gui.py --minimized

# 调试日志
python3 bridge_gui.py --debug
```

## 界面说明

| 组件 | 说明 |
|------|------|
| 设备下拉框 | 显示扫描到的 BLE 设备 |
| 连接按钮 | 手动连接选中的设备 |
| 当前连接设备 | 显示已连接的 AhaKey 设备名 |
| TCP服务 | 显示本机IP、端口和客户端数 |
| 下次最小化启动 | 设置后下次启动自动最小化到托盘 |
| 退出程序 | 完全退出 |
| 日志区 | 显示蓝牙扫描、连接、TCP 通信日志 |

## 首次使用

1. 确保蓝牙适配器已启用:
```bash
sudo systemctl start bluetooth
```

2. 启动程序后会自动扫描设备

3. 连接成功后启动 Java 应用:
```bash
java -jar ahakey-studio.jar
```

## TCP 协议

与 Windows 版 BLE_tcp_bridge 兼容,包格式:
```
[Type:1字节][Length:2字节小端][Data:N字节]
```

### 客户端 → 服务器

| 类型 | 值 | 说明 |
|------|-----|------|
| WriteData | 0x01 | 写数据到 BLE |
| WriteCommand | 0x02 | 写命令到 BLE |
| QueryBleStatus | 0x03 | 查询 BLE 连接状态 |
| QueryDeviceInfo | 0x04 | 查询设备状态信息 |

### 服务器 → 客户端

| 类型 | 值 | 说明 |
|------|-----|------|
| BleNotify | 0x81 | BLE 通知数据 |
| BleStatusResp | 0x82 | BLE 连接状态响应 |
| DeviceInfoResp | 0x83 | 设备状态信息响应 |

## 配置文件

配置保存在 `~/.config/ahakey/ble_bridge.json`:
```json
{
"ble_name": "AhaKey XXXX",
"ble_mac": "DC:04:5A:XX:XX:XX",
"server_port": 9000,
"start_minimized": false
}
```

## 文件结构

```
BLE_tcp_bridge_linux/
├── bridge_gui.py # GUI 主程序
├── ble_bridge.py # 命令行版本
├── requirements.txt # Python 依赖
├── Makefile # 构建脚本
├── README.md # 说明文档
└── deb_package/ # deb 包结构
├── DEBIAN/
│ ├── control # 包控制信息
│ ├── postinst # 安装后脚本
│ └── prerm # 卸载前脚本
├── usr/
│ ├── bin/
│ │ └── ahakey-ble-bridge # 启动脚本
│ ├── share/
│ │ ├── applications/
│ │ │ └── ahakey-ble-bridge.desktop # 桌面入口
│ │ └── pixmaps/
│ │ └── ahakey-ble-bridge.svg # 图标
└── opt/
└── ahakey/
└── ble-bridge/
└── bridge_gui.py # 程序文件
```
Loading