Admin message

Join us at Akademy to celebrate KDE's 30th anniversary! Travel support requests are open till May 31st. Register now.

Proposal for Plasma Setup - SoK2026
## Project abstract Plasma Setup currently targets desktop systems, but it would benefit from supporting Plasma Mobile and devices with varying screen sizes. This proposal aims to extend Plasma Setup into a cross-device setup wizard by making the UI adaptive and separating shared dependencies so that both desktop and mobile experiences can co-exist cleanly. ## Proposal Plasma Setup acts as the greeter that handles configuration and setup for freshly installed KDE systems, with handling for account creation and basic system settings. At present, it is designed for desktop/laptop size displays, with no inclusion for Plasma Mobile or screens of varying resolution. This project aims to turn Plasma Setup into a cross-device component of the Plasma eco-system. The work will focus on two main areas: the user interface and the internal architecture. #### Frontend The current QML UI assumes a relatively large display. On phones or tablets this may result in layouts that are either too dense or simply awkward to use. Existing components will be refactord such that they can adapt to the available screen space and input methods. The goal is not to maintain separate UIs, but rather have a single implementation that behaves appropriately across phones, tablets, desktops, and large screens. #### Backend Plasma Setup currently depends on `plasma-desktop` via the `kcm_keyboard` module; this will pull in dependencies that may not behave properly (or simply waste resources) in Plasma Mobile. The project will separate `kcm_keyboard` into a reusable library within `plasma-workspace`. After this, based on design choices, Plasma Mobile may either import the keyboard module from plasma-workspace, or skip it entirely. This approach will allow Plasma Setup to run on Plasma Mobile without pulling in desktop-specific components, while preserving full functionality on desktop systems. All changes will be tested on Plasma Desktop and Plasma Mobile over virtual machines of different screen sizes. Updated UI structures and architectural changes are to be documented in the relevant repositories so that future contributors can understand and extend the work. ## Timeline - Weeks 1-2: Become familiar with the Plasma Setup codebase, set up development and testing environments, review the current UI and dependency structure. - Weeks 3-5: Implement adaptive layouts and improve navigation for different screen sizes, with testing on desktop and mobile. - Weeks 6-7: Remove the dependency on `plasma-desktop` by adjusting how keyboard configurations are handled for mobile systems. - Weeks 8-9: Refine layout and behaviour across desktop and mobile. Fix UI and usability issues with regards to feedback. Ensure that different screen sizes behave as expected. - Weeks 10-12: Final testing and debugging. Prepare documentation, submit patches for upstream review and merging. ## Foreseen challenges - Supporting a wide range of screen sizes without breaking the existing desktop experience will require careful testing and iteration. This will be addressed by continuously validating changes on both desktop and mobile setups. - Removing desktop-only dependencies carries some risk of regressions, which will be mitigated by isolating changes and testing both desktop and mobile configurations throughout development. - UI scaling may require design adjustments for mobile, which will necessitate research on UI/UX best-practices and usability testing. ## References / relevant background info I previously participated in Season of KDE 2025 working on the [Win2Linux project](https://invent.kde.org/drowsywings/win-2-linux). I am comfortable working with C++, Qt/Kirigami, QML, and GitLab. As a computer engineering graduate with prior software engineering experience, I am comfortable debugging and extending existing codebases. ## How to reach you Element/Matrix: @onatribar:matrix.org <!-- Do not remove this line and the two below, else your proposal will become public and the team won't be notified of it --> /cc @teams/mentor-programs
issue