< PlasmaRevision as of 08:41, 24 August 2015 by Sebas (talk | contribs) (choosing a category, from PIG)(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff) The Ultimate Guide to Plasma Development Contents 1 Introduction 1.1 App, Plasmoid, or both? 1.2 Software Stack 2 Requirements Analysis & Design= 3 Getting Started 4 Developing a Plasmoid 4.1 Creating the empty package 4.1.1 filesystem structure 4.1.2 metadata.desktop 184.108.40.206 Choosing a Category 4.1.3 installation 4.2 Starting the Code 4.2.1 main.qml stuffz 4.2.2 Plasma API 5 Development Environment Setup 6 Tools 7 Display and Rendering 8 Supporting Multiple Devices 9 Workspace Integration 10 Translations 11 Distribution 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) Choosing a Category The following are acceptable known entries for plasmoids and applets. If your applet does not fall within one of the following categories, leave the category field empty (it will be automatically categorized under "Miscellaneous" for the time being) and contact the Plasma development team to have a suitable category added to the list (at which point you may then use that category). Accessibility tools that help those with special needs or disabilities use their computer Application Launchers application starters and file openers. Astronomy anything to do with the night sky or other celestial bodies. Date and Time clocks, calendars, scheduling, etc Development Tools tools and utilities to aid software developers Education teaching and educational aides Environment and Weather add-ons that display information regarding the weather or other environmentally related data Examples samples that are not meant for production systems File System anything that operates on files or the file system as it's primary purpose, such as file watchers or directory listings. Simply using a file as storage does not qualify the add-on for this category. Fun and Games for games and amusements Graphics for add-ons where displaying images, photos or graphical eye candy is the primary purpose Language add-ons whose primary purpose is language related, such as dictionaries and translators. Mapping geography and geographic data add-ons Multimedia music and video. Online Services add-ons that provide an interface to online services such as social networking or blogging sites. If there is another more appropriate category for the add-on given the topic (e.g. mapping if the applet's purpose is to show maps), even if the data is retrieved from the Internet prefer that other category over this one. System Information display and interaction with information about the computer such as network activity, hardware health, memory usage, etc Utilities Useful tools like calculators Windows and Tasks managers for application windows and/or tasks, such as taskbars 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 Retrieved from "https://community.kde.org/index.php?title=Plasma/DeveloperGuide&oldid=44007" Content is available under Creative Commons License SA 4.0 unless otherwise noted.