New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SteamOS connected keyboard ignores settings #798
Comments
Same problem Steam Deck with Logitech Mx Keys Mini Bluetooth. In KDE, works, in SteamOS it does not respect keyboard layout. Issue has been reported in SteamOS in 2017 and your release today a device carrying the same problem. Valve Time |
I could not find the issue from 2017, what issue number is it? |
If you search SteamOS keyboard layout you will find a number of reports https://steamcommunity.com/groups/steamuniverse/discussions/1/1496741765143025641/ The issues are clearly connected imo because the users are reporting the exact same behavior we notice, works in Desktop mode, fail in SteamOS to en_US and i think it has nothing to do with the distribution but SteamOS (Steam with steamos launcher arguments) I'm even more disappointed when I see the upcoming SteamOS 3.3 changelog not even mentioning a thing about it @kisak-valve whats happening with this issue ? Edit: Yet I found a workaround which is to run the gaming mode from command line, but it is not perfect because it does not closes the KDE session, ideally gaming mode is exclusive full screen, without an opened KDE session and with the correct desktop layout |
If you need to tinker and possibly find a better workaround you could open Steam Gaming mode Windowed by running ´´´ I will let you know if I find anything better |
Thank for the workaround and linking the original issue. Seems they are somewhat related. More testing is required to figure out why the keyboard is not set correctly, but I have the suspicion that it is only set in the KDE session and not as a system setting. This would result in it only being used when Steam is launched from the session. |
Hey Made some advance on the subject. I think the connected issue is ValveSoftware/gamescope#203 But I advise you, your Steam Deck may fail to boot IIf you want to give a try, I posted here instructions on how to recover from this boot failure I think because gamescope initiate the session with teh keyboard to US, ours is too in gaming mode because the gaming mode layout is respected when lanched windowed in a kde session, must be at the level of gamescope running outside a desktop session at the boot, it is the very first process to initiate the gaming mode session :) |
So this is basically what I figured but did not want to test on the Deck itself. I had a similar issue on Arch a while back where the login manager did not use my set keyboard layout. I figured it is only loaded after session starts. (In this case the kde session) |
OK, so after knowing how to recover without to much hassle I did some testing. Here are some results:
But what does work is XKB_DEFAULT_LAYOUT=de
XKB_DEFAULT_VARIANT=neo This will set the keyboard layout for gaming and desktop mode. Although desktop mode should get set by KDE's settings with a higher priority. Available values can be found with:
For more info see the ArchWiki I have not tested the following, but it should work. To configure multiple layouts: XKB_DEFAULT_LAYOUT=de,de,en
XKB_DEFAULT_VARIANT=neo,,us TL;DRIt is possible to set the Keyboard layout for connected keyboards in This issue is thereby now semi resolved. |
Yes my initial error was wlserver: Running compositor on wayland display gamescope-0
wlserver: [backend/headless/backend.c:18] Starting headless backend
xkbcommon: ERROR: Couldnt process include statement for fr(fr)
xkbcommon: ERROR: Abandoning symbols file (unnamed)
xkbcommon: ERROR: Failed to compile xkb_symbols
xkbcommon: ERROR: Failed to compile keymap
Segmentation fault (core dumped) To test the layout/variants without risking to crash gamescope I'm running the following command in a KDE session XKBLAYOUT=fr XKBVARIANT=azerty XKB_DEFAULT_LAYOUT=fr XKB_DEFAULT_VARIANT=azerty gamescope --generate-drm-mode fixed --xwayland-count 2 -w 1280 -h 800 --default-touch-mode 4 --hide-cursor-delay 3000 --max-scale 2 --fade-out-duration 200 -e -R /run/user/1000/gamescope.G596Hrd/startup.socket -T /run/user/1000/gamescope.G596Hrd/stats.pipe -O *,eDP-1 --cursor-hotspot 5,3 --cursor /usr/share/steamos/steamos-cursor.png But yeah I think the only place we could inject env variable to gamescope is This is great, it looks like to work now as intended :) PS : I set |
Hey @KS-HTK Have you searched about enabling wake up on Bluetooth ? I searched around but unfortunately, enabling wake on Bluetooth on the system has not the expected behavior; the Steam Deck automatically wakes up after a suspend haha :D I'm digging into this actually and I believe it requires a few udev rules to ignore some events and has you are experienced we can maybe find something together I know this is requested by a few users but currently no solution is found;, well I will dig into I think because I also need this so I leave here my steam if you want to communicate here and not be off topic in the ticket : class101 :) |
Just wanted to say this fixed it for me as well, this really needs to be documented, or automated. |
Hey, I have the same problem. However, I do not know at all, with such commands, Linux or anything else. But I would also like to use the German keyboard layout ingame. |
Im sorry to say that i think its still bugged. What every other post here is missing btw, is that you first have to go to desktop mode, and to
and add the layout that you want (in yours and mine its de german). Else the settings in the environment seem to have no effect. If you then add these lines in etc/environment, you can reboot your device and as long as you're in desktopmode, you will have the de layout (so QWERTZ instead of QWERTY). BUT in gaming mode that layout changed for me to "XLCWK"-layout. So, whatever that is, its not useable. |
By deduction, we knows gamescope reads from Ideally , get ride of the environment file in the formula and set the variables before calling gamescope on command line, I showed a few examples in the previous posts if I remember A mistake in the environment file can make your system unbootable |
@class101 i notice changes. :-) Ninjaedit: i saw in your posts that you added and then XKB_DEFAULT_LAYOUT=fr XKB_DEFAULT_VARIANT=azerty but to what seems to be a bash-command? Maybe i should try these too... |
@eponra I can´t finde the etc/environment. I searched for it in Dolphin. But I just can´t find it at all. Where can I find it? Did u fix ur keyboard layout in Game-Mode? |
@Fuziius |
Valve please, you are selling me a dock but don't support changing the layout of a connected keyboard? This issue is open for so long now and a really basic feature missing for your dock to be usable. I'm getting kinda frustrated by this. |
Pls, this is quite huge for us non-native english speaking countries.... would be so easy to fix Valve! Thank you for the work around until... makes life easier for my kids! |
Could someone with knowledge create a Decky Loader plugin for this? |
@Stoffss like this one? https://github.com/Loidbae/SDH-KLang 😉 |
@tonivj5 This has sadly been discontinued a while ago. |
Upping this issue, another one affected by this. Luckily it is easily workaroundable, but still. |
For Russian i used:
Not sure which ones worked, default or not, but switching layouts with Ctrl+Shift works in gaming mode now too. |
We need a fix for this. Valve needs to implement something to check the default Desktop Mode keyboard layout and use it in Game Mode as well or just allow us to change layout directly from Game Mode. It's a huge problem that we can not use our keyboards in Game Mode properly |
I am affected by this issue too. We need ability to set keyboard shortcut for changing layout from physical keyboard in gaming mode without need to tinker with config files. |
Is there a workaround for Dvorak? I have multiple games with all my binds set to Dvorak binds and can't reasonably switch between qwerty and Dvorak binds, as the games in question store bind settings in Steam Cloud. I'm expecting it would be this in
I tried these environment variables in the Steam game command line, but that didn't have any effect. I also heard that if Can we please get a dropdown in the keyboard settings for physical keyboard layout so I can choose Dvorak? |
It's guessing it's related to this issue ValveSoftware/gamescope#203 and the fact that we can not change the keyboard layout inside Gamemode at all. |
This was already mentioned as a simple search would have shown. |
Yes, so back to my questions:
See my comment above for additional rationale for asking these questions. |
@AlexFolland to answer some of you're Questions:
Yes, the same workaround I use for Neo2 should also work for Dvorak.
Well then you might not find the workaround viable as it may prevent booting, which can be solved via the recovery if it does.
Thats what this issue is for, but i do not expect anybody from Valve to answer to that Question anytime soon, as this Issue is already 2 Years old. I do also not agree that a viable workaround should not include any risk of boot prevention, as this is a recoverable problem and we are talking about workarounds, not solutions. For a permanent solution to this issue I do agree that it should not include that risk for the end user, but if you really want to use a different keyboard layout while no permanent solution is in place the minor risk of a temporary boot issue should not be regarded as a no go. Like stated before it can be recoverd without reinstalling the whole system. |
Thanks for your response. However, one oversight seems to be that |
It doesn't though. I fixed this issue on my deck via |
Your system information
Please describe your issue in as much detail as possible:
I connected a keyboard/mouse combo to usb c (lenovo keyboard with trackpoint). Everything worked as expected. Keyboard can type mouse is useable, scrolling works. But the issue is that the keyboard is in the english layout. My steamdecks on-screen-keyboard (osk) is set to german, desktop mode is set to german-neo2. And in desktop mode the keyboard uses the neo2 layout, as expected. But in gaming mode any layout set in the settings is ignored for the physikal keyboard. This is only mildly annoying for german as
ö ä ü ß
dont exist on english layouts. But it sure must be frustrting if your primary language uses, for example, the greek alphabet, as those can only be typed with the osk.Steps for reproducing this issue:
related issue:
A Workaround has been found:
To set the keyboard layout for gaming mode edit
/etc/environment
file.Example:
It is sufficient to only set layout
For a list of available values use
localectl list-x11-keymap-models
localectl list-x11-keymap-layouts
localectl list-x11-keymap-variants [layout]
localectl list-x11-keymap-options
The text was updated successfully, but these errors were encountered: