Jump to content

Sprints/Plasma/2025/Topics/Plasma tech stack

From KDE Community Wiki

New applet loading mechanism

Fancy new CMake thing to do everything

Got a live demo of how it works


QML magic

Context properties and accessing items from other files using their IDs is bad; try to stop doing it.

QML LSP and linting help us see them at least.

Need to just fix things one at a time as we see them.


Plasma repo audit

When considering to merge things, consider dependencies, what wants or needs to be in our Flatpak runtimes, and build times.

Conclusions:

  • Kactivitymanagerd: merge into plasma-workspace
  • Breeze*: merge together
  • KDE CLI Tools: clean it up, merge it somewhere
  • KDE GTK Configurator: merge somewhere?
  • KSSHAskPass: merge into workspace
  • KWriteD: merge into plasma-desktop
  • Lancelot: archive it
  • Milou: move components into KRunner, and widget into plasma-workspace
  • Oxygen* merge together
  • Pico Wizard: archive it
  • polkit-kde-agent: merge into workspace

kde-cli-tools

- kbroadcastnotifcation

 - broadcast notification on system bus
 - listening side disabled by default in plasma-workspace

-kdeeject

- runs eject and shows a dialog on error
- kill it

- kde-inhibit

 - alright

- kdesu

- running gui applications as root
- nobody should be using this anymore in this day and age
- used in kio for substituteUid
- can maybe rewrite to use pkexec

- keditfiletype

- like the systemsetting thing 
- surprising amount of code
- it IS the kcm
- move it somewhere sensible
- the executable is needed for kmimetypechooser
  - it could instead launch the kcm

- kinfo

- this should live in kinfocenter

- kioclient

- makes sense, could it live with kio?
- also compiled as kdecp and kdemv

- kmimetypefinder

 - used by xdg-mime
 - everythign standard now, maybe could be replaced in xdg-utils by mimetype

- kstart

 - is fine

- kvgtopng

- used by kwrite and kate

- plasma-open-setting

- scheme handler for systemsettings url

QMLformat

Changes are fine-ish now; let's try it out in NeoChat as a pilot project.


Visual theming using QML

Want to remove themable QML code from Global Themes. Removed Lock screens and OSDs so far; remaining things:

  1. OSD
  2. SystemDialog
  3. Logout Greeter
  4. Splash Screens