Open-source project
luisbocanegra/kde-material-you-colors avatar
luisbocanegra/kde-material-you-colors

kde-material-you-colors: theming KDE from your wallpaper

Automatic color scheme generator from your wallpaper for KDE Plasma powered by Material You

1,045 stars21 forksPythonGPL-3.0

At a glance

What is it?
kde-material-you-colors is a Python tool and Plasma widget that takes the colours from your desktop wallpaper and generates matching light and dark Material You schemes for Plasma, Konsole, pywal and other themed programs. It updates when the wallpaper changes, and it ships through four different channels, from the AUR and the KDE Store to PyPI and the openSUSE Build Service.
Who is it for?
Adopt kde-material-you-colors if you use KDE Plasma and want a colour scheme that follows your wallpaper, and install the Plasma widget from the KDE Store if you want it to react to wallpaper changes without a script. Do not adopt it for GNOME, XFCE or a non-Linux desktop, since the plugin work is Plasma specific, and do not expect it to theme applications that do not use pywal, KSyntaxHighlighting or the Konsole scheme format.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 47 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The wallpaper is the input, the theme is the output

The project describes itself as an automatic color scheme generator from your wallpaper for KDE Plasma, powered by Material You, and the mechanism is stated plainly: it automatically generates light and dark color themes for KDE, and for pywal if it is installed, from your current wallpaper.

The colour science is borrowed rather than invented, and the README names both layers. It uses the T-Dynamos Python implementation of Google's Material Color Utilities, the reference algorithms that turn a seed colour into a tonal palette, and the result is a set of roles rather than a set of hex codes, which is why the output can be applied to a window decoration, a terminal and a set of applications and still look like one system.

That role-based approach is the interesting part of the design. A traditional wallpaper script picks a colour out of the image and derives a palette from it, which tends to produce a scheme that is technically derived and visually unconvincing. Material You takes a seed and generates a full tonal ramp, with a primary, a secondary, a tertiary, surfaces and containers, and the dark and light variants are two readings of the same ramp rather than two unrelated palettes.

The dependency list confirms the approach. materialyoucolor at 3.0.2 or newer provides the palette generation, pillow handles the image, numpy the pixels, python-magic identifies the wallpaper file type, PyGObject and dbus-python do the desktop integration, and the whole thing is pure Python with no compiled extension of its own.

A widget that watches the wallpaper

The Plasma-specific features are the reason this is more than a command line colour script.

There is a Plasma Widget, the Plasma 6 version of it, published on the KDE Store. It supports all the wallpaper plugins, which means colour wallpapers, image wallpapers, slideshows and animated ones, along with the Plasma 5.26 and later dark wallpaper variants. It updates automatically on a wallpaper change, it can change the icon themes to match, and it can start automatically on login.

Two of those features are integration rather than cosmetics. Making the titlebar darker to match specified applications, such as terminals, code editors and other programs themed by pywal, is what stops a themed terminal from looking pasted onto an unthemed desktop. And following the Plasma Material You Dark or Light change lets the tool work with theme schedulers like Koi, which is the difference between a tool that follows the wallpaper and a tool that follows the whole desktop's light or dark state.

The Plasma addons section is a list of specific integrations with specific window decorations: tinting the SierraBreeze window decoration buttons, titlebar opacity control for Klassy and SierraBreezeEnhanced, toolbar opacity control for the Lightly application style, and tinting the Klassy window decoration outline. These are small adjustments that only make sense once the base scheme is already right, and their presence tells you the author has been matching the tool against real themes rather than shipping a generic one.

Konsole, pywal and the syntax highlighting subset

The themeable programs section is what turns this from a Plasma theme into a desktop theme.

The Konsole color scheme is generated with opacity and blur control, so the terminal can match the desktop's translucency rather than being an opaque rectangle in the corner. The pywal support themes other programs using the same Material You colours, which is the mechanism that makes the terminal, the code editor and the rest of the user's toolkit consistent.

There is basic KSyntaxHighlighting support, which covers Kate, KWrite and KDevelop. Basic is the operative word and the README is honest about the scope, so this is the syntax highlighting framework being fed a generated colour set rather than a full custom highlighting theme.

The theming options are where the tool stops being automatic. If the wallpaper provides more than one candidate colour, the alternative Material You color selection lets you pick which one is the seed. You can use your favourite colour to generate the schemes regardless of the wallpaper. There is a custom colors list used for Konsole and pywal, a custom amount for the colorfulness and brightness of the theme, and the Material You scheme variants, including Monochrome and Neutral.

Dark and light colour schemes can be set independently for Plasma and for pywal and Konsole, which matters because a terminal that follows the desktop can end up unreadable if the two are forced to the same mode.

There is also a script that will be executed on start, or on a wallpaper, dark, light or settings change. That is the escape hatch for anything the tool does not do natively, and it also means the tool can run arbitrary code on a wallpaper change, which is worth knowing before you install it.

A configuration file completes the list, and a separate metadata file for the plasmoid package is what the KDE Store badge reads the version from.

Five ways to install, and a Plasma version split

The distribution reach of this project is unusual for a small theming tool, and the badges at the top of the README show it: the AUR, PyPI, the KDE Store, and the openSUSE Build Service for Fedora, openSUSE Tumbleweed, openSUSE Slowroll and Fedora Rawhide.

The Arch route is the shortest:

sh
yay -S kde-material-you-colors

The openSUSE Build Service packages are maintained with another person, and the install instructions live on the software.opensuse.org download page for the project.

The manual install is the one to read carefully, because the project has two parts. You install the pipx system packages from your distribution, then you install the backend. And the README includes a warning that matters: for Plasma 5 this is the last version, and development has switched to Plasma 6.

That is a hard boundary. A Plasma 6 widget is not a Plasma 5 widget, the QML and the plugin metadata differ, and the project is explicit that the older platform is now frozen. Anyone on Plasma 5, which includes a lot of long-lived distributions, is installing a maintained package that will not gain new features.

The Python package metadata supports both. The distribution name is kde-material-you-colors at version 2.2.0, it requires Python 3.8 or newer, and it installs a console script called kde-material-you-colors that points at the main module. The pywal integration is an optional extra rather than a hard dependency, so a user who does not want pywal does not get it.

Where kde-material-you-colors is the wrong choice

The first wrong-tool case is a desktop that is not Plasma. The widget, the wallpaper plugins, the follow-the-dark-light behaviour and the window decoration addons are all Plasma specific, so on GNOME, XFCE or any other desktop the tool reduces to a script that writes a few files, and the desktop will not apply them.

The second is a user who wants a fixed, curated theme. This is a generator, and a generated scheme is by definition a compromise. The Material You scheme variants, such as Monochrome and Neutral, exist because the automatic result is not always the one you want, and the amount of customisation required to get from a generated scheme to a hand-tuned one is a matter of taste. If you want a designed theme, a designed theme is the answer.

The third is an application that is not themeable by the mechanisms this tool uses. The coverage is Konsole, pywal-aware programs, and basic KSyntaxHighlighting for the Kate family. A browser, a chat client or a proprietary application is going to keep its own colours unless something else handles it, and a desktop where one window does not match is worse than a desktop that is consistently plain.

There is also a small operational point. The script that runs on a wallpaper or settings change executes automatically, and that is a useful feature and a risk at the same time. Anyone who edits the script or the configuration needs to know that a wallpaper change runs it.

GPL-3.0, version 2.2.0, and a project that ships to five channels

The project is licensed under GPL-3.0, with the LICENSE file at the repository root and a matching classifier in the package metadata, which is a licence worth thinking about for a theme, since a theme is a creative work that people copy and modify.

The release history shows two releases three days apart in March 2026, v2.1.0 on 2026-03-23 and v2.2.0 on 2026-03-26, after v2.0.2 from 2025-11-30. So the project moved to 2.x in late 2025 and has been iterating quickly since. The repository is not archived, and the last push was on 2026-09-05, a little over a month before this review.

The tooling in the tree matches a project that ships to several channels at once. There is a release-please configuration with a manifest, which automates version bumps and changelog entries across several release targets, and a CHANGELOG.md at the root. There is a CMakeLists.txt as well as the Python packaging, which is the build for the plasmoid side of the project, a .clang-format for any C++ in the tree, a .pylintrc for the Python, and an install-screenshot-helper.sh that prepares the screenshots the KDE Store listing uses.

The src/ directory holds the Python package and, under src/plasmoid, the Plasma widget with its own package metadata, which is the file the KDE Store badge reads the plugin version from. MANIFEST.in controls what goes into the Python distribution, and the presence of a separate release manifest and a store metadata file is the practical signature of a project that has to keep three version numbers in step: the Python package, the plasmoid and the packaging repository.

Editorial conclusion

Adopt kde-material-you-colors if you use KDE Plasma and want a colour scheme that follows your wallpaper, and install the Plasma widget from the KDE Store if you want it to react to wallpaper changes without a script. Do not adopt it for GNOME, XFCE or a non-Linux desktop, since the plugin work is Plasma specific, and do not expect it to theme applications that do not use pywal, KSyntaxHighlighting or the Konsole scheme format. Before you install, check the Plasma version, since the README says the Plasma 5 line is the last release for that platform, and note the GPL-3.0 licence before you distribute a modified version.

Frequently asked questions

What does kde-material-you-colors generate?

Light and dark color themes for KDE, and for pywal if it is installed, generated from your current wallpaper using the T-Dynamos Python implementation of Google's Material Color Utilities. The output covers Plasma, the Konsole color scheme, pywal-themed programs and basic KSyntaxHighlighting support for Kate, KWrite and KDevelop.

How do I install kde-material-you-colors?

Through the AUR with yay -S kde-material-you-colors, from the KDE Store as a Plasma widget, from PyPI, or from the openSUSE Build Service for Fedora and openSUSE. The manual install path is to install pipx from your distribution packages and then install the backend.

Does the Plasma widget react to wallpaper changes?

Yes. It supports all the wallpaper plugins, including colour, image, slideshow and animated ones plus the Plasma 5.26 and later dark wallpaper variants, and it updates automatically when the wallpaper changes. It can also start automatically on login and change the icon themes to match.

Can I choose the colours the theme is built from?

Yes. There is an alternative Material You colour selection when the wallpaper provides more than one candidate, an option to use your favourite colour regardless of the wallpaper, a custom colours list used for Konsole and pywal, a custom amount for the colourfulness and brightness of the theme, and the Material You scheme variants such as Monochrome and Neutral.

Is Plasma 5 still supported?

The README says that for Plasma 5 this is the last version, and that development has switched to Plasma 6. The KDE Store widget is the Plasma 6 version, and the current release is v2.2.0, dated 2026-03-26.

Official sources

  1. License: GPL-3.0
  2. luisbocanegra/kde-material-you-colors on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/luisbocanegra-kde-material-you-colors.svg)](https://hysenlabs.com/projects/luisbocanegra-kde-material-you-colors)

Was this useful?