Plasma/Create a Global Theme Package

How to create your own Look and Feel package

First off all we need to install Plasma Look And Feel Explorer. It is a part of plasma-sdk package.

Plasma Look and Explorer is rather simple app. On the right panel/side you have 3 options:

  • A list of installed look and feel themes in your system, so you can pick one and edit it directly.
  • Open Theme folder - It opens a directory where look and feel themes are saved.

/home/yourusername/.local/share/plasma/look-and-feel/

  • New Theme, where you can fill all details of your theme, like name, author etc. You need to fill all the fields otherwise

OK button will stay grayed out. If you click OK you will get a notification saying Plasma Layout successfully duplicated

You can now chose your freshly created look and feel theme from the list of available themes and edit it in the main window.

  • Main window

It is rather self explanatory. You can edit details of your look an feel package (name, author, etc). These details are saved into metadata.desktop in your look and feel directory. You also have two buttons there.

  • Layout from current Plasma setup

It saves your current desktop layout like placement of panels, plasma applets, wallpaper etc. TODO Add some info what is exactly saved here. All these settings are saved into:

.local/share/plasma/look-and-feel/nameofyourtheme/contents/layout/org.kde.plasma.desktop-layout.js

This is a java script file executed when you check "Use desktop layout from theme" in Look And Feel kcm.

  • Defaults from current setup*

It creates .local/share/plasma/look-and-feel/nameofyourtheme/contents/"default" file where following settings are saved.

  • widget style
  • color scheme
  • icons
  • plasma theme
  • cursor theme
  • window switcher
  • desktop switcher
  • window decoration.

You can also add an image which will be used as a preview. Stored in .local/share/plasma/look-and-feel/nameofyourtheme/contents/preview

How to add dependencies from KDE Store.

First off all you need to add

X-KPackage-Dependencies=

to your metadata.desktop. Lets take a look at this example

Elementary Luna Plasma Color Schemes https://store.kde.org/p/1001720

X-KPackage-Dependencies=kns://colorschemes.knsrc/api.kde-look.org/1001720

kns:// - the name of the protocol

colorschemes.knsrc - type of the resource we want to download (color scheme in that case) Here is a list of available resources on my system (/etc/xdg)

  • aurorae.knsrc
  • cgcgtk3.knsrc
  • cgcicon.knsrc
  • cgctheme.knsrc
  • colorschemes.knsrc
  • comic.knsrc
  • discover_ktexteditor_codesnippets_core.knsrc
  • emoticons.knsrc
  • icons.knsrc -icons
  • kfontinst.knsrc
  • ksysguard.knsrc
  • kwineffect.knsrc
  • kwinscripts.knsrc
  • kwinswitcher.knsrc
  • lookandfeel.knsrc
  • plasma-themes.knsrc
  • plasmoids.knsrc
  • sddmtheme.knsrc
  • servicemenu.knsrc
  • wallpaper.knsrc
  • xcursor.knsrc


api.kde-look.org/1001720 - the url to the content stored on the server, from my experience api.kde-look.org/ is always the same, only id changes. You can get the id from the kde store url https://store.kde.org/p/1001720 1001720.

You can specify more than one dependency. Here is an example from United [1] metadata.desktop

X-KPackage-Dependencies=kns://colorschemes.knsrc/api.kde-look.org/1001495,kns://plasma-themes.knsrc/api.kde-look.org/998797,kns://aurorae.knsrc/api.kde-look.org/1136954

On JSON:

X-KPackage-Dependencies: { "kns://colorschemes.knsrc/api.kde-look.org/1001495", "kns://plasma-themes.knsrc/api.kde-look.org/998797", "kns://aurorae.knsrc/api.kde-look.org/1136954" }
  • Color Scheme (Ambiance)

https://store.kde.org/p/1001495

  • Plasma theme (Unity Ambiance)

https://store.kde.org/p/998797

  • Aurorae (Blender Ambiance)

https://store.kde.org/p/1136954

You can install your look and feel package from terminal using kpackagetool5 -i "name of your theme" It will be installed to .local/share/plasma/look-and-feel/ Type kpackagetool5 -h to see more options

= System dependencies (experimental)

You can specify system dependencies using their AppStream URI scheme. More information about it can be found here: https://www.freedesktop.org/software/appstream/docs/sect-AppStream-Services-UrlHandler.html

To look up what's the resource you are looking for, you can check on your system by calling "appstreamcli search <something>"

When the Look and Feel package is installed, if a system dependency is specified, it will be the system deciding how to install it, most likely using PackageKit.


This page was last edited on 6 September 2020, at 14:22. Content is available under Creative Commons License SA 4.0 unless otherwise noted.