Plasma/DeveloperGuide
< Plasma
The Ultimate Guide to Plasma Development
Introduction
App, Plasmoid, or both?
- app vs plasmoid
Software Stack
- QML / QtQuick: ui primitives, app logic, rendering, states - imports - Plasma libs - underlying frameworks - runtime environment - kpackage
Requirements Analysis & Design=
Getting Started
Developing a Plasmoid
Creating the empty package
filesystem structure
metadata.desktop
- system integration (systray, alternatives, mimetypes, arguments, formfactors)
installation
- cmake - plasmapkg2
Starting the Code
main.qml stuffz
- Layouts - plasmoid object - fullRepresentation vs. popup
Plasma API
+ links to API documentation! - PlasmaCore - PlasmaComponents - PlasmaExtras - kdeclarative's useful stuff: kcmOpen? more useful imports
- general guidelines: units, iconSizes,
Development Environment Setup
Tools
- editor - commandline - plasmapkg2 - plasmoidviewer - plasmathemething - cuttlefish -
Display and Rendering
- theming - image display - dpi - ColorScope - Wayland vs. X11
Supporting Multiple Devices
- touch friendliness - layout considerations - formfactor support (X-KDE-FormFactors) - touch-specific overrides
Workspace Integration
- system tray - plasmoid status - dbus autoload
Translations
- i18n() & friends - making sure i18n is set up & how to x-test
Distribution
- plasmoid package - appstream metadata - kdeapps online installation - distros - upstreaming code