Add Nested Desktop and complete Odin 2 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. |
Summary
This contribution brings the Odin 2 desktop experience closer to the Steam Deck workflow:
plasma-nm,bluedevil, andupower).Nested Desktop
Nested Desktop is an optional non-Steam shortcut, not a replacement for normal Desktop Mode. Its purpose is brief access to Plasma without switching sessions while retaining Steam Input, QAM, and the Steam overlay.
The launcher runs fullscreen KWin beneath Gamescope, normalizes the rotated Odin panel into a landscape Plasma workspace, shares the parent PipeWire session, and starts a complete Plasma shell. Because this adds Gamescope overhead, direct KWin Desktop Mode remains the preferred path for performance and extended desktop use. The nested launcher has no runtime effect unless a user explicitly adds and launches it.
The README documents adding it to Steam, selecting Armada Native, and using the native game resolution.
Full Desktop integration
Normal Desktop Mode remains a direct KWin session and now has:
Validation
Tested repeatedly on an AYN Odin 2 Pro running Armada:
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.