了解 XInput
您需要了解的有关 Microsoft XInput API 和 X.Org xinput 实用程序以控制输入设备的所有信息。
Download XInput
Select the appropriate version for your operating system
什么是 XInput?
术语“xinput”指的是两种通常被混淆的不同技术:
Microsoft XInput API
由 Microsoft 为 Windows 开发的应用程序编程接口 (API),用于标准化游戏和与 Xbox 兼容的控制器之间的通信。
X.Org xinput 实用程序
一个用于类 Unix 操作系统(Linux、BSD)的命令行实用程序,允许用户配置各种输入设备,如鼠标、键盘和触摸板。
快速比较
| 特性 | Microsoft XInput API | X.Org xinput 实用程序 |
|---|---|---|
| 主要操作系统 | Windows | 类 Unix (Linux, BSD) 与 X11/XWayland |
| 主要功能 | 用于游戏控制器输入的 API | 用于配置 X11 输入设备的实用程序 |
| 典型用途 | 使用 Xbox 风格的控制器进行游戏 | 配置鼠标、键盘、触摸板 |
| 安装 | 集成到操作系统/驱动程序中 | 通过包管理器(apt、dnf 等) |
| 接口 | 无 (API);通过 joy.cpl 进行测试 | 命令行界面 (CLI) |
Microsoft XInput API
Windows 上游戏控制器的标准化接口。
主要特性
- 基于 Xbox 控制器的标准化控制器布局
- 与 DirectInput 相比,为开发人员简化的 API
- 内置振动/手柄震动支持
- 适当的模拟扳机支持
- 耳机/音频设备支持
- 最多同时支持四个控制器
XInput 版本
存在不同版本,具有不同的功能和操作系统兼容性:
XInput 1.4
Windows 8、10 和 11
具有完整功能集的最新版本
XInput 9.1.0
Windows Vista 及更高版本
功能集减少,为向后兼容而维护
XInput 1.3
来自 DirectX SDK 的旧版本
不再由 Microsoft 提供
设置 Microsoft XInput
XInput 功能已集成到 Windows 中,并通过控制器驱动程序进行访问。以下是确保其正常工作的方法:
确保 XInput 正常工作的步骤
更新 Windows
保持您的 Windows 操作系统更新以确保您拥有最新的 XInput 支持
安装正确的驱动程序
对于官方 Xbox 控制器,Windows Update 通常会自动处理。对于其他控制器,您可能需要下载特定的驱动程序。
连接您的控制器
通过 USB 或无线适配器/蓝牙连接您的控制器
检查设备管理器
验证 Windows 是否正确识别您的控制器且没有错误
验证 XInput 是否工作
检查设备管理器
在“人体学输入设备”、“Xbox 外设”或“声音、视频和游戏控制器”下查找
使用游戏控制器设置
按 Win+R,输入 joy.cpl,然后按 Enter 打开游戏控制器面板
在游戏中测试
启动支持 XInput 的游戏以测试您的控制器是否正常工作
X.Org xinput 实用程序
一个用于在具有 X Window 系统的类 Unix 系统上管理输入设备的命令行工具。
核心目的
xinput 实用程序允许您:
- 列出 X 服务器识别的所有输入设备
- 查询有关特定设备的详细信息
- 动态配置设备设置(按钮映射、灵敏度等)
- 完全启用或禁用设备
安装 X.Org xinput 实用程序
安装 xinput 通常通过您的发行版的包管理器完成:
先决条件
- 正在运行的类 Unix 系统(Linux、BSD)
- X Window 系统(X11 或 XWayland)
- 管理权限(root 或 sudo)
安装命令
Debian、Ubuntu、Linux Mint
sudo apt update && sudo apt install xinputFedora、RHEL 8+、CentOS 8+
sudo dnf install xinputRHEL 7、CentOS 7
sudo yum install xinputArch Linux、Manjaro
sudo pacman -Syu xorg-xinput基本 xinput 命令
xinput list
显示 X 服务器识别的所有输入设备
$ xinput listxinput list-props "设备名称"
显示与特定设备关联的属性
$ xinput list-props "DELL Touchpad"xinput set-prop "设备名称" "属性名称" <值>
通过设置属性修改设备行为
$ xinput set-prop "DELL Touchpad" "libinput Tapping Enabled" 1xinput enable/disable "设备名称"
启用或禁用设备
$ xinput disable "DELL Touchpad"验证安装
打开终端
访问您系统的命令行界面
检查版本
运行“xinput --version”以确认安装
列出设备
运行“xinput list”以查看它是否能检测到您的输入设备
兼容性注意事项
X 服务器版本
功能取决于您的服务器支持的 X Input Extension 版本
Wayland
xinput 在 Wayland 下功能有限,仅影响通过 XWayland 运行的应用程序
常见问题和解决方案
Microsoft XInput 不工作
- 通过设备管理器更新控制器驱动程序
- 检查 USB 端口或无线适配器连接
- 尝试不同的 USB 端口
- 检查 Windows 更新
- 使用其他游戏或应用程序进行测试
X.Org xinput 命令未找到
- 使用您的包管理器验证安装
- 注销并重新登录以更新 PATH
- 检查您是否正在运行 Wayland 而不是 X11
- 尝试使用 xinput 二进制文件的完整路径
xinput 设置在重启后重置
- 将您的 xinput 命令添加到启动脚本中
- 在 ~/.config/autostart/ 中创建一个 .desktop 文件
- 使用您的桌面环境的启动应用程序设置
常见问题
Microsoft XInput 和 X.Org xinput 有关系吗?
没有,它们是完全不同的技术,只是名称相似。Microsoft XInput 用于 Windows 上的游戏控制器,而 X.Org xinput 用于在类 Unix 系统上配置输入设备。
我可以在 Linux 上使用 Xbox 控制器吗?
是的,大多数现代 Linux 发行版都支持 Xbox 控制器。虽然 X.Org xinput 实用程序可以帮助配置某些方面,但对于游戏,您通常会依赖内核通过 joystick 和 evdev 子系统对游戏控制器的支持。
我需要在 Windows 上安装 XInput 吗?
不,XInput 功能已集成到 Windows 中。您只需要确保您的控制器安装了正确的驱动程序,这通常会自动发生。
如何修复我的控制器未被检测到的问题?
在 Windows 上,检查设备管理器是否存在驱动程序问题。在 Linux 上,使用 'lsusb' 来验证设备是否已连接,然后使用适合您环境的工具进行配置。
xinput 命令可以在 Linux 上永久生效吗?
是的,将您的 xinput 命令添加到启动脚本或创建一个 udev 规则以进行更永久的配置。