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 added it as it didnt work to just disable the compaat tool. It uses the default proton by default but the armada native forces the os to run in linux the app.
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.
I agree it was my bad, i did this patch so that when you load up desktop mode you have controller support on desktop, another thing thta should be pre patched would be the desktop controls themselves which i had to manually do for the desktop but i think i could whip up a patch for that too.
There was a problem hiding this comment.
what i mean to say for clarification, when you run steam on desktop mode the desktop configuration it has for the controller i believe its just gamepad, so no mouse on analog or anything like that is set by default to allow easy access and quality of life you know what i mean.
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.
Yeah i saw that it wasnt a part of the os and it makes sense since its essentially fedora. I use the steam deck as much as windows since during the day i use my pc and at night i use the steam deck so theres features on the steamos that are a must for this type of device and I feel this is a must.
There was a problem hiding this comment.
Its a nice quality of life improvement and saves time.
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
There was a problem hiding this comment.
yeah, I'm pretty new on the scene my bad. I love you're os by the way im always testing games on it and building plugins with it in mind. Theres one im working but i feel the os is too early in development for it. Id love to talk to you about it if you ever have some free time.
|
What exactly do you need from me here? need me to divide theese into diferent pr's? the reason i have them all together its because i have them all under one patch. |
Yes that's correct. From our perspective we need these features separate to allow for easier testing and review across a very broad set of devices. Wouldn't have expected you to know this yet, as we have no contribution guide or pr template. We are hoping to fix this soon Anything that really does belong to nested desktop can stay on this PR |
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.