Add optional Nested Desktop and Steam desktop integration - #95
Conversation
|
@Janleyx Thanks for the contribution! Can you tell me more about the purpose of the nested desktop? One thing that concerns me about it is that KWin is actually a more efficient compositor than gamescope on this hardware, so it might regress performance in desktop mode. Also wondering if we still need the SD changes you have in here after I added jupiter-hw-support? |
|
oh hi! om so pleased you reached out! first off love the work behind the project and have been working hard on trying to help along. The whole point of nested desktop is to have quick access to your desktop enviroment from within gamemode so you dont have to switch to desktop mode to then switch back essentially. I made it very performant too. So in professional lingo: The purpose is to access Plasma briefly without switching sessions while retaining Steam Input, QAM, and the Steam overlay. You’re right that this means KWin is running underneath Gamescope, so it can be less efficient than the direct KWin Desktop Mode session. I’m not claiming it improves performance. It tested acceptably after correcting the resolution/scaling configuration, but I did not run formal compositor benchmarks. Normal Desktop Mode remains the better choice for performance and extended use. The nested launcher has no runtime effect unless the user explicitly adds and launches it. That said, I’m happy to split Nested Desktop into a separate PR—or remove it from this one—if you would prefer the desktop integration changes independently. Regarding the SD changes: I agree that the Armada-side checks are no longer necessary now that I have the complete history. The failure was reproduced on the June 28 image, which predated your July 3 jupiter-hw-support integration. That older image was missing the formatter, automounter, polkit integration, and f3. It also ran the older kernel without CONFIG_UNICODE. The current source already has the primary native fixes: jupiter-hw-support is installed in the image. The kernel package has CONFIG_UNICODE=y. I can remove the SD build assertions from this PR. I submitted the remaining defense-in-depth formatter change separately in virtudude/armada-packages#3, where the Jupiter RPM is maintained. It makes -O casefold conditional on the running kernel’s advertised support and was successfully built as a complete RPM on the Odin 2. |
b6bcf5b to
157afcf
Compare
There was a problem hiding this comment.
Is this one strictly necessary? I believe if you don't check "Force use of a steam Compatibility Tool", this will effectively do the same thing?
If there is a reason why we need this in the compat tool list I am all ears, just not sure why
There was a problem hiding this comment.
I feel this one maybe deserves a seperate PR. It doesn't quite live in the scope of Nested Desktop.
I think it's something we do need to consider - we've talked about this a bit. But would prefer to have a seperate forum for it.
There was a problem hiding this comment.
This one may need it's own PR. I actually am a huge fan of the idea - It's just quite difficult to talk about so many features in one PR and have them all merged and tested together, not sure if you could split this one out?
There was a problem hiding this comment.
I don't believe this needs to live in the README. If merged we can track on issue @ https://github.com/armada-os/armadaos.dev
Summary
This contribution adds optional SteamOS-style desktop integration without replacing Armada's normal KWin Desktop Mode:
Rebased for current Armada
This branch is rebuilt directly on current
mainafter testing Armada beta20260729.d812101on an AYN Odin 2 Pro.Current Armada already ships
plasma-nm,bluedevil,upower, corrected desktop ownership,armada-jupiter-hw-support, and a kernel withCONFIG_UNICODE=y. The earlier copies of those changes have therefore been removed from this PR. There is no SD-card workaround or package layering in this branch.The existing
desktop-bootstrapis preserved, including its newer device and dual-screen logic. The only bootstrap change is a four-line guard preventing the physical-panel setup from running inside Nested Desktop.Nested Desktop
Nested Desktop is opt-in and has no runtime effect unless a user adds and launches it. Direct KWin Desktop Mode remains preferred for performance and extended desktop work.
The launcher:
DSI-1panel and Gamescope's syntheticX11-0output can report the same display identity.That final isolation prevents Nested Desktop's landscape transform from making full Desktop Mode portrait, while leaving external-monitor profiles untouched.
Validation
Validated through reboots and repeated Gaming Mode → Nested Desktop → Desktop Mode cycles on an AYN Odin 2 Pro:
20260729.d812101with no local RPM layering.Related Armada-compatible work
I would also be happy to help maintain and test Armada, and would love to join the team if you are looking for contributors.