Skip to content

Fully-featured widget to bring Latte-Dock and WM status bar customization features to the default KDE Plasma panel

License

Notifications You must be signed in to change notification settings

luisbocanegra/plasma-panel-colorizer

Repository files navigation

Panel Colorizer

AUR version Dynamic JSON Badge Liberapay

Fully-featured widget to bring Latte-Dock and WM status bar customization features to the default Plasma panel.

panel

Inspired by the Latte Dock (now unmaintained) theming and boosted by the laziness to learn editing Plasma themes (which can only change background and other small things) created this project that helps you make the Plasma panels look almost however you want.

Demo

Demo

Settings

tooltip

Features

Presets

  • Create your own configuration presets
  • Restore defaults
  • Preset auto-loading
    • Floating panel
    • Maximized window shown

Widget Background

  • Color modes
    • Static
    • Animated
      • Interval
      • Fading
  • Colors
    • Custom
    • System
    • Custom list
    • Random
  • Contrast correction
  • Style
    • Spacing
    • Margin rules
    • Border radius
    • Outline
    • Opacity
    • Shadow
    • Line mode

Icons and text

  • Color Modes
    • Static
    • Interval
    • Follow widget background
  • Colors
    • Custom
    • System
    • Custom list
    • Random
    • Contrast correction
  • Opacity
  • Blacklisted widgets color
  • Force icon color to on specific plasmoids that use Kirigami.Icon
  • Recolor applications tray icon
  • Icons/text shadow

Panel background

  • Opacity
  • Color
  • Border radius
  • Outline
  • Constant floating panel side padding

Warning

Changing panel settings (position, alignment, width etc.) with this option enabled may cause some jankiness (including visual overflow or widget position freezes). Restarting Plasma or logging out may fix those, if not, disable it and logout to restore the original behavior.

  • Shadow
  • Remove original panel background

Other

  • Widget Blacklist

Installing

Install from KDE Store or use Get new widgets..

Manually

  1. Install these dependencies or their equivalents for your distribution

    cmake extra-cmake-modules libplasma plasma5support
  2. Run

    git clone https://github.com/luisbocanegra/plasma-panel-colorizer
    cd plasma-panel-colorizer
    ./install.sh

Arch Linux

aur/plasma6-applets-panel-colorizer use your preferred AUR helper e.g:

yay -S plasma6-applets-panel-colorizer

How to use

  1. Put the widget on any of your panels
  2. Go to the widget settings to change the current panel appearance (right click > Configure...)
  3. Widget can set to only show in panel Edit Mode (right click > Hide widget or from the widget settings)

Restore the original panel appearance

Changes to the panel are not permanent and can be removed by disabling them from Widget Settings > General tab > Enabled checkbox or removing it from the panel and restarting Plasma/logging out.

Fix Blacklist/Margin/Force recolor not working after updating to version 0.5.0

Since version 0.5.0 partial widget names e.g. weather are no longer allowed. This causes previous rules to stay even after removing the matched widgets.

A button to restore/clear the default rules has been added to the relevant sections. image

To fix all saved presets a script is provided:

git clone https://github.com/luisbocanegra/plasma-panel-colorizer
cd plasma-panel-colorizer
./fix-presets-widget-rules.sh

The same script can be used to maintain the same widget rules for all presets

How it works / hacking

This widget works by inject/managing the background and colors of other widgets and the panel where it is placed, the initial goal was to replicate the famous WM status bar look and some Latte Dock theming options without actually modifying the panel/widgets source code.

Technical

Background is drawn by creating rectangle areas bellow widgets/panel, text and icons repaint is done by editing some elements color property and overwriting Kirigami.Theme.<something>Color colors for others, while this works for most widgets, there are some that won't because they draw text and icons differently to what this project matches, if you find a widget that doesn't get colors let me know here and I will try supporting it.

Performance

Some widgets really like to create/destroy/recolor their own widget elements (e.g. Global Menu), to account for this, text and icons color are re-applied every 250ms. I tried to optimize it so CPU usage only increases around 1-2% on my computer, but usage could vary depending on your System or how many widgets are in your panels.

Support the development

If you like the project you can:

"Buy Me A Coffee" Liberapay

Thank you ❤️

Acknowledgements