Use your Nintendo Switch 2 Pro Controller on PC as an Xbox 360 or DualShock 4 controller — with gyro, touchpad gestures and rumble.
English · Español · Português · Français · Deutsch · Italiano · 日本語 · 简体中文
Windows and most games don't understand the Switch 2 Pro Controller over USB: it doesn't even send input until it receives a special initialization sequence. Switch2Pad talks to the controller directly and turns it into a virtual Xbox 360 or DualShock 4 that every game, emulator and launcher already supports.
- 🎮 Xbox 360 or PS4 mode — switch at any time, even while playing.
- 🌀 Gyro & accelerometer (PS4 mode) — motion aiming in games and emulators that support DS4 motion.
- ✌️ Touchpad gestures, including two fingers — hold Capture and the sticks become fingers; D-pad for quick swipes; L3/R3 to click the left/right side of the pad.
- 🎯 Gyro aiming in any game — move the mouse or the right stick by moving the controller, even in Xbox mode (always on, while holding a button, or toggle).
- 🗂️ Per-game profiles that switch automatically with the game in the foreground.
- ⌨️ C-button shortcuts (switch Xbox/PS4, pause gyro, rumble strength, change profile) without leaving the game.
- 🔁 Turbo per button, rumble strength, stick response curves and axis inversion.
- 📳 Rumble forwarded from the game to the controller.
- 🧊 Live 3D controller that follows the real controller's gyro and lights up the buttons you press.
- 🚫 Priority over Steam — one click stops Steam from grabbing and remapping the controller.
- 🔧 Remap every button, A/B/X/Y by position or by letter, stick dead zone.
- 🪟 Native Windows 11 look (Mica, light/dark, accent color), system tray and start with Windows.
- 🌍 7 languages: English, Español, Português, Français, Deutsch, Italiano, 日本語.
- 🐧 Windows and Linux.
| Platform | File | Notes |
|---|---|---|
| Windows 10/11 | Switch2Pad.exe |
No installation. If ViGEmBus is missing, the app offers to install it. |
| Linux x86_64 | Switch2Pad-<version>-linux-x86_64.tar.gz |
Extract and run ./install.sh (adds a menu entry and the udev rules). |
- Plug the Switch 2 Pro Controller in with a USB-C cable.
- Open Switch2Pad and pick Xbox 360 or PS4 · DualShock 4.
- Play. Closing the window keeps it running in the system tray.
Using Steam? Open the Steam tab and click Give Switch2Pad priority so Steam stops taking over the controller (Steam restarts by itself; a backup of its config is kept).
| Touchpad gestures & background options | Button remapping |
|---|---|
![]() |
![]() |
| Priority over Steam | Light theme · Xbox mode |
![]() |
![]() |
| Gyro aiming | Per-game profiles |
![]() |
![]() |
| Translated UI (日本語) | System tray |
![]() |
![]() |
Hold the button assigned to the touchpad (Capture by default) and:
| Input | Touchpad action |
|---|---|
| Right / left stick | Finger 1 / finger 2 — move both for two-finger gestures (e.g. "MOVE CAR" in inFAMOUS Second Son) |
| D-pad | Quick swipe in that direction (hold ZL or ZR for a two-finger swipe) |
| L3 / R3 | Finger on the left / right side + click (both = two fingers + click) |
| Rotate the controller | Drag one finger with the gyro (optional) |
| Short tap of the button | Click |
While the touchpad button is held, the sticks and D-pad are not sent to the game.
Hold C (the Switch 2 chat button) and press:
| Button | Action |
|---|---|
| X | Switch between Xbox 360 and PS4 |
| Y | Enable / pause gyro aiming |
| ↑ / ↓ | More / less rumble |
| L / R | Previous / next profile |
Does it work with Bluetooth?
Not yet — USB only.Which mode should I use, Xbox or PS4?
Xbox 360 works with almost every PC game. Use PS4 when you want gyro/motion or the touchpad (PS4 emulators such as shadPS4, games with DS4 support, Steam).A game sees two controllers.
Hide the physical controller with HidHide, or enable priority over Steam if the second one comes from Steam Input.Does it need admin rights?
It runs as a normal user. Only installing ViGEmBus (Windows) or the udev rules (Linux) asks for admin rights, once.Which controllers are supported?
Switch 2 Pro Controller (tested). NSO GameCube controller: experimental. Joy-Con 2: not yet.pip install -r requirements.txt pyinstaller
python -m PyInstaller switch2pad.spec # Windows -> dist/Switch2Pad.exe
sh build_linux.sh # Linux -> dist/Switch2Pad-<version>-linux-x86_64.tar.gzRun without building: python -m switch2pad (or --cli for a console-only mode, --minimized to start in the tray).
Settings are stored in %APPDATA%\Switch2Pad\config.json (Windows) or ~/.config/switch2pad/config.json (Linux).
The controller is initialized over its USB bulk interface (protocol based on SDL's
SDL_hidapi_switch2.c), input reports are read from the HID interface and translated to a
virtual controller: ViGEmBus on Windows, uinput on Linux (devices identical to the
kernel's xpad / hid-playstation, so SDL, Steam and Proton recognize them). The 3D view is
rendered with OpenGL from the author's own controller model (assets/pro_controller.npz, generated by
tools/convert_model.py), with a software fallback.
Issues, ideas, translations and pull requests are welcome — see CONTRIBUTING.md. If Switch2Pad helps you, a ⭐ star helps other people find it.
MIT © Tomás González. The 3D controller model was made by the author.
Switch2Pad is an independent project and is not affiliated with or endorsed by Nintendo, Sony, Microsoft or Valve. Nintendo Switch, DualShock, Xbox and Steam are trademarks of their respective owners.







