Linux Support - Limited › G PRO Yoke
Star Citizen · Linux · Bazzite
Logitech G PRO Flight Yoke System on Linux
The yoke and its throttle quadrant show up as one controller through Linux’s standard joystick driver. This page takes you from a fresh Bazzite install to flying with our yoke profile.
evdevBazziteLUG Helper v4.17
At a glance
What this setup involves
| Linux talks to it through | Standard Linux joystick driver (evdev) |
|---|---|
| USB IDs to look for | 06a3:0bac (yoke with its quadrant) |
| How the game should see it | Joystick 1 = yoke (the quadrant comes through the yoke) |
| Our profile | layout_AbsoluteGaming_GProYoke.xml · same file as the Windows kit |
| Extra Linux setup | None required; optional deadzone fix in Step 3 |
Step 1
Install Star Citizen with the LUG Helper
Do this once for any controller. The full walkthrough on our Linux Support page goes screen by screen; here is the checklist.
-
Done these?
- LUG Helper AppImage downloaded and allowed to run (how).
- Preflight Check (System Optimization) passes.
- Install Star Citizen Launcher finished, with the default prefix
~/Games/star-citizen. - The game is installed from the RSI Launcher at its default path, and starts.
Step 2
Plug it in and make sure Linux sees it
-
Plug it straight into the PC
Use a USB port on the PC itself rather than an unpowered hub. One USB cable carries the yoke and its quadrant.
-
Confirm Linux sees it
Open a terminal and run:
lsusb | grep -iE '06a3:0bac'
You should get one line per device:
06a3:0bac= yoke with its quadrant. Nothing printed? Try another USB port and cable before going further.
Step 3
Nothing to install (one optional tweak)
Logitech devices work through Linux’s standard joystick driver. You can go straight to Step 4.
-
Optional: remove Linux’s extra deadzone
Linux’s joystick driver adds a small center deadzone and anti-jitter smoothing on top of the hardware. Most pilots never notice. If the throttle “hitches” in the middle or the stick won’t settle exactly on center, the LUG’s fix is a udev rule that runs
evdev-joystick. On Bazzite that tool isn’t installed, so this is the advanced route: layer thelinuxconsoletoolspackage and reboot, then create the rule.rpm-ostree install linuxconsoletools systemctl reboot
After the reboot, save this as
/etc/udev/rules.d/99-evdev-joystick.rules(for example withsudo nano), then unplug and replug:# Custom Joystick Udev Rules (Logitech G PRO Flight Yoke System) ACTION=="add", SUBSYSTEM=="input", KERNEL=="event*", \ ENV{ID_VENDOR_ID}=="06a3", ENV{ID_MODEL_ID}=="0bac", \ RUN+="/usr/bin/evdev-joystick --e %E{DEVNAME} --d 0 --f 0"Bazzite’s own advice is to layer packages only when you need to; skip this if your controls feel fine.
Step 4
Check it in Wine
-
Open Wine’s controller configuration
In the LUG Helper choose Maintenance and Troubleshooting › Open Wine controller configuration. This is Wine’s version of Windows’ joy.cpl, running inside your game’s Wine prefix.
-
Make sure it’s a joystick, not xinput
The yoke should be listed. If one shows as Connected (xinput), select it and click Override so it is treated as a dinput joystick, as the LUG recommends. Missing entirely? Unplug, replug and reopen the window.
-
Test every axis and button
Use the window’s test view: move every axis through its full range and press each button. Pull each quadrant lever past its detent and turn the mode selector to see which button numbers they report; Logitech doesn’t publish those, so our profile leaves them free for you.
Step 5
Install our profile into the game
These lines create Star Citizen’s mappings folder inside your Wine prefix if it’s missing and download our profile straight into it. Change the prefix if you didn’t use the default. Built your own profile with the generator? Copy that file into the same folder instead.
~ and run
Prefer to do it by hand? Download layout_AbsoluteGaming_GProYoke.xml and copy it into ~/Games/star-citizen/drive_c/Program Files/Roberts Space Industries/StarCitizen/LIVE/user/client/0/controls/mappings.
Step 6
Load it and check it in the game
-
Load the profile
Start the game, open the console with
~and runpp_rebindkeys layout_AbsoluteGaming_GProYoke(no.xml). Or use Options › Keybindings › Advanced Controls Customization › Control Profiles. -
Check the device order
Only one device, so order can’t go wrong. If you also have rudder pedals or another stick plugged in, the yoke must be joystick 1.
-
Check the directions
Our profile carries the same axis inverts as on Windows, but Wine can report a device under a slightly different name, and then those settings don’t attach. If an axis comes out backwards, go to Options › Keybindings, pick the joystick, open Inversion Settings and flip it there.
-
Fly a test circuit
In the hangar or on a pad: power on, flight ready, lift off, every main axis, fire, landing gear, then quantum mode. Compare with the control map below. Anything off? Rebind it in the game or fix it in the form and regenerate.
Yoke and quadrant: every button and lever.
Setup page.
Step 7
Good to know for the G PRO Yoke
- Yaw. A yoke has no twist, so yaw is on the lower right-hand rocker (T5/T6). Rudder pedals are the comfortable answer.
- Quadrant does nothing. Check the round PS/2 cable between quadrant and yoke. If the yoke works in Wine’s controller test but the levers don’t move, it’s that cable or its socket.
- Separate USB quadrant. A quadrant bought on its own is a second controller, not part of the yoke. Bind it in the game.
- NAV mode. Yoke rocker T2 (button 4) switches between SCM and NAV.
Troubleshooting
If something’s not right
- A device is missing in the game? Thrustmaster: redo Step 3 and check the rule file and Wine version. Anything else: in Wine’s controller configuration, select it and click Override (dinput).
- An axis does nothing? Check the game hasn’t set that axis’s deadzone to 100% under Options › Keybindings.
- Everything broke after a game or Wine update? Check the LUG wiki news first; fixes usually land there.
- Still stuck? Use the LUG Helper’s Maintenance and Troubleshooting › Show logs, then ask in the LUG’s channels (game on Linux) or on our Discord (our profiles).