AntiMicroX 手柄映射实战:一个手柄接管所有键鼠游戏
AntiMicroX 手柄映射实战一个手柄接管所有键鼠游戏【免费下载链接】antimicroxGraphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no gamepad support.项目地址: https://gitcode.com/GitHub_Trending/an/antimicroxAntiMicroX 是一款图形化手柄映射工具把游戏手柄的按键、摇杆翻译成键盘、鼠标、脚本与宏事件设备轮询间隔可低至 1 ms。它同时支持 X11 与 Wayland内置 xtest、uinput、SendInput、Vmulti 四套可插拔的事件注入后端也是已停更的 AntiMicro 项目的直接继承者。技术路线拆解整条 AntiMicroX 手柄映射链路分三段SDL2 负责读、XML 集合负责存、可插拔后端负责注。用 SDL2 统一读事件手柄形态五花八门——方向盘、飞行摇杆、带陀螺仪的控制器内核层接口各不相同。直接处理 evdev/joydev 意味着每个设备单独适配SDL2 把接口统一掉并且启动时还会把仓库自带的映射数据库 share/antimicrox/gamecontrollerdb_linux.txt 加载进 SDL把非标准手柄归一化为标准 gamepad统一轴/键位索引。事件轮询由定时器驱动SDL_Init(SDL_INIT_GAMECONTROLLER | SDL_INIT_JOYSTICK); // 初始化手柄子系统 pollRateTimer.setInterval(pollRate); // 轮询间隔GamepadPollRate 设置限 1~16 ms SDL_GameControllerAddMappingsFromFile(db_file.c_str()); // 载入 gamecontrollerdb 归一化设备映射存成可切换的 XML 集合一套映射不够用因为不同游戏需要不同按键。每套映射是一个 SetJoystick 对象由 xml 模块序列化后保存为 profile多套集合可在运行时切换D-Bus 服务 io.github.antimicrox 也能编程切集合。X11 下还支持 auto profile切到某个游戏窗口时自动加载对应映射。事件注入做成可插拔后端目标应用只认键盘和鼠标而注入方式因桌面环境而异X11 走 XTest 扩展Wayland 没有直接注入权限、必须经内核 uinputWindows 用 SendInput。注入层因此被抽成 EventHandlerFactory编译期用 -DWITH_UINPUT / -DWITH_XTEST 开关决定编入哪些后端运行时按会话类型回退——检测到 wayland 自动选 uinput否则默认 xtest也可用 --eventgen 手动指定。QString session qgetenv(XDG_SESSION_TYPE); if (session wayland compiled_with_uinput) temp uinput; // Wayland经内核虚拟输入 else temp xtest; // X11经 X 服务器注入 // Windows 平台对应 sendinput3 分钟跑起来用官方包一条命令以 Fedora 为例openSUSE 用 zypperArch 用 pacmanflatpak install flathub io.github.antimicrox.antimicrox # 各发行版通用 dnf install antimicrox # 或 Fedora 官方源源码构建git clone https://gitcode.com/GitHub_Trending/an/antimicrox cd antimicrox mkdir build cd build cmake .. cmake --build . ./bin/antimicrox # 启动主窗口主窗口自动列出连接中的手柄显示名称与 GUID。点击按键区域的空白槽位按下想绑定的键完成绑定Save 后写入 XML profile。跳过 GUI 也可以直接命令行启动antimicrox --tray --profile mygame.antimicrox --profile-controller Xbox 360生效后的表现在任意应用中按下手柄按键会触发对应映射的键盘/鼠标事件可在输入监听器中验证。参数调优与常见坑摇杆漂移、幽灵输入调整摇杆 dead zone。Xbox 360 按 XInput 标准用 8000Logitech F310 实测 2000 更能消除漂移调好后摇杆静止时不再产生事件。鼠标瞄准发飘把右摇杆对角范围从默认 45° 提到 65°~89°dead zone 从 8000 降到 6000加速曲线换 Ease Out Quad。快速 180° 转身明显变快低端精度保留代价是摇杆回中偏差时会有轻微光标漂移。方向切换过于灵敏左摇杆切 4-way cardinal四方向模式并把 stick delay 设为 0.01s菜单导航与武器快捷键场景会明显稳定。Wayland 报 uinput 权限错把 other/60-antimicrox-uinput.rules 复制到 /etc/udev/rules.d/ 并重载规则。该规则给 uinput 节点加 uaccess普通用户即可无 sudo 注入事件。手柄检测不到或轴缺失先用 sdl2-jstest 或 evtest 验证设备SDL2 基于 evdev老 joydev 工具不完全等价设备正常则用 --eventgen xtest 或 --eventgen uinput 手动指定后端。横向对比与选型建议项目事件后端与平台适用场景AntiMicro前代已停更仅 X11单一后端维护旧 profile、纯 X11 老环境evdevjoy仅 Linux evdev纯文本配置无 GUI 的服务器端、脚本化映射AntiMicroXxtest/uinputX11Wayland、SendInput/VmultiWindows需 GUI 调参、多集合自动切换、D-Bus 集成结论要 GUI 调参、auto profile 自动切换且跨桌面会话可用选 AntiMicroX纯 headless 的 Linux 服务器用 evdevjoy 更轻量。落地场景与能力边界适合用在哪用游戏手柄玩只支持键鼠的 Steam 与独立游戏auto profile切到不同游戏窗口自动换一套映射限 X11把方向盘、飞行摇杆等非标准设备映射成虚拟键鼠桌面工作流集成用 D-Bus 切换映射集合例如dbus-send --print-reply --destio.github.antimicrox /InputDevice/0 \ io.github.antimicrox.InputDevice.setActiveSetNumber int32:0目前不擅长什么auto profile 依赖窗口监控Wayland 下不可用。项目处于寻找新维护者阶段只做 bug 修复不加新功能。对强限制 raw input 或带反作弊的游戏无法注入也不能替代游戏内自带的重映射。延伸阅读BUILDING.mdCMake 开关-DWITH_UINPUT、-DCMAKE_BUILD_TYPE 等与 DEB/RPM/AppImage/Flatpak/Windows 打包流程源码构建一站式参考。ProfileTips.md官方调参笔记dead zone 8000/2000、对角范围 65°~89°、stick delay 0.01s 的经验值都出自这里。src/eventhandlers/四套事件注入后端的实现想搞懂 uinput 与 XTest 各自怎么发事件就从这读起。CHANGELOG.md3.6.x 的变更点如默认 Qt6 构建、新增 D-Bus InputDevice 接口判断功能可用性时翻它最快。AntiMicroX 把读手柄事件和注键鼠事件两件最琐碎的事都工程化了配置可存、可切换、可脚本化剩下的调参工作交给 dead zone、对角范围和加速曲线即可。【免费下载链接】antimicroxGraphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no gamepad support.项目地址: https://gitcode.com/GitHub_Trending/an/antimicrox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

window11无法连接Fortinet SSL VPN

window11无法连接Fortinet SSL VPN

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 6:48:00 阅读更多 →
【Docker项目实战】使用Docker部署FTP服务器

【Docker项目实战】使用Docker部署FTP服务器

【Docker项目实战】使用Docker部署FTP服务器一、FTP服务介绍1.1 FTP简介1.2 FTP模式介绍1.3 如何选择FTP模式?二、本次实践规划2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、拉取FTP镜…

2026/10/19 6:48:00 阅读更多 →
diagram-design:从结构化数据到代码化渲染的架构图画图方法论

diagram-design:从结构化数据到代码化渲染的架构图画图方法论

画图这件事,看起来是最没有技术含量的工作,但真正想画出一张让所有人一眼就懂的架构图、流程图、时序图,难度真不亚于写一份清晰的技术方案。diagram-design 就是我在反复踩坑之后总结出来的一套画图方法论加配套小工具:它把画图的…

2026/10/20 7:47:39 阅读更多 →

最新新闻

CEF离屏渲染接入D3D11:共享纹理融合浏览器与原生渲染管线

CEF离屏渲染接入D3D11:共享纹理融合浏览器与原生渲染管线

简介:这是一份基于CEF框架的高性能离屏渲染(OSR)演示项目,面向需要在桌面应用中嵌入Web技术、或对GPU渲染管线有定制需求的C开发者,重点解决使用Chromium内核进行屏幕外绘制时的数据交换与性能优化问题。项目完整展示了…

2026/10/20 9:10:50 阅读更多 →
第234篇 系统日志体系:logd 与 dropbox

第234篇 系统日志体系:logd 与 dropbox

先把结论放在前面:应用能看到的日志,只是 Android 日志体系的一小段。 系统侧的日志由 logd 统一写入环形缓冲区,按 main、system、radio、events、crash 分区存储,每个分区有大小上限,超出后从头覆盖——这决定了日志的第一属性是"最近发生了什么",而不是&quo…

2026/10/20 9:10:50 阅读更多 →
第233篇 OOM 与内存抖动:从分配速率看问题

第233篇 OOM 与内存抖动:从分配速率看问题

先把结论放在前面:OOM 与内存抖动是两类不同的病,但共用同一个根源——分配速率大于回收速率。 OOM 是"某时刻申请超过可用内存"的硬失败,抖动是"内存水位反复升降导致 GC 频繁"的慢性损耗。只盯着 OutOfMemoryError 去排查,会漏掉真正影响体感的抖动。…

2026/10/20 9:10:50 阅读更多 →
Linux 0.11终端设备控制实验:从内核态裁剪到用户态重写

Linux 0.11终端设备控制实验:从内核态裁剪到用户态重写

先说明一下,这个实验在我当年做的时候,就和“哈工大的操作系统实验”深度绑定,核心是基于Linux 0.11内核源码去改终端设备的读写流程。实验七的标题叫“终端设备控制”,但我更愿意把它理解成“把终端这层原来由内核干的活&#xf…

2026/10/20 9:10:50 阅读更多 →
AI辅助开题报告写作:从构思到初稿的实操全攻略

AI辅助开题报告写作:从构思到初稿的实操全攻略

深夜十一点多,某高校的硕士生A同学盯着空白的文档,光标停在“选题背景及意义”这一行已经整整二十分钟。导师白天刚丢下一句“这周把开题报告初稿给我”,而他现在连研究现状都理不清楚。这种场景在每年毕业季都会上演——开题报告不算严格意义…

2026/10/20 9:10:50 阅读更多 →
编辑看IThenticate查重报告:不只看总相似率,这5点才是关键

编辑看IThenticate查重报告:不只看总相似率,这5点才是关键

投过SCI的都知道,IThenticate查重报告出来那一瞬间的心情。总相似率低,心头大石落地;相似率一高,立刻开始逐句对照,琢磨怎么降重。但有一个问题很多人没想明白:编辑看这份报告,和你自己看这份报…

2026/10/20 9:09:49 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →