🎮 Osynic Pad
Rust 编写的游戏手柄到键盘映射工具
English | 中文
📋 简介
Osynic Pad 是一个功能强大的游戏手柄到键盘映射工具库,使用 Rust 编写。它支持 Xbox、PlayStation 等多种主流游戏手柄,通过交互式菜单和灵活的配置系统,让你轻松将手柄按键映射到键盘事件。
🎯 核心特性
- 🎮 广泛的手柄支持 - 兼容 Xbox、PlayStation、Nintendo Switch 等主流游戏手柄
- 📋 灵活的配置管理 - 三种配置获取方式:使用现有配置、导入外部配置、创建新配置
- ⚡ 高性能映射 - 响应延迟 < 5ms
- 🐛 调试模式 - 详细的事件日志便于诊断测试
- 🎯 多模式支持 - 支持自定义按键映射和多个映射模式切换
- 🌈 友好的 CLI 界面 - 使用
inquire库提供直观的交互式菜单
🚀 快速开始
安装
假设你已安装 Rust 1.85+
# 从源码编译
# 运行程序
或直接使用 cargo install:
基本使用
启动程序后,会自动弹出交互式菜单:
1️⃣ 配置选择步骤
🎮 Osynic Pad 配置选择
请选择配置来源:
→ 📂 使用现有配置
📥 导入配置(从指定位置)
✨ 新建配置(交互式)
三种选择说明:
- 📂 使用现有配置 - 选择
configs/目录下已有的配置文件 - 📥 导入配置 - 从任意位置导入 JSON 配置文件(自动复制到项目)
- ✨ 新建配置 - 交互式创建新配置文件
2️⃣ Debug 模式选择
🐛 启用 Debug 模式? (y/n)
3️⃣ 开始映射
配置完成后,程序即开始监听手柄输入,将按键映射到键盘事件。
⚙️ 配置文件格式
配置文件放在 configs/ 目录,采用 JSON 格式。
配置文件示例
支持的按键
手柄按键
A,B,X,Y- 四个主要按键Start,Back- 开始和返回按键LB,RB- 左右 bumperLT,RT- 左右 trigger(模拟量,转化为离散值)LS,RS- 左右摇杆按键DPadUp,DPadDown,DPadLeft,DPadRight- 方向键
键盘输出
支持所有标准键盘按键,如:a-z, 0-9, Space, Return, Escape 等。
📚 库的使用
将 osynic_pad 作为库集成到你的 Rust 项目:
[]
= "0.1.0"
= { = "1.51", = ["sync", "rt-multi-thread"] }
代码示例
use ;
use Arc;
use Mutex;
async
🏗️ 项目结构
osynic_pad/
├── src/
│ ├── lib.rs # 库入口
│ ├── main.rs # CLI 二进制程序入口
│ ├── cli.rs # 交互式 CLI 菜单
│ ├── config.rs # 配置文件处理
│ ├── events.rs # 手柄事件定义
│ ├── mapper.rs # 核心映射逻辑
│ └── error.rs # 错误类型定义
├── configs/ # 配置文件目录
│ ├── pad_config.json
│ └── ...
├── examples/ # 使用示例
└── Cargo.toml # 项目配置
📚 API 文档
主要类型和函数
Config- 配置文件结构GamepadMapper- 手柄事件映射器MappingMode- 映射模式枚举PadEvent- 手柄事件类型
详细 API 文档可通过 cargo doc --open 查看。
🔧 开发
前置要求
- Rust 1.85.0 或更高版本
- Cargo
本地构建
运行测试
代码检查
🤝 贡献
欢迎提交 Issue 和 Pull Request!
请确保:
- 遵循 Rust 社区编码规范
- 通过所有 clippy 检查
- 代码已格式化
📜 协议
本项目采用 MIT License 开源,详见 LICENSE 文件。
🙏 致谢
本项目依赖以下优秀的开源库:
📞 联系方式
- 提交问题:GitHub Issues
- 项目地址:GitHub Repository