Gamepad Tester logo

Gamepad Tester

了解 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 APIX.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 正常工作的步骤

1
更新 Windows

保持您的 Windows 操作系统更新以确保您拥有最新的 XInput 支持

2
安装正确的驱动程序

对于官方 Xbox 控制器,Windows Update 通常会自动处理。对于其他控制器,您可能需要下载特定的驱动程序。

3
连接您的控制器

通过 USB 或无线适配器/蓝牙连接您的控制器

4
检查设备管理器

验证 Windows 是否正确识别您的控制器且没有错误

验证 XInput 是否工作

1
检查设备管理器

在“人体学输入设备”、“Xbox 外设”或“声音、视频和游戏控制器”下查找

2
使用游戏控制器设置

按 Win+R,输入 joy.cpl,然后按 Enter 打开游戏控制器面板

3
在游戏中测试

启动支持 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 xinput
Fedora、RHEL 8+、CentOS 8+
sudo dnf install xinput
RHEL 7、CentOS 7
sudo yum install xinput
Arch Linux、Manjaro
sudo pacman -Syu xorg-xinput

基本 xinput 命令

xinput list

显示 X 服务器识别的所有输入设备

$ xinput list

xinput list-props "设备名称"

显示与特定设备关联的属性

$ xinput list-props "DELL Touchpad"

xinput set-prop "设备名称" "属性名称" <值>

通过设置属性修改设备行为

$ xinput set-prop "DELL Touchpad" "libinput Tapping Enabled" 1

xinput enable/disable "设备名称"

启用或禁用设备

$ xinput disable "DELL Touchpad"

验证安装

1
打开终端

访问您系统的命令行界面

2
检查版本

运行“xinput --version”以确认安装

3
列出设备

运行“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 规则以进行更永久的配置。

其他资源