-
-
Save davidedmundson/8e1732b2c8b539fd3e6ab41a65bcab74 to your computer and use it in GitHub Desktop.
#!/bin/sh | |
# Remove the performance overlay, it meddles with some tasks | |
unset LD_PRELOAD | |
## Shadow kwin_wayland_wrapper so that we can pass args to kwin wrapper | |
## whilst being launched by plasma-session | |
mkdir $XDG_RUNTIME_DIR/nested_plasma -p | |
cat <<EOF > $XDG_RUNTIME_DIR/nested_plasma/kwin_wayland_wrapper | |
#!/bin/sh | |
/usr/bin/kwin_wayland_wrapper --width 1280 --height 800 --no-lockscreen \$@ | |
EOF | |
chmod a+x $XDG_RUNTIME_DIR/nested_plasma/kwin_wayland_wrapper | |
export PATH=$XDG_RUNTIME_DIR/nested_plasma:$PATH | |
dbus-run-session startplasma-wayland | |
rm $XDG_RUNTIME_DIR/nested_plasma/kwin_wayland_wrapper |
Adding
DISPLAY=:0
to the xdpyinfo lines there will ensure the values are taken from the actual screen resolution that SteamOS sets up, so you can set the "display resolution" field of the game entry to a higher value in order to ensure that the mouse boundaries don't randomly get snapped back to 1280x800 on you.
For reference, the lines should be:
X=$(xdpyinfo -display :0 | awk '/dimensions/{print $2}' | cut -d 'x' -f1)
Y=$(xdpyinfo -display :0 | awk '/dimensions/{print $2}' | cut -d 'x' -f2)
I have an issue with this. My image is displaced and so is the cursor. I think I might have caused it by trying to rotate the screen at one point (an app was too large to be displayed vertically).
I don't know what I can do to fix it, but here's how it looks. Any pointers would be welcome.
This is working great in general, awesome to have full KDE inside of game mode!
One is I experience is however, I run with my native resolution on my 4K TV and then run another game on top the mouse gets locked into the other games resolution so I can only move it within a 720p border. Anyone know how to fix that without putting the other game in 4K too?
A temporary workaround seems to be restarting the script every time a new game launches. But that's a bit annoying.
Set the resolution in game properties to "Native" and set the game to put itself at the desired resolution. Windowed mode shouldn't have any difference in performance from borderless or fullscreen with Gamescope involved.
I've found that trying to use Copy Paste (Ctrl C/Ctrl V) from the nested desktop results in an immeidate crash causing SteamOS to reboot.
Edit, Hmm. using roel0064's code above, along with zetaPRIME's and cornerdebug's recommendations, have fixed both the letterbox mouse cursor issue, and the copy/paste issues i was experiencing.
Recommend setting the resolution in the properties of nesteddesktop.sh to "Native"
Update on mouse bounds issue, I think it's a SteamOS/Gamescope bug; the mouse bounds are set on launching a game according to the resolution settings on whichever game it is, but don't correctly update when the application sets its own window size or when switching between open games. 🤔
As of the past few versions of the Preview channel, copy/pasting (files?) no longer works when running in Gamescope.
+1 on the above, which is now more relevant as 3.5.5 has hit the Stable channel https://store.steampowered.com/news/app/1675200/view/5484882897552407488
Since 3.5.5 I also experience a minor UI bug: double-clicking "Return to Gaming Mode" on the KDE desktop doesn't fully work, but instead renders a black screen with 'Steam Menu' and 'Back' icons on the lower left and right corners respectively, instead of opening the shortcut's detail page; pressing B in this screen does take you back to the details page and finishes closing Desktop mode however
I believe it has something to do with DBus.
For the copy issue I found this probably related bug report: https://bugs.kde.org/show_bug.cgi?id=473733
When copying a file it fails and the clipboard reports this as "Message recipient disconnected from message bus without replying"
Edit: The desktop itself has no copy issue & other file managers like KDE's Index (can be found in Discover) also don't have this issue. When a file is already in the clipboard you can paste it just fine with Dolphin as well. When updating to steam OS 3.5 the entire desktop with its default applications also updated. This included Dolphin.
If I understand it correctly. DBus is also responsible for things like "save as" and "upload" windows. Probably the reason why those don't show up. (goofedub's problem)
Not a clue what is wrong with DBus in combination with the NestedPlasma.sh setup though, but the solution is probably related to this.
Thank you for the script. It seems to work at first glance. However, I was hoping this trick would allow VRR in desktop mode when docked with the official dock. But the adaptive sync option is still missing in the KDE Display Settings, just like with x11. Also, with this trick, the display name is now just shown as X11-0 instead of LG Electronics LG FULL HD.
Is there maybe another trick to specifically enable VRR in Plasma Wayland when docked? Maybe the information that VRR is supported, and which refresh rates are supported is somehow lost with this script?
(The game mode performance menu overlay correctly shows VRR as active, and the slider there shows all refresh rates up to 75 Hz.)
Any idea why notifications don't have a proper background when running in this mode. This is the case for action set change notifications.
I found a reddit post that solves my copy paste issue:
https://www.reddit.com/r/SteamDeck/comments/zqgx9g/desktop_mode_within_gaming_mode_updated_for_new/
Might be of interest to any of you.
I've changed it up a little to add the dynamic resolution functionality from my previous comment:
#!/bin/sh
# Remove the performance overlay, it meddles with some tasks
unset LD_PRELOAD
# Get screen resolution
X=$(xdpyinfo -display :0 | awk '/dimensions/{print $2}' | cut -d 'x' -f1)
Y=$(xdpyinfo -display :0 | awk '/dimensions/{print $2}' | cut -d 'x' -f2)
rm -rf /tmp/desktop-mode
mkdir -p /tmp/desktop-mode
cat > /tmp/desktop-mode/kwin_wayland_wrapper << EOF
#!/bin/sh
$(which kwin_wayland_wrapper) --width $X --height $Y --no-lockscreen --x11-display $DISPLAY \$@
EOF
chmod +x /tmp/desktop-mode/kwin_wayland_wrapper
kwriteconfig5 --file startkderc --group General --key systemdBoot false
PATH=/tmp/desktop-mode:$PATH startplasma-wayland
kwriteconfig5 --file startkderc --group General --key systemdBoot --delete
This stopped working since plasma6 is there any workarounds ?
good useable 2024-11-16 22:29:26
Adding
DISPLAY=:0
to the xdpyinfo lines there will ensure the values are taken from the actual screen resolution that SteamOS sets up, so you can set the "display resolution" field of the game entry to a higher value in order to ensure that the mouse boundaries don't randomly get snapped back to 1280x800 on you.