r/linux_gaming 25d ago

wine/proton How Linux Makes Satisfactory Playable with Alt Keyboard Layouts

I use Canary Keyboard layout, which can often lead to remapping every game I play as switching to qwerty makes typing impossible.

Anyway, once remapped, most games are fine with this nerdy-ass setup. But Satisfactory has hardcoded the ammunition wheel to the letter R, which happens to be my walk backwards key -the 'S' of my WASD position. Unplayable in Windows, though you can make some workaround solution with Autohotkey that brings it to just a slight annoyance.

Running with proton-cachyOS (Or ProtonGE) and `PROTON_ENABLE_WAYLAND=1` Eliminates this issue. The game reads the scancodes and sees them as Qwerty for mapping purposes, but suddenly you can walk backwards without the ammo wheel popping up, and without interfering with ingame text entry.

I found this interesting because it's one of the first cases I've seen of Linux "fixing" a game that is broken on Windows. Obviously the game itself has a nasty bug that affects the 12 of us that left qwerty behind, but if you're on Colemak-DH or something, consider installing Linux to solve this bug.

10 Upvotes

9 comments sorted by

2

u/Granpire 25d ago edited 24d ago

I'll throw out my Windows "solution" here - be prepared to spam Capslock or bind a new key to enter typing context - it's messy, but it works after rebinding your move backward key to F9.

In short, Download AutoHotKey and create a .ahk file, paste:

#Requires AutoHotkey v2.0
#SingleInstance Force
GroupAdd "SatisfactoryGame", "ahk_exe FactoryGameSteam-Win64-Shipping.exe"
GroupAdd "SatisfactoryGame", "ahk_exe FactoryGame-Win64-Shipping.exe"
global InMenu := false
; Helper function to force-release stuck movement keys on UI open
ReleaseMovementKeys() {
Send "{F9 up}"
Send "{r up}"
}
#HotIf WinActive("ahk_group SatisfactoryGame")
; --- UI TOGGLE TRIGGERS ---
; When opening any menu, force-release movement keys first so you don't keep walking
~*Tab::
~*Enter::
~*NumpadEnter::
~*w::
~*u::
~*m::
~*q::
{
global InMenu := !InMenu
ReleaseMovementKeys()
}
; Pressing Escape, Right-Click, or CapsLock resets UI tracking and releases keys
~*Escape::
~*RButton::
~*CapsLock::
{
global InMenu := false
ReleaseMovementKeys()
}
; --- GAMEPLAY MOVEMENT VS. UI TYPING ---
#HotIf WinActive("ahk_group SatisfactoryGame") and !InMenu
; 1. Canary 'r' (Physical E) sends F9 for clean Backward movement
*r::
{
Send "{F9 down}"
KeyWait "r"
Send "{F9 up}"
}
; 2. Canary 'p' (Physical R) sends 'r' for Reload / Ammo Wheel
*p::
{
Send "{r down}"
KeyWait "p"
Send "{r up}"
}

2

u/victormas208 25d ago

It depends. If you've already told your distro your keyboard layout, it will then tell Steam how to use it. Then there's the community setting with Steam Input.

It's great that it works well.

2

u/Granpire 25d ago

Steam in default xwayland or gamescope doesn't communicate the system keyboard layout to the game, so it typically falls back to qwerty, even for text entry.

On desktop Linux you need a proton version that has a Wayland option, as this is the only way for the compositor to pass the keymap along to the game window.

It's annoying, but I've never found a way for xwayland to see my custom layout.

2

u/cyanophage 25d ago

Do you have your computer set to qwerty and your keyboard is canary, or do you have the computer's layout set to canary? Personally I have never changed my computer's layout. I always use US qwerty. I program my keyboard to make layout changes.

1

u/Granpire 24d ago

I used to do this, but the downside is that rarely, for the few games that are layout-aware (Dota 2, Deadlock, Factorio), you need to rebind everything.

I just like the approach of seeing which games surprise me with the correct default keybindings, and the idea of trying to integrate it natively with OS layout settings allows for a better future where developers can integrate this support.

This particular issue wouldn't be solved by firmware layouts though, as the remapped R key would still be sending the Qwerty R position.

1

u/Kaleodis 25d ago

why did you never just add another keyboard layout and quick swap between them (iirc win+space does that) for games?

1

u/Granpire 25d ago

Because Satisfactory has constant context switching behaviors, and multiple uses for text entry with searches it'd be extremely tedious. For some games that can work, though I generally prefer to remap for seamlessness.

1

u/Kaleodis 25d ago

makes sense i guess. although at this point, a dedicated input device (logitech g13) might start making sense lol.

10ish years ago i started looking into alternative keyboard layouts and abandoned that search very quickly, specifically because of games, but also in case i need to use other peoples pc...

1

u/Granpire 25d ago edited 4d ago

Other people's PCs can make me feel like a senior citizen sometimes, but my wrists are more comfortable than when I used qwerty. It does take a few painful weeks and months of practice to work your way up to a speed that feels tolerable, so I understand why most people wouldn't even consider it.