Skip to content

tmghd272/ps-aim-linux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PSVR Aim Driver Emulator for Linux

The first ever PSVR Aim Controller driver for Linux
Gyro · LED Sphere · Rumble · Full Input Support · Bluetooth

Ko-fi Linux Downloads License


Overview

PSVR Aim Driver Emulator brings full PSVR Aim Controller support to Linux. It emulates the controller as a DualShock 4, XInput gamepad, or mouse + keyboard — with working gyro, rumble, LED control, and optional PS3 Eye camera tracking for lightgun games. Supports both USB and Bluetooth. Runs as a systemd user service.

Proof of concept — this demonstrates that PSVR Aim is absolutely viable on Linux. PS Eye tracking is experimental and may have limitations due to the age of the hardware.


Features

  • DS4 Mode — Full DualShock 4 emulation with gyro/accel passthrough. Best for Steam and games with native PlayStation support.
  • Lightgun XInput Mode — Emulates an Xbox 360 controller via uinput. Gyro drives the right stick for aiming. Perfect for TeknoParrot and XInput lightgun games.
  • Lightgun RawInput Mode — Emulates a mouse + keyboard. R2 = left click, left stick = WASD, face buttons mapped to game keys. Great for MAME, Demul, and other emulators.
  • Gyro — The most anticipated feature. Full gyro exposure on Linux.
  • LED Control — Full RGB control of the controller's lightbar/sphere per mode.
  • Rumble / Recoil — Simulated recoil feedback with configurable intensity, duration, and rapid fire modes.
  • Bluetooth Support — Works over both USB and Bluetooth.
  • PS Eye Tracking (Experimental) — Native V4L2-based PS3 Eye tracker with no external dependencies.
  • Systemd Integration — Runs as a user service, auto-starts on login, survives disconnects.

Gameplay Preview

Gameplay Preview


Prerequisites

  • Linux (x64) — tested on CachyOS / Arch
  • Rust (stable) — to build from source
  • uinput kernel module — usually loaded by default
  • hidraw access — user must be in the input group or have udev rules
  • PS3 Eye Camera (optional — PS Eye Tracking only) — uses native V4L2, no extra drivers needed

Installation

From Source

git clone https://github.com/tmghd272/ps-aim-linux.git
cd ps-aim-linux
bash install.sh

The install script builds the binary, installs it to /usr/local/bin/, and sets up the systemd user service.

GUI (Optional)

Once the driver is installed, download the latest PSVR Aim Driver Emulator.AppImage from the Releases page for a graphical interface to switch modes and tune settings.

⚠️ The AppImage is UI only — the driver must be installed first via install.sh.

chmod +x "PSVR Aim Driver Emulator.AppImage"
./"PSVR Aim Driver Emulator.AppImage"

Connecting the Controller

USB — Simply plug in your PSVR Aim Controller.

Bluetooth — Hold PS Button + Share simultaneously until the light sphere starts rapidly blinking, then pair from your system Bluetooth settings.


Usage

CLI

ps-aim-linux --help
ps-aim-linux --ds4              # Switch to DS4 mode
ps-aim-linux --lightgun         # Switch to XInput lightgun mode
ps-aim-linux --lightgun-raw     # Switch to mouse + keyboard mode
ps-aim-linux --lightgun --pseye # XInput + PS Eye tracking

Mode switches save to config and automatically restart the service.

GUI

Launch PSVR Aim Driver Emulator (AppImage in releases). Select your mode and click Start — or double-click a mode card to apply immediately.

Service Management

systemctl --user start ps-aim-linux
systemctl --user stop ps-aim-linux
systemctl --user restart ps-aim-linux
systemctl --user status ps-aim-linux

Mode Comparison

Mode Best For Input Tester
DS4 Steam, PC, PS Remote Play, emulators Gamepad Tester
Lightgun XInput TeknoParrot, MAME, Demul, emulators Gamepad Tester
Lightgun RawInput MAME, Demul, emulators System cursor

Troubleshooting

Games not detecting input, rumble, gyro, or LED sphere: Add the game as a Non-Steam game and launch it through Steam. Steam's input layer improves compatibility with emulated devices.

PSVR Aim disconnecting in Bluetooth mode: Forget the Bluetooth pairing and re-pair. Hold PS + Share again to put the controller back into pairing mode.

Controller not detected / permission denied: Make sure your user is in the input group: sudo usermod -aG input $USER then log out and back in.

Tunings behaving unexpectedly: Click Reset Defaults (top right of the Test & Tuning tab) to restore all sliders to their original values.


Controller Input Map

DS4 Mode

PSVR Aim Output
Left Stick Left Stick
Right Stick Right Stick
Gyro / Accel DS4 Gyro / Accel
Cross / Circle / Square / Triangle Cross / Circle / Square / Triangle
L1 / R1 / L2 / R2 L1 / R1 / L2 / R2
Share / Options Share / Options
PS Button PS Button
Touchpad Click Touchpad Click
DPad DPad

Lightgun XInput Mode

PSVR Aim Output
Gyro Right Stick (aim)
Left Stick Left Stick
R2 Right Trigger
Cross / Circle / Square / Triangle A / B / X / Y
L1 / R1 LB / RB
Share / Options Back / Start
DPad DPad
Right Stick Click Recalibrate gyro center
Pad Button (tap) Cycle recoil mode
Pad Button (hold 5s) Pause all input

Lightgun RawInput Mode

PSVR Aim Output
Gyro / PS Eye Mouse cursor
R2 Left Click
Left Stick WASD
Cross Space
Circle Left Ctrl
Square R
Triangle E
L1 Left Shift
R1 Q
Share Backspace
Options Enter
PS Button Escape
DPad Arrow Keys

PS Eye Tracking (Experimental)

The PS3 Eye camera is tracked natively via V4L2 — no OpenCV or extra drivers required. The tracker detects the colored LED sphere and broadcasts its position over a local TCP socket.

⚠️ Due to the age of the hardware, tracking accuracy may vary. Ensure good lighting and a distinct sphere color.

  1. Enable PS Eye Tracking in the UI or pass --pseye on the CLI
  2. To calibrate: hold Right Stick for ~1 second, then point at each screen corner and pull the trigger when prompted
  3. The tracker uses /dev/video0 by default — override with --pseye-dev=/dev/videoN

Building from Source

Requirements

Build

bash install.sh          # builds driver + installs service
cd ui && npm install && npm run build   # builds AppImage UI

Support

If you find this project useful, please support me via Ko-fi!

Ko-fi


License

MIT — see LICENSE


Made with ❤️ by TMGHD272

Releases

Packages

Contributors

Languages