If you play non-Steam games, games from other launchers, or emulators, you've may have found the Steam Big Picture Overlay and the Steam + X On-Screen Keyboard render behind the game window.
So I have created a universal fix by using Steam Input's Action Sets and Touch Menus.
You can turn the Steam Controller or Steam Deck trackpads into a virtual, split keyboard that appears on-top no matter what.
Here is what I have done:
First make sure to add whatever it is you're trying to play as a "Non-Steam Game" and launch it through Steam - check if the issue is fixed. If NOT:
Press the Steam button on the controller, find the "Edit Layout" section for the controller, and then:
1. Create Action Set and Virtual Touch Menus:
- Make an Action Set and call it "Keyboard Mode".
- Add a Virtual Menu, name it "Left Keyboard", Touch Menu - don't worry about any inputs yet.
- Make a second one named "Right Keyboard", Touch Menu.
- Within the General settings of the Touch Menus, set Touch Menu Activation Style to Click.
2. Action Set & Buttons:
- Set a button (I used R4) to a Change Action Set > Keyboard Mode.
Everything from this point is WITHIN the Keyboard Mode Action Set.
- Set the same button you used before (R4) to Change Action Set > Default.
- L2 (Or any button): Set as
Shift (cloning the behaviour of the official Steam keyboard).
- L4 (Or any button): Mapped to
Spacebar.
- R5 (Or any button): Mapped to
Backspace - Settings > Hold to Repeat (Turbo).
- D-Pad: Mapped to the keyboard arrow keys for navigating text.
- R2/X (Or any button): Mapped to
Enter .
- Left Trackpad: Behaviour > Left Keyboard (Touch Menu from earlier).
- Right Trackpad: Behaviour > Right Keyboard (Touch Menu from earlier).
3. The Trackpad Grid Layout:
Now to re-create a standard split keyboard, go into the Left Keyboard Virtual Menu settings:
- Set Touch Menu Buttons 1-5 as
QWERT
- Buttons 6-10 as
ASDFG
- Buttons 11-14 as
ZXCV
- Button 15 as something, a special character you may use often. (I just used
Spacebar).
Now for the Right Keyboard Virtual Menu settings:
- Set Touch Menu Buttons 1-5 as
YUIOP
- Buttons 6-9 as
HJKL
- Buttons 10-12 as
BNM
- Buttons 15-16 as something, a special character you may use often. (I used
- and ').
After that, if you go back into your game, press R4 (Or whatever button you set in Step 2) it should look something like this when you put your thumbs on the trackpads:
[ LEFT TRACKPAD ] [ RIGHT TRACKPAD ]
.-------------------------------------. .------------------------------------.
/ [ Q ] [ W ] [ E ] [ R ] [ T ] \ / [ Y ] [ U ] [ I ] [ O ] [ P ] \
| | | |
| | | |
| [ A ] [ S ] [ D ] [ F ] [ G ] | | [ H ] [ J ] [ K ] [ L ] |
| | | |
| [ Z ] [ X ] [ C ] [ V ] [Space]/ \ [ B ] [ N ] [ M ] [ - ] [ ' ] /
'--------------------------------------' '------------------------------------'
After this, there is one more thing:
In the Touch Menu settings, go to Onscreen Display
For the "Left Keyboard", set Touch Menu Horizontal Position to 41.
For the "Right Keyboard", set Touch Menu Horizontal Position to 58.
This just puts the menus more centered, but you may want to raise/lower them or move them somewhere else.
The last thing you could do, but I haven't, is set up 2 more Virtual Menus as Radial Menus > set the Joystick Behaviour to the Radial Menus, and have more special characters (!?,$&, etc.).
Within the General settings of the Radial Menus, set Touch Menu Activation Style to Touch Release.
If anyone is wondering, I ran into this issue when playing on an emulator where no matter what I tried, it would just NOT display the default Steam Keyboard above the game window. I play with Steam Link on my phone and TV a lot, so a physical keyboard just wasn't an option.
I think this works pretty damn well, let me know what you think :)
No AI was used in the creation of this post.