Linux Support - Limited › Gamepad

Star Citizen · Linux · Bazzite

Xbox and PS5 controllers on Linux

An Xbox controller or a PS5 DualSense is the easiest way to fly on Linux: Bazzite ships the drivers. This page takes you from a fresh install to flying with our gamepad profile.

gamepadBazziteLUG Helper v4.17

Xbox Wireless Controller and PS5 DualSense

At a glance

What this setup involves

Linux talks to it throughWine gamepad (XInput)
USB IDs to look forvaries by model
How the game should see itGamepad 1
Our profilelayout_AbsoluteGaming_Gamepad.xml · same file as the Windows kit
Extra Linux setupNone for most pads (Step 3 covers pairing)

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.

  1. 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

  1. Xbox controller

    USB cable: plug in and go. Xbox Wireless Adapter: Bazzite ships the driver for it; plug the adapter in, press its pair button, then hold the controller’s Pair button. Bluetooth (Series X|S, Elite Series 2, One model 1708): hold the Pair button until the Xbox button flashes, then pair it in System Settings › Bluetooth.

  2. PS5 DualSense

    USB-C cable: plug in and go. Bluetooth: with the controller off, hold Create + PS for about 3 seconds until the light bar flashes, then pair it in System Settings › Bluetooth. The Linux kernel has its own DualSense driver, so there is nothing to install.

  3. Make sure Steam isn’t grabbing it

    Star Citizen isn’t a Steam game. If you added it to Steam as a non-Steam game and start it from there, Steam Input can sit between the pad and the game. Start the game from the RSI Launcher in your app menu for the first test.

Step 3

Gamepad settings in Wine

Most pads work as soon as Wine sees them. Only change these if Step 4 shows a problem.

  1. If buttons won’t bind

    The LUG’s fix for gamepads that only half work (they move, but you can’t bind buttons): in Wine’s controller configuration, under Advanced settings, tick Disable hidraw. Then restart the game.

  2. If the cursor disappears in interaction mode

    Create a text file named USER.cfg in your LIVE folder (~/Games/star-citizen/drive_c/Program Files/Roberts Space Industries/StarCitizen/LIVE) with this line:

    pl_pit.forceSoftwareCursor = 1

Step 4

Check it in Wine

  1. 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.

  2. Check the pad is listed and responds

    The controller should be listed and respond in the test view: both sticks, both triggers, every button. If it moves but buttons misbehave in the game, use the Disable hidraw fix from Step 3.

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.

Paste this into a terminal (Konsole)
Then in the game, open the console with ~ and run

Prefer to do it by hand? Download layout_AbsoluteGaming_Gamepad.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

  1. Load the profile

    Start the game, open the console with ~ and run pp_rebindkeys layout_AbsoluteGaming_Gamepad (no .xml). Or use Options › Keybindings › Advanced Controls Customization › Control Profiles.

  2. Check the device order

    The profile sets the gamepad only; keyboard and mouse keep working alongside it.

  3. 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.

Gamepad flight map

Flight layout, with LB (L1) held for the second set.

Gamepad on-foot map

On-foot layout.

Step 7

Good to know for the Gamepad

  • LB (L1) does almost nothing alone. That is on purpose: Star Citizen uses it as a modifier. Hold it and the other buttons do a second job.
  • Yaw and roll. Click the right stick (R3) in a ship to swap yaw and roll between the sticks.

Troubleshooting

If something’s not right

  • A device is missing in the game? Check it shows in Wine’s controller configuration. Try USB instead of Bluetooth to rule out pairing.
  • 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).