plasma6-panel-config
Configure KDE Plasma 6 panels, widgets, digital clock fonts, and Panel Colorizer styling. Use when modifying panel appearance, copying panel configs between monitors, fixing widget fonts, or troubleshooting Panel Colorizer not applying styles.
When & Why to Use This Skill
This Claude skill provides a comprehensive guide and automation workflow for configuring KDE Plasma 6 panels, widgets, and styling. It simplifies the complex process of modifying system configuration files, managing digital clock fonts, and troubleshooting Panel Colorizer issues, ensuring that changes are applied correctly and persist through system restarts.
Use Cases
- Case 1: Customizing KDE Plasma 6 panel aesthetics, including precise control over digital clock font families, sizes, and weights.
- Case 2: Synchronizing and copying panel configurations across multiple monitors to maintain a consistent desktop layout in Linux environments.
- Case 3: Troubleshooting and fixing issues where Panel Colorizer styles or widget font settings are silently ignored or overwritten by the system.
- Case 4: Automating the 'kill-edit-restart' workflow for plasmashell to safely modify the plasma-org.kde.plasma.desktop-appletsrc configuration file.
| name | plasma6-panel-config |
|---|---|
| description | Configure KDE Plasma 6 panels, widgets, digital clock fonts, and Panel Colorizer styling. Use when modifying panel appearance, copying panel configs between monitors, fixing widget fonts, or troubleshooting Panel Colorizer not applying styles. |
Plasma 6 Panel Configuration
Purpose: Modify Plasma panel/widget configs without trial-and-error pain. When to use: Panel styling, clock fonts, colorizer issues, multi-monitor panel sync.
Critical: Edit Workflow
Plasmashell overwrites config on exit. Always:
pkill plasmashell
# make edits to config file
nohup plasmashell &>/dev/null &
Config File
Location: ~/.config/plasma-org.kde.plasma.desktop-appletsrc
Format: INI-style with nested sections. File is ~66K tokens - use grep/offset reads.
Structure:
[Containments][PANEL_ID]
lastScreen=SCREEN_NUMBER
plugin=org.kde.panel
[Containments][PANEL_ID][Applets][WIDGET_ID]
plugin=org.kde.plasma.digitalclock
[Containments][PANEL_ID][Applets][WIDGET_ID][Configuration][Appearance]
# widget-specific settings here
Finding Things
| Find | Grep Pattern |
|---|---|
| All panels | plugin=org.kde.panel |
| Digital clocks | plugin=org.kde.plasma.digitalclock |
| Panel Colorizer | plugin=luisbocanegra.panel.colorizer |
| Screen mapping | lastScreen= |
| Appearance sections | \[Configuration\]\[Appearance\] |
Digital Clock Font Settings
Under [Containments][PANEL][Applets][CLOCK][Configuration][Appearance]:
| Setting | Required Value | Notes |
|---|---|---|
autoFontAndSize |
false |
CRITICAL - must be false or font settings ignored |
fontFamily |
e.g. Hack Nerd Font |
Font name exactly as system knows it |
fontSize |
e.g. 9 |
Integer |
boldText |
true or false |
|
fontStyleName |
e.g. Bold |
|
fontWeight |
e.g. 700 |
400=normal, 700=bold |
BAD: Adding font settings without autoFontAndSize=false
fontFamily=Hack Nerd Font
fontSize=9
Result: Settings silently ignored, uses system default.
GOOD: Include the disable flag
autoFontAndSize=false
fontFamily=Hack Nerd Font
fontSize=9
fontStyleName=Bold
fontWeight=700
boldText=true
Panel Colorizer
Preset Location
~/.local/share/plasma/plasmoids/luisbocanegra.panel.colorizer/contents/ui/presets/
Config Location
Under [Containments][PANEL][Applets][COLORIZER][Configuration][General]:
globalSettings={"panel":{"normal":{"enabled":true,...huge JSON...}}}
lastPreset=/path/to/preset
The JSON Blob
globalSettings is a single-line JSON blob (thousands of chars). Key paths:
| JSON Path | Purpose | Required for Styling |
|---|---|---|
panel.normal.enabled |
Master enable | Must be true |
panel.normal.backgroundColor.enabled |
Enable bg color | Yes for custom bg |
panel.normal.backgroundColor.custom |
Hex color | e.g. #000000 |
panel.normal.backgroundColor.sourceType |
Color source | 0 = use custom |
widgets.normal.foregroundColor.enabled |
Enable text color | Yes for custom text |
widgets.normal.foregroundColor.custom |
Hex color | e.g. #FFFFFF |
BAD: Panel colorizer not styling
"panel":{"normal":{"enabled":false,...
Result: All styling silently disabled.
GOOD: Enable the panel styling
"panel":{"normal":{"enabled":true,...
Copying Colorizer Between Panels
- Find source panel's colorizer widget ID
- Copy entire
globalSettings=line to target - Copy
lastPreset=line if using presets
Randy's Current Panel Mapping
| Panel ID | Screen | Monitor | Clock Widget | Colorizer Widget |
|---|---|---|---|---|
| 209 | 2 | HP | 309 | 323 |
| 273 | 0 | LG | 276 | 321 |
| 291 | 1 | ASUS | 326 | 345 |
Note: Widget IDs are arbitrary. Always grep for plugin names to find current IDs.
Common Gotchas
| Issue | Cause | Fix |
|---|---|---|
| Edits not persisting | Plasmashell overwrote on restart | Kill plasmashell BEFORE editing |
| Font settings ignored | Missing autoFontAndSize=false |
Add the flag |
| Colorizer does nothing | panel.normal.enabled: false in JSON |
Set to true |
| Wrong panel modified | Screen numbers changed | Verify lastScreen values |
| Can't find widget | Grepping wrong plugin name | Use exact plugin string |
Quick Copy-Paste Templates
Clock with Hack Nerd Font
[Containments][PANEL_ID][Applets][CLOCK_ID][Configuration][Appearance]
autoFontAndSize=false
boldText=true
customDateFormat=ddd, MMM d |
dateDisplayFormat=BesideTime
dateFormat=custom
fontFamily=Hack Nerd Font
fontSize=9
fontStyleName=Bold
fontWeight=700
showLocalTimezone=true
showSeconds=2
use24hFormat=2