Automatically generate light/dark color themes for KDE (and pywal if installed) from your current wallpaper, using @T-Dynamos Python implementation of Google's Material Color Utilities
- Plasma Widget (Plasma 6 version)
- Support for all Wallpaper plugins (color, image, slideshows, animated, Plasma 5.26+ dark wallpaper variants)
- Update automatically on wallpaper change
- Change icon themes
- Start automatically on login
- Make titlebar darker to match specified applications like terminals, code editors and other programs themed by pywal
- Follow Plasma Material You Dark/Light change to work with theme schedulers like Koi
- Plasma addons
- Tint SierraBreeze window decoration buttons
- TitleBar opacity control for Klassy and SierraBreezeEnhanced window decorations
- ToolBar opacity control for Lightly Application style
- Tint Klassy window decoration outline
- Konsole color scheme
- opacity control
- Pywal support to theme other programs using Material You Colors
- Basic KSyntaxHighlighting support (Kate, KWrite, KDevelop...)
- Alternative Material You color selection if the wallpaper provides more than one
- Use your favorite color to generate Material You color schemes
- Custom colors list used for konsole/pywal
- Custom amount for colorfulness and brightness of theme
- Color scheme variants from Material You (Vibrant, Monochrome, Neutral...)
- Dark/light Color schemes (Plasma and pywal/konsole independently)
- Set a script that will be executed on start or wallpaper/dark/light/settings change
- Configuration file
-
Arch Linux AUR use your preferred AUR helper (e.g
yay -S kde-material-you-colors
) -
openSUSE Tumbleweed, Fedora 40/41/Rawhide see openSUSE Build Service repositories. These might break from time to time, reach out to me if you want to help maintaining them.
-
Install
pipx
system packages from your distribution packages. -
Install the backend
For Plasma 5 this is the last version, development has switched to plasma 6
pipx install kde-material-you-colors==1.7.1 pipx inject kde-material-you-colors pywal
For Plasma 6
pipx install kde-material-you-colors pipx inject kde-material-you-colors pywal # to upgrade to newer version pipx upgrade kde-material-you-colors
Note: You may need to install
gcc python-dbus-dev libglib2.0-dev
system packages or their equivalent for your distribution. Additionally, installing some libraries for Pillow may be necessary, see Pillow docs -
Install the widget from the KDE Store Plasma 6 version | Plasma 5 version
- Right click on the Panel > Add Widgets > Get New Widgets > Download New Plasma Widgets
- Search for "KDE Material You Colors", install & add it to your Panel/Desktop.
-
Install the screenshot helper. Optional but recommended if you use other than default Image wallpaper plugin
Plasma 6
Install
git extra-cmake-modules
system packages or their equivalent for your distribution.git clone https://github.com/luisbocanegra/kde-material-you-colors ./install-screenshot-helper.sh
Plasma 5
Install
git extra-cmake-modules
system packages or their equivalent for your distribution.git clone https://github.com/luisbocanegra/kde-material-you-colors -b plasma5 ./install-screenshot-helper.sh
To upgrade to a new version repeat these steps.
Note: When you upgrade te widget to a newer version it will inform you if it requires a new version of the backend.
You can Start and change the configuration from the widget.
kde-material-you-colors
Run kde-material-you-colors -h
to see the list of available options (Flags take precedence over configuration file)
If not installed by your package manager, run kde-material-you-colors -cl
- To start the program launch KDE Material You Colors from your applications list
- To stop, launch Stop KDE Material You Colors from your applications list
kde-material-you-colors -a
- Open System Settings > Autostart
- Remove kde-material-you-colors by clicking on the Trash button.
The preferred way to change the configuration is from the widget. If the configuration doesn't exist, it will be automatically created by the widget.
Editing manually
The default configuration file can be created by running kde-material-you-colors -c
the location is ~/.config/kde-material-you-colors/config.conf
Run kde-material-you-colors
with no arguments from terminal to test your changes in real time.
Due to Qt limitations, comments are removed from the configuration file by the widget. You can view the sample configuration file with comments here.
Q. How does this different from Plasma's "Accent Color From Wallpaper" and "Tint all colors with accent color"?
There are some key differences:
- Brighter accent/buttons colors
- Option to choose another color if the wallpaper returns more than one
- Can also apply colors to Konsole and pywal (both from wallpaper and custom ones)
- Colors comparison https://imgur.com/a/a28uZka (kde-material-you-colors top, default tint option bottom)
Q. Why there are duplicated color schemes in System Settings
To update color with plasma-apply-colorscheme
(utility provided by KDE developers), the file containing the new color scheme must have a different name than the current one, to workaround that, this program creates two color scheme files with different names, then applies one after the other. As a result you end up with duplicated color schemes and maybe some lag while updating schemes.
Q. Can't get wallpaper colors of the default wallpaper
If you are using the default Image wallpaper plugin try changing the image to something else at least once first.
Q. Slideshow wallpaper (or any other Plugin) doesn't update colors correctly
Try enabling Only use screenshot method from the widget Advanced settings
Q. How does wallpaper detection work and why it fails sometimes?
The wallpaper is obtained in the following order:
- First, uses the Plasma Desktop Scripting API to read Wallpaper plugin configuration.
- If the previous fails, the screenshot helper (if installed) is used
The backend uses the KWin Scripting API and calls the screenshot helper to take a Screenshot of the Desktop view using the KWin's Screenshot plugin
Both methods are somewhat robust but there are edge cases when detection will fail, which are explained here
Please read the Contributing guidelines in this repository
If you like the project you can:
Thank you ❤️
- @T-Dynamos Python Implementation of Material Color Utilities used by this project.
- @avanisubbiah Python Implementation of Material Color Utilities (used until v1.8.0).
- Material Color Utilities
- Pywal used to apply material colors to pywal supported software
- MaterialColorUtilities (C#) (used until v0.8.0).
- xdg-desktop-portal-kde base for desktop screenshot helper.
- kdotool base for getting desktop window id.
- Google LLC. / Pictogrammers for the widget icon assets.
- This comment on Reddit and ksetwallpaper for the code to get the current Wallpaper that served me as inspiration.