Controller Compatibility Guide

Information about all known controllers and their compatibility with Controlify.

Use the sidebar to navigate to locate your controller.

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 for troubleshooting steps.

Xbox Controllers



Xbox Wireless Adapter

DualSense Controllers



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

Dualshock 4 Controllers


Steam Deck

Steam Deck works out of the box, but the back-buttons are not programmable through Controlify. They must be emulated as keyboard input through Steam Input, much like the gyroscope.

To use both emulated key presses and normal controller input, ensure Mixed Input (found in Advanced category) is enabled.

Stadia Controller



To get bluetooth, you need to patch your controller's firmware on Stadia's official website.

Learn how to make sure your Linux kernel supports Stadia controllers

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:

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 Imore337, described on a GitHub issue describing Stadia's incompatibility

Last updated