Nova Flow OS
KDE Developer Platform
KDE Developer Platform
  • KDE Developer Platform
    • Getting started
      • Building KDE software
        • KDE software
        • Where to find the development team
        • Learning more
        • Choose what to work on
        • Source code cross-referencing
        • Installing build dependencies
        • Set up a development environment
        • Building KDE software with kdesrc-build
        • Basic troubleshooting
        • Tips and tricks
        • IDE Configuration
          • Setting up an IDE for KDE development
          • Visual Studio Code
          • Qt Creator
          • Kate
          • KDevelop
          • CLion
          • Sublime Text
        • Building KDE software manually
        • Building KDE software with distrobox and podman
      • Kirigami
        • KDE is ours
        • Setting up and getting started
        • Explaining pages
        • Layouts, ListViews, and Cards
        • Adding actions
        • Adding a dialog
        • Using separate files
        • Next steps
        • Colors and themes in Kirigami
        • Typography
        • Actions based components
        • Page rows and page stacks
        • Scrollable pages and list views
        • Cards
        • Drawers
        • Chips
        • Dialog types
        • Controls and interactive elements
        • Form layouts
        • Inline messages
        • Action toolbars
        • Progress bars and indicators
        • List views
        • Understanding CMakeLists
        • Figuring out main.cpp
        • Connect logic to your QML user interface
        • Connect models to your QML user interface
        • About page
        • Introduction to Kirigami Addons
        • FormCard About pages
        • Form delegates in your settings pages
      • KXmlGui
        • Getting started with KXmlGui
        • Hello World!
        • Creating the main window
        • Using actions
        • Saving and loading
        • Command line interface
      • Python with Kirigami
        • Apps with QML and Python
        • Your first Python + Kirigami application
        • Creating a Python package
        • Creating a Flatpak
      • Common programming mistakes
      • Adding a new KDE project
    • Features
      • Icons
      • Configuration
        • The KConfig Framework
        • Introduction to KConfig
        • Using KConfig XT
        • KDE Frameworks 6 porting guide
        • Settings module (KCM) development
        • KConfigDialog
      • D-Bus
        • What is D-Bus practically useful for?
        • Introduction to D-Bus
        • Accessing D-Bus interfaces
        • Intermediate D-Bus
        • Creating D-Bus interfaces
        • Using custom types with D-Bus
        • D-Bus autostart services
      • Create your own mouse cursor theme
      • Session management
      • Archives
      • Desktop file
      • KAuth
        • Privilege Escalation
        • Using actions in your applications
      • KIdleTime
      • Akonadi: personal information management
        • Debugging Akonadi Resources
        • Using Akonadi in applications
      • Concurrent programming
      • Solid
      • Sonnet
    • Plasma themes and plugins
      • Getting started
      • Plasma Widget tutorial
        • How to create a plasmoid
        • Setup
        • Porting Plasmoids to KF6
        • Testing
        • QML
        • Plasma's QML API
        • Widget Properties
        • Configuration
        • Translations / i18n
        • Examples
        • C++ API
      • KWin Effects
      • Plasma Desktop scripting
        • Javascript Interaction With Plasma Shells
        • Templates
        • Examples
        • API documentation
        • Configuration keys
      • Plasma Style tutorial
        • Creating a Plasma Style quickstart
        • Understanding Plasma Styles
        • SVG elements and Inkscape
        • Background SVG format
        • System and accent colors
        • Theme elements reference
        • Porting themes to Plasma 5
        • Porting themes to Plasma 6
      • Aurorae window decorations
      • KWin scripting tutorial
        • Quick start
        • KWin scripting API
      • Wallpapers
      • Plasma comic
        • Tutorial
        • Testing and debugging
        • Examples
      • Create a custom Window Switcher
      • KRunner C++ Plugin
        • Basic Anatomy of a Runner
        • KRunner metadata format
    • Applications
      • Creating sensor faces
      • Dolphin
        • Creating Dolphin service menus
      • Kate
        • Kate plugin tutorial
      • KMines
        • Making a KMines theme
      • Writing tests
        • Appium automation testing
    • Packaging
      • Android
        • KDE on Android
        • Building applications for Android
        • Packaging and publishing applications for Android
        • Publishing on Google Play
          • Introduction
          • Packaging your app
          • Adding your app to Google Play
          • Publishing your app
          • Releasing new versions of old apps
        • Porting applications to Android
          • Basic porting
          • Making applications run well on Android
          • Metadata
      • Windows
        • Packaging and publishing applications for Windows
        • Publish your app in the Microsoft Store
          • Packaging your app for the Microsoft Store
          • Submitting your app to the Microsoft Store
      • Plasma Mobile
        • KDE on mobile devices
        • Porting a new device to Plasma Mobile
        • KDE Telephony stack
          • General Overview
          • Kernel layer
          • System daemons
            • General overview
            • Developing Telephony functionality
            • ModemManager Telephony functions
          • Session daemons
          • QML declarative plugin layer
          • KDE application layer
        • Execute applications
      • Distributing KDE software as Flatpak
        • Your first Flatpak
        • Extending your package
        • Nightly Flatpaks and Flathub
        • Testing your Flatpak
    • System administration
      • Shell scripting with KDE dialogs
      • Kiosk: Simple configuration management for large deployment
        • Abstract
        • Introduction to Kiosk
        • Kiosk keys
    • Contribute to the documentation
    • About
      • Readme
      • License
        • Creative Commons Attribution-ShareAlike 4.0 International
        • GNU General Public License 3.0 or later
Powered by GitBook
On this page
  • Global Theme
  • Plasma Style
  • Color Scheme
  • Icon Theme
  • Panel Layout Template
  • Task Switcher
  • Plasma Widget
  • Wallpaper Plugin
  • Window Decoration
  • KWin Effect
  • KWin Script
  • Login Screen (SDDM)
  • Splash Screen
  1. KDE Developer Platform
  2. Plasma themes and plugins

Getting started

How to customize plasma with widgets, themes and icons

PreviousPlasma themes and pluginsNextPlasma Widget tutorial

Last updated 8 months ago

The KDE wiki has a 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 , an , a (and its , a , a , a lock screen theme, or any combination thereof.

  • System/Default: /usr/share/plasma/look-and-feel/ ()

  • User Installed: ~/.local/share/plasma/look-and-feel/ ()

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.

  • System/Default: /usr/share/plasma/desktoptheme/ ()

  • User Installed: ~/.local/share/plasma/desktoptheme/ ()

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/ ()

  • User Installed: ~/.local/share/color-schemes/ ()

  • When a color scheme is applied, its values are copied to ~/.config/kdeglobals and will automatically sync colors to the Breeze GTK Theme in ~/.config/gtk-3.0/colors.css

Icon Theme

Panel Layout Template

A [Plasma Script]({{< ref "scripting" >}}) written in JavaScript that defines a specific panel layout, accessed when right-clicking the desktop and selecting "Add Panel".

  • 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.

  • System/Default: /usr/share/plasma/plasmoids/

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.

  • User Installed: ~/.local/share/plasma/wallpapers/

Window Decoration

  • System/Default: /usr/share/aurorae/themes/ (usually empty)

  • 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

  • [Tutorial]({{< ref kwin >}})

  • [KWin Scripting API]({{< ref "kwin/api" >}})

Login Screen (SDDM)

  • Testing: sddm-greeter --test-mode --theme /usr/share/sddm/themes/breeze

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.

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

System/Default: /usr/share/icons/ ()

User Installed: ~/.local/share/icons/ ()

System/Default: /usr/share/plasma/layout-templates/ ()

System/Default: /usr/share/kwin/tabbox/ ()

User Installed: ~/.local/share/kwin/tabbox/ ()

Can also be bundled in a Global Theme .

User Installed: ~/.local/share/plasma/plasmoids/ ()

System/Default: /usr/share/plasma/wallpapers/ ()

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 ().

User Installed: ~/.local/share/aurorae/themes/ ()

The default is a C++ plugin implementing the .

Aurorae is a theming engine which allows to create window decorations based on SVGs.

System/Default: /usr/share/kwin/effects/ ()

User Installed: ~/.local/share/kwin/effects/ ()

A script written in JavaScript or QML that manages windows, allowing to for example.

System/Default: /usr/share/kwin/scripts/ ()

User Installed: ~/.local/share/kwin/scripts/ ()

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

System/Default: /usr/share/sddm/themes/ () ()

System/Default: /usr/share/plasma/lookandfeel/<theme_name>/contents/splash/ ()

User Installed: ~/.local/share/plasma/look-and-feel/<theme_name>/contents/splash/ ()

Freedesktop specification
GitLab
KDE Store Category
GitLab
GitLab
KDE Store Category
like Breeze does
Tutorial
KDE Store Category
Tutorial
GitLab
KDecoration
KDE Store Category
Breeze decoration
KDecoration2 API
Tutorial
GitLab
KDE Store Category
automatically arrange them in a grid
GitLab
KDE Store Category
SDDM
Breeze example on GitLab
KDE Store Category
Breeze example on Gitlab
KDE Store Category
few tutorials
GitLab
KDE Store Category
Tutorial
GitLab
KDE Store Category
Tutorial
GitLab
KDE Store Category
kde-gtk-config
Documentation
Panel Layout Template
Icon Theme
Plasma Style
Color Scheme
Task Switcher
Splash Screen