Plasma themes and plugins

How to customize plasma with widgets, themes and icons

The KDE wiki has a few tutorials that haven't been ported to https://develop.kde.org yet.

Plasma is very modular, made up of themable widgets that can be added, removed, re-arranged, and customized. Pre-installed widgets and themes are stored at /usr/share/plasma/, while third-party widgets and themes are stored in the user's home directory at ~/.local/share/plasma/.

Global Theme

Formerly called a "Look and Feel", it bundles a Panel Layout Template, an Icon Theme, a Plasma Style (and its Color Scheme), a Task Switcher, a Splash Screen, a lock screen theme, or any combination thereof.

Plasma Style

Also called a Desktop Theme or a Plasma Theme, it controls the visual styling of panels, widgets, OSD popups, the lock screen, and the logout screen. Plasma Styles can also include their own color scheme that overrides the systemwide color scheme for Plasma UI elements.

Color Scheme

A list of colors in plain INI format that define the colors to be used for UI elements that follow the systemwide color scheme. These typically consist of KDE/Qt apps, GTK apps themed with the Breeze GTK theme, and Plasma UI elements when using a Plasma style that respects the systemwide color scheme.

  • Usually set in the colors file in a Plasma Style.
  • System/Default: /usr/share/color-schemes/ (GitLab)
  • User Installed: ~/.local/share/color-schemes/ (KDE Store Category)
  • When a color scheme is applied, its values are copied to ~/.config/kdeglobals and kde-gtk-config will automatically sync colors to the Breeze GTK Theme in ~/.config/gtk-3.0/colors.css
  • Documentation

Icon Theme

A collection of icon files in different sizes that follows the Freedesktop specification.

Panel Layout Template

A Plasma Script written in JavaScript that defines a specific panel layout, accessed when right-clicking the desktop and selecting "Add Panel".

  • System/Default: /usr/share/plasma/layout-templates/ (GitLab)
  • User Installed: ~/.local/share/plasma/layout-templates/

Task Switcher

A visual representation of the windows you can switch to with Alt+Tab, written in QML.

Plasma Widget

Also known as a Plasmoid, it is an interactive and self-contained piece of functionality. A Widget is essentially a small app that can be embedded within the current Plasma layout, either on the desktop or a panel. Widgets are written in QML.

Wallpaper Plugin

A plugin written in QML that draws the desktop wallpaper. It can be chosen and configured in the wallpaper settings window using the "Wallpaper Type" combobox.

  • System/Default: /usr/share/plasma/wallpapers/ (GitLab)
  • User Installed: ~/.local/share/plasma/wallpapers/

Window Decoration

Handles the theme and button style of the window titlebar. A window decoration can be created by editing SVG files (Aurorae) or by writing a C++ plugin ( KDecoration ).

  • System/Default: /usr/share/aurorae/themes/ (usually empty)
  • User Installed: ~/.local/share/aurorae/themes/ (KDE Store Category)
  • The default Breeze decoration is a C++ plugin implementing the KDecoration2 API .
  • Aurorae is a theming engine which allows to create window decorations based on SVGs. Tutorial
  • Aurorae can also load QML-based themes.

KWin Effect

Also known as a Desktop Effect, it applies visual changes to any area of the screen. KWin effects can be purely visual (e.g. an animation during window events, like "minimize") or they can be interactive with their own rich UI (e.g. the "Overview" effect).

KWin Script

A script written in JavaScript or QML that manages windows, allowing to automatically arrange them in a grid for example.

Login Screen (SDDM)

The theme used for the screen you see before you log in to Plasma in most KDE distros. Despite the visual similarity of their Breeze themes, SDDM is not the lock screen. Lock screen themes are included within Plasma Styles.

Splash Screen

The animated screen you see after you log into Plasma in most KDE distros. It is written in QML and can use images like PNGs, SVGs or GIFs.