User-mode driver, mapper and GTK3 based GUI for Steam Controller, DS4 and similar controllers.
- Allows to setup, configure and use Steam Controller(s) without ever launching Steam
- Supports profiles switchable in GUI or with controller button
- Stick, Pads and Gyroscope input
- Haptic Feedback and in-game Rumble support
- OSD, Menus, On-Screen Keyboard for desktop and in games.
- Automatic profile switching based on active window.
- Macros, button cycling, rapid fire, modeshift, mouse regions...
- Emulates Xbox360 controller, mouse, trackball and keyboard.
Based on Standalone Steam Controller Driver by Ynsta.
You can check out the ways to donate on my website, or just go straight to my Ko-Fi.
Donation links for kozec, who is the original developer, can be found on the old upstream repository.
Linux:
- Arch Linux: Found in AUR/sc-controller and AUR/sc-controller-git
- Ubuntu (22.04-jammy, 24.04-noble): Packaged as AppImage in GitHub releases, which may also run fine on other operating systems - jammy image is currently the most compatible one
- Gentoo: Packaged as game-util/sc-controller
- Void Linux: Packaged as sc-controller - Run
xbps-install -S sc-controller
in a terminal, points to archived Ryochan7's fork at the time of writing - Others: You can attempt to use one of the AppImages (try all, AppImages built on older distributions tend to work better), or a package meant for your parent distribution if applicable. Flatpak is planned.
Windows:
- It should be possible to get it running as per the upstream wiki, but this is untested and might be broken, report a bug if so
- Python 3.8+
- GTK 3.24+
- PyGObject
- python-gi-cairo and gir1.2-rsvg-2.0 on Debian-based distributions (included in PyGObject elsewhere)
- setuptools
- python-evdev
- python-pylibacl
- python-vdf
- python-libusb1
- python-ioctl-opt
- gtk-layer-shell
- Download and extract latest release
python3 setup.py build
python3 setup.py install
A test build with Docker can be created using the following way:
docker build -o build-output --build-arg BASE_CODENAME=noble .
- Download and extract latest release
- Navigate to extracted directory:
cd sc-controller
- If you do not wish to use system dependencies, you can setup a venv and install them there:
- Create the venv:
python -m venv venv
- Activate it, you will need to do this before each launch:
source venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
- Create the venv:
- Execute
./run.sh
- If you are debuggin an issue, running
./run.sh daemon
first will launch the daemon in debug mode, allowing you to launch sc-controller in another terminal with./run.sh