My setup for playing FFXIV on Linux
Originally published on 15 January 2026, last updated on 16 January 2026.
One of my hobbies is playing the critically acclaimed MMORPG Final Fantasy XIV, with an expanded free trial which you can play through the entirety of A Realm Reborn and the award-winning Heavensward expansion up to level 60 for free with no restrictions on playtime.
I also switched from Windows to Linux again on my personal computer in late 2025, and so I've spent some time getting it to work the way I want. This page serves as documentation of the current state of my setup, both for me to refer to later if I need to, as well as to help anyone else working to set it up too.
Note that this is not meant as a tutorial, mostly because I don't really understand all the underlying systems well enough myself to say with any authority "this is what you should do, and how you should do it".
Here's the summary of my setup/requirements I have:
- Fedora 43
- Ultrawide monitor (21:9, 3440×1440)
- HDR monitor
- NVIDIA graphics card
- Azeron Cyborg II controller
- I want to be able to record gameplay with OBS
- I do not have a Steam service account (I did not buy the game through Steam)
Table of Contents
- System Configuration
- Launcher
- Azeron Cyborg II Configuration
- OBS Recording
- HDR with RenoDX
- Known Issues
- Fixed Issues
System Configuration
I have the following relevant system packages installed:
-
input-remapper- Used to make my Azeron Cyborg II behave the way I want -
obs-studio-plugin-vkcapture- Used to let OBS do a "game capture" of my game -
VK_hdr_layer- Was required to get HDR rendering to work correctly for me
Launcher
XIVLauncher is probably the most common
custom FFXIV launcher, and the one I use and would recommend for any player
wanting to run FFXIV on Linux. I specifically run RankynBass' fork, commonly known as XIVLauncher-RB. I've installed this using the install-local.sh experimental script in this repository, which installs XIVLauncher using XLM.
At the moment I'm using version 1.3.1.1-beta3, by modifying ~/.local/share/xivlauncher-rb/start.sh to contain the following:
#!/bin/bash VERSION="rb-v1.3.1.1-beta2" ~/.local/share/xivlauncher-rb/xlm launch \ --xlcore-web-release-url-base "https://github.com/rankynbass/XIVLauncher.Core/releases/download/$VERSION/" \ --install-directory ~/.local/share/xivlauncher-rb/xlcore
And yes, I know it says -beta2 in the code, but it looks like
1.3.1.1-beta3 was accidentally pushed to the 1.3.1.1-beta2 tag. Once a non-beta 1.3 version has been released, I'll probably replace
the --xlcore-web-release-url-base "…" attribute back to --xlcore-repo-owner rankynbass to get auto-updates working again.
In the launcher, I have the following (non-default) configuration:
Launcher Configuration - Game
- Additional Game Arguments:
PROTON_ENABLE_WAYLAND=1 ENABLE_HDR_WSI=1 PROTON_ENABLE_HDR=1 PROTON_USE_NTSYNC=1 OBS_VKCAPTURE=1 %command%-
PROTON_ENABLE_WAYLAND=1- Use the Wayland driver, which seems to be required for HDR to function. -
ENABLE_HDR_WSI=1- Enable the Vulkan HDR WSI layer (which I believe is what theVK_hdr_layerpackage provides). -
PROTON_ENABLE_HDR=1- Also seems to be required to get HDR to work with Proton. -
PROTON_USE_NTSYNC=1- To be honest, I fully cargo-culted this off someone else's config. This might be a CachyOS thing, and the toggle in the launcher itself for NTSync might be sufficient, but I'm not entirely sure how to verify if NTSync is working properly in-game. -
OBS_VKCAPTURE=1- Used to enable the vkcapture plugin to make the "Game Capture" source in OBS work for OBS recording.
-
Launcher Configuration - WINE
- WINE Install: Managed Proton - I'm using using Proton as it fixed an issue with stuck mouse buttons for me.
- Proton Version: GE-Proton 10-27 - I haven't experimented much with this, I just picked the latest GE-Proton available when I switched to Proton, and as I haven't had issues with it yet, I haven't tried any other versions.
- Umu Launcher: System - I think this might be the default?
- Enable Feral's GameMode, ESync, FSync, NTSync: NTSync enabled, all other disabled - It's my understanding that NTSync is the best option for the different "-sync" options, if you have a kernel that supports it. Feral's GameMode is off by default, and from what I've read in the XIVLauncher & Dalamud Discord, it's not really recommended or required on modern kernels.
- Enable Wayland Driver: Disabled - I'm using
PROTON_ENABLE_WAYLAND=1in the game arguments instead, although it's possible I can switch to this option, I need to investigate more. - Set Windows version to 7: Disabled.
Azeron Cyborg II Configuration
I use an Azeron Cyborg II keypad as my controller of choice, together with keyboard for chat and a mouse for camera movement. My current keyboard is a Steelseries Apex Pro US without any particularly interesting configuration, and my mouse is a Logitech G502 Hero with the thumb buttons mapped to Ctrl and Shift (I believe I did this in the Windows configuration software and set them up as saved-on-hardware bindings).
For the Azeron Cyborg II itself, I use input-remapper. Using their Windows software (on Windows, I don't believe it works with WINE, at least I couldn't get it to work), I bound each of the buttons to a joystick button ("JOY #1" through "JOY #26"), the exact joystick button you choose doesn't really matter as we'll remap them all in input-remapper. The joystick is mapped as an analog joystick, and the "hat" is mapped to the dpad buttons. The bindings I used look something like this:
In input-remapper, I then created a profile for FFXIV (which I currently have set to always-active, since I don't currently use this controller for any other games), and map each button to a keyboard button, ending up with a keymap looking like this:
And for reference, here's what those are actually bound to in-game:
- 0-9, - and = together with Ctrl and Shift on my mouse thumb buttons are bound to hotbars 1–3.
- M - Shortcuts > Maps
- ] - Shortcuts > Character
- U - Shortcuts > Duty Finder
- I - Shortcuts > Inventory
- Shift + F - Targeting > Set Focus Target
- Tab - Targeting > Cycle through Enemies (Nearest to Farthest)
- Shift + Tab - Targeting > Target Nearest Enemy
- Z - Movement > Draw/Sheathe Weapon
- B - System > Confirm
- Space - Movement > Jump
- H - General Actions > Mount Roulette (via hidden shared hotbar)
- F - General Actions > Sprint (via hidden shared hotbar)
- X - General Actions > Limit Break (via hidden shared hotbar)
- C - Bound to a hidden hotbar, but nothing currently on it. Used to be current potion/tincture, but I kept pressing it accidentally, so I removed it.
I tried using Noreza, but as it didn't "mask" the joystick buttons in game (i.e. if I press the button mapped to "JOY #1", that ended up being received by the game as pressing the "Accept" joystick button (A on an Xbox controller, X on a PS controller, etc.)). The UI is definitely a bit nicer, so I might revisit this in the future if that gets fixed, or I find a workaround.
OBS Recording
I've installed OBS through the Fedora system package (not through
Flatpak), and I've installed the vkcapture plugin as well. Together with
setting OBS_VKCAPTURE=1 in the additional game arguments as detailed
above, this makes the "Game Capture" source in OBS pretty much just work, although
I'm currently having an issue getting it to capture colours correctly when HDR
is enabled, as detailed below.
HDR with RenoDX
I used the FFXIV RenoDX mod on Windows in order to get a better HDR implementation in game, and so I wanted
to get that working on Linux as well. This ended up being relatively easy to
set up, using the reshade-steam-proton script to install Reshade, by running it as RESHADE_ADDON_SUPPORT=1 ./reshade-linux.sh, and pointing it to ~/.xlcore/ffxiv/game as the game path. There's
no need to set up WINEDLLOVERRIDES unlike what the script says,
but you need to copy ~/.xlcore/ffxiv/game/d3dcompiler_47.dll to
~/.xlcore/protonprefix/drive_c/windows/system32 (or ~/.xlcore/wineprefix/drive_c/windows/system32/ if you're using WINE). Remember to also put the renodx-ffxiv.addon64 file in ~/.xlcore/ffxiv/game, and things should work with
the settings I outlined above.
The main things I found I needed to do to get HDR to work, though (at least with KDE Plasma), in case you haven't copied my setup exactly:
- Enable HDR for your display in System Settings
- Install
VK_hdr_layer(a system package on Fedora) -
Set
PROTON_ENABLE_WAYLAND=1 ENABLE_HDR_WSI=1 PROTON_ENABLE_HDR=1in the additional game arguments in XIVLauncher.
Known Issues
Not everything is working exactly the way I want it right now, here is a list of the things I haven't quite been able to fix yet. If you know of a way to fix this, please do get in touch!
HDR Recording in OBS
The OBS recording setup worked perfectly until I enabled HDR, now the colours are all messed up in the recordings, as I feel like is often the case when enabling HDR.
I tried setting my Colour Format and Colour Space (in Settings > Advanced) to P010 and Rec. 2100 (PQ), which I think was all I needed to get HDR recording to work on Windows, and while the output file is now an HDR file, the colours and exposure seems all wrong.
I suspect my issue might be the same as this one, which seems to be that the colour space is not detected properly by obs-vkcapture?
Fixed Issues
Here are a list of specific issues I had, and how I fixed them. There are mostly things that were (or would've been) "known issues" in the past, included here in case anyone else has similar issues.
Stuck Mouse Button
I primarily use the right mouse button to move the camera. I used to have issues where the right mouse button would get "stuck", i.e. when I let go of the mouse button, the game would treat it as if I still held down the mouse button, and the camera would still move, until I press the button again.
Several people in the XIVLauncher & Dalamud Discord said that this was a WINE issue, and suggested switching to Proton, and after doing that I no longer had this issue. I've also seen people claim that enabling the in-game setting to restrict the cursor to the game window fixes this too, but as I have multiple monitors and regularly move the cursor from the game to other monitors, this wouldn't really work all that well for me and is not something I tried.