Linux Support - Limited › X56

Star Citizen · Linux · Bazzite

Logitech X56 HOTAS on Linux

Logitech’s twin-unit HOTAS works through Linux’s standard joystick driver: nothing to install. This page takes you from a fresh Bazzite install to flying with our X56 profile.

evdevBazziteLUG Helper v4.17

Logitech X56 HOTAS stick and throttle

At a glance

What this setup involves

Linux talks to it throughStandard Linux joystick driver (evdev)
USB IDs to look for0738:2221 (stick), 0738:a221 (throttle)
How the game should see itJoystick 1 = stick, joystick 2 = throttle
Our profilelayout_AbsoluteGaming_X56.xml · same file as the Windows kit
Extra Linux setupNone 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.

  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. Plug it straight into the PC

    Use a USB port on the PC itself rather than an unpowered hub. Two devices means two cables: plug in both.

  2. Confirm Linux sees it

    Open a terminal and run:

    lsusb | grep -iE '0738:2221|0738:a221'

    You should get one line per device: 0738:2221 = stick, 0738:a221 = throttle. 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.

  1. 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 the linuxconsoletools package 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 with sudo nano), then unplug and replug:

    # Custom Joystick Udev Rules (Logitech X56 HOTAS)
    ACTION=="add", SUBSYSTEM=="input", KERNEL=="event*", \
      ENV{ID_VENDOR_ID}=="0738", ENV{ID_MODEL_ID}=="2221", \
      RUN+="/usr/bin/evdev-joystick --e %E{DEVNAME} --d 0 --f 0"
    ACTION=="add", SUBSYSTEM=="input", KERNEL=="event*", \
      ENV{ID_VENDOR_ID}=="0738", ENV{ID_MODEL_ID}=="a221", \
      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

  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. Make sure it’s a joystick, not xinput

    Both units 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.

  3. Test every axis and button

    Use the window’s test view: move every axis through its full range and press each button. Flip the throttle’s mode switch (M1, M2, S1) and watch the button numbers change, exactly as on Windows. Leave it on M1 for our profile.

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

Devices the wrong way round? Run pp_resortdevices joystick 1 2 in the console, then run the pp_rebindkeys line again.

Prefer to do it by hand? Download layout_AbsoluteGaming_X56.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_X56 (no .xml). Or use Options › Keybindings › Advanced Controls Customization › Control Profiles.

  2. Check the device order

    Take off and push the stick forward: the nose should pitch down. If the throttle moves your nose instead, the units are swapped: run pp_resortdevices joystick 1 2, then the pp_rebindkeys line again.

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

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

X56 stick page of the control map

Stick: flight and weapons.

X56 throttle page of the control map

Throttle: power, systems and modes.

Step 7

Good to know for the X56

  • The mode switch. One of M1, M2 and S1 is always held, so our profile leaves it unbound. It also changes which buttons the throttle reports: keep it on M1.
  • Knobs and the speed limiter. The throttle knobs are unbound on purpose: a knob bound to the speed limiter and turned down caps your ship near zero.
  • NAV mode. Hold SW3 (throttle button 8) to switch to NAV mode for full speed.
  • No Logitech software. Logitech’s X56 software is Windows-only. You don’t need it to fly; you only lose its RGB and curve settings.
  • Community mappings. The LUG lists X56 mappings maintained by PaladinTitus if you want a second opinion on layout.

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