# Controller Compatibility Guide

Use the sidebar to navigate to locate your controller.&#x20;

### My Controller isn't listed

**There is a high chance it will work.** This page serves more of a troubleshooting purpose, so if your controller *doesn't* get detected, you can check here if there are any steps required to get it to work.

If your controller does not appear on this list or is shown to be working, check out the [controller issues page](https://docs.isxander.dev/controlify/users/controller-issues) for troubleshooting steps.

## Xbox Controllers

* [x] Vibration

### Wired

<table data-view="cards"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Windows</strong></td><td>✅ Works out of the box.</td><td></td></tr><tr><td><strong>macOS</strong></td><td><strong>✅</strong> Works out of the box.</td><td></td></tr><tr><td><strong>Linux</strong></td><td><strong>🟧</strong> Needs system drivers like <a href="https://github.com/paroj/xpad">xpad</a> or <a href="https://github.com/medusalix/xone">xone</a>.</td><td></td></tr></tbody></table>

### Bluetooth

<table data-view="cards"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Windows</strong></td><td><strong>✅</strong> Works out of the box.</td><td></td></tr><tr><td><strong>macOS</strong></td><td><strong>✅</strong> Works out of the box.</td><td></td></tr><tr><td><strong>Linux</strong></td><td><strong>🟧</strong> Needs system drivers like <a href="https://atar-axis.github.io/xpadneo/">xpadneo</a>.</td><td></td></tr></tbody></table>

### Xbox Wireless Adapter

<table data-view="cards"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Windows</strong></td><td><strong>✅</strong> Works out of the box.</td><td></td></tr><tr><td><strong>macOS</strong></td><td>❓ Untested.</td><td></td></tr><tr><td><strong>Linux</strong></td><td><strong>❓</strong> Untested.</td><td></td></tr></tbody></table>

## DualSense Controllers

* [x] Vibration
* [x] Gyroscope
* [x] HD Haptics - only wired
* [x] Touchpad
* [ ] Force feedback triggers

### Wired

<table data-view="cards"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Windows</strong></td><td><strong>✅</strong> Works out of the box.</td><td></td></tr><tr><td><strong>macOS</strong></td><td><strong>✅</strong> Works out of the box.</td><td></td></tr><tr><td><strong>Linux</strong></td><td><strong>❓</strong> Untested.</td><td></td></tr></tbody></table>

### Bluetooth

HD haptics are not supported over bluetooth due to bandwidth constraints.

<table data-view="cards"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Windows</strong></td><td><strong>✅</strong> Works out of the box.</td><td></td></tr><tr><td><strong>macOS</strong></td><td><strong>✅</strong> Works out of the box.</td><td></td></tr><tr><td><strong>Linux</strong></td><td><strong>❓</strong> Untested.</td><td></td></tr></tbody></table>

## Dualshock 4 Controllers

* [x] Vibration
* [x] Gyroscope
* [x] Touchpad

### Wired

<table data-view="cards"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Windows</strong></td><td><strong>✅</strong> Works out of the box.</td><td></td></tr><tr><td><strong>macOS</strong></td><td><strong>✅</strong> Works out of the box.</td><td></td></tr><tr><td><strong>Linux</strong></td><td><strong>❓</strong> Untested.</td><td></td></tr></tbody></table>

## Steam Deck

* [x] Vibration
* [x] Gyroscope
* [x] Back buttons
* [x] Touchpads

Starting with 2.0.0-beta.16, Controlify got proper Steam Deck support. You need to install [Decky Loader](https://decky.xyz/) to allow Controlify to use this enhanced Steam Deck driver.

## Stadia Controller

* [x] Vibration

### Wired

<table data-view="cards"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Windows</strong></td><td><strong>✅</strong> Works out of the box.</td><td></td></tr><tr><td><strong>macOS</strong></td><td><strong>✅</strong> Works out of the box.</td><td></td></tr><tr><td><strong>Linux</strong></td><td><strong>🟧</strong> <a href="#learn-how-to-make-sure-your-linux-kernel-supports-stadia-controllers">Requires up to date Linux Kernel</a></td><td></td></tr></tbody></table>

### Bluetooth

To get bluetooth, you need to [patch your controller's firmware](https://stadia.google.com/controller/index_en_GB.html) on Stadia's official website.

<table data-view="cards"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Windows</strong></td><td><strong>✅</strong> Works out of the box.</td><td></td></tr><tr><td><strong>macOS</strong></td><td><strong>✅</strong> Works out of the box.</td><td></td></tr><tr><td><strong>Linux</strong></td><td><strong>🟧</strong> <a href="#learn-how-to-make-sure-your-linux-kernel-supports-stadia-controllers">Requires up to date Linux Kernel</a></td><td></td></tr></tbody></table>

<details>

<summary>Learn how to make sure your Linux kernel supports Stadia controllers</summary>

Linux only got support for Stadia controllers starting kernel version 6.6. Any version below this is using the generic HID module.

On some systems, even having kernel version >=6.6 is not enough, you need to install optional HID drivers for Stadia rumble:

```bash
sudo apt install build-essential linux-source linux-headers-amd64 libncurses-dev
cd && mkdir kernel && cd kernel
tar xf /usr/src/linux-source-6.6.tar.xz
cd linux-source-6.6
cp /lib/modules/6.6.13-amd64/build/.config .
cp /lib/modules/6.6.13-amd64/build/Module.symvers .
make menuconfig # Select Stadia module in Device Drivers > HID bus support > Special HID drivers > Google Stadia force feedback
make scripts prepare modules_prepare
make M=drivers/hid
sudo cp drivers/hid/hid-google-stadiaff.ko /lib/modules/6.6.13-amd64/kernel/drivers/hid/
sudo depmod -a
sudo shutdown -r now # Not required but doesn't hurt
```

This example is specific for Kernel 6.6, use the latest version available at the time of writing. If you have done this correctly, when you connect it, you should see lines like this in `dmesg`:

```
stadia 0005:18D1:9400.0004: input,hidraw3: BLUETOOTH HID v1.00 Gamepad [Stadia9GZQ-56c4] on d4:3b:04:xx:xx:xx
stadia 0005:18D1:9400.0004: Force Feedback for Google Stadia controller
```

Please note that modifying the kernel is dangerous, and you should only attempt this if you know what you are doing. This method was provided by Imore3[37, described on a GitHub issue](https://github.com/isXander/Controlify/issues/224#issuecomment-1945675846) describing Stadia's incompatibility

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.isxander.dev/controlify/users/controller-compatibility-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
