:''Creating your first plasmoid in C++ with SVG background, icon and text''

−

;[[/DataEngines|Writing a DataEngine]]

+

== QML ==

−

:''DataEngines provide a standardized interface to various data sources for visualizations to use. Learn what a DataEngine is and how to write one of your own.''

+

Plasmoids that use the QML (aka QtQuick) declarative language to describe their user interface while having the logic of the applet, in JavaScript (QML is essentially a forge between CSS and JavaScript).

−

;[http://www.kdedevelopers.org/node/3247 Video tutorial]

+

This is now the '''recommended''' method of creating plasmoids, where possible. The plasmoid, or applet serves as the visualization for the data which a Plasma::DataEngine contains.

−

:''Video and slides from a presentation on libplasma (link to Slides broken)''

+

−

;[[/UsingExtenders|How to use extenders in your Plasmoid]]

+

It allows easily the declaring of an interface and to easily create things like ListViews with native Plasma theming. It is what Plasma is leaning the most towards, especially in the Mobile, MediaCenter shells.

:''The QML Plasmoid API. Useful for referencing what is available in the runtime, what are the differences with the pure JavaScript ScriptEngine, the differences between pure Qt QML and Plasma, and as a study aid for the tutorials above.''

+

+

== C++ ==

+

+

=== Plasmoids ===

+

;[[Development/Tutorials/Plasma/GettingStarted|Getting Started With Plasmoids]]

+

:''Creating your first plasmoid in C++ with SVG background, icon and text''

+

+

;[[Development/Tutorials/Plasma/GettingStarted..Some_More|Getting Started With Plasmoids..Some more]] :''A few more starter's tips.''

+

+

;[[Development/Tutorials/Plasma/UsingExtenders|How to use extenders in your Plasmoid]]

:''PackageStructure plugins allow custom Packages to be defined, installed, removed and listed as well as provide access their contents at runtime. Packages may contain any kind of data addons, including scripts.''

+

+

=== Runners ===

+

+

;[[Development/Tutorials/Plasma/AbstractRunner|Creating Runners]]

+

:''Runners are plugins that provide action-based search functionality in the Plasma workspace "run command" dialog. These plugins can be used by any application that links again libplasma.''

:The KDE Plasma Desktop and Netbook provide means to manage the desktop shell (desktop, panels, widget) via scripts written in JavaScript. This article describes how to take advantage of this feature set as well as documents the full API. This is primarily a system administration tool, but may also be of interest to power users.

:''Tutorial that shows how to create your first Plasma Applet using the Ruby language. Following these instructions precisely however leads to the error "Could not find requested component: plasma-ruby-web-applet" on OpenSUSE 11.1 KDE 4.2RC1.''

+

:''A tutorial explaining how to set up a plasmoid, create a simple paste applet using widgets and add Plasma features seen elsewhere. Complete with tips for those who have never programmed before.''

−

== Theme development ==

+

;[[Development/Tutorials/Plasma/Ruby/Blinker|Use SVG artwork in the simplest way possible]]

+

:''Follow a fellow student as he asks around about SVG usage and explains why the code examples work. This is a wiki so feel free to add your own insights until this tutorial can be considered complete.''

:''This tutorial shows you how to make an application dashboard based on Plasma technologies.''

+

+

== Packages ==

+

+

;[[Development/Tutorials/Plasma/PackageOverview|Plasma Packages]]

+

:''An overview of what makes up a Plasma Package and what they are and can be used for.''

+

+

;[[Development/Tutorials/Plasma/PackageStructure|Writing a PackageStructure Plugin in C++]]

+

:''PackageStructure plugins allow custom Packages to be defined, installed, removed and listed as well as provide access their contents at runtime. Packages may contain any kind of data addons, including scripts.''

QML

Plasmoids that use the QML (aka QtQuick) declarative language to describe their user interface while having the logic of the applet, in JavaScript (QML is essentially a forge between CSS and JavaScript).

This is now the recommended method of creating plasmoids, where possible. The plasmoid, or applet serves as the visualization for the data which a Plasma::DataEngine contains.

It allows easily the declaring of an interface and to easily create things like ListViews with native Plasma theming. It is what Plasma is leaning the most towards, especially in the Mobile, MediaCenter shells.

The QML Plasmoid API. Useful for referencing what is available in the runtime, what are the differences with the pure JavaScript ScriptEngine, the differences between pure Qt QML and Plasma, and as a study aid for the tutorials above.

PackageStructures

PackageStructure plugins allow custom Packages to be defined, installed, removed and listed as well as provide access their contents at runtime. Packages may contain any kind of data addons, including scripts.

Plasma Shells

This tutorial covers the essentials of writing a new Plasma shell from scratch. A must-read for anyone creating a new or modifying an existing Plasma Shell. Existing Plasma shells include Plasma Desktop, Plasma Netbook, Plasma Mobile, Plasma Media Center, Plasma Screensaver, Plasma KPart and Plasma KDM, and all follow the patterns documented here.

JavaScript

Plasma has built-in JavaScript (also known as ECMAScript, and often referred to as QtScript in the context of Qt) scripting support without requiring any external dependencies.

Other Applications Of Javascript

The KDE Plasma Desktop and Netbook provide means to manage the desktop shell (desktop, panels, widget) via scripts written in JavaScript. This article describes how to take advantage of this feature set as well as documents the full API. This is primarily a system administration tool, but may also be of interest to power users.

Packages

PackageStructure plugins allow custom Packages to be defined, installed, removed and listed as well as provide access their contents at runtime. Packages may contain any kind of data addons, including scripts.