Skip to content

[DO NOT MERGE] Switch default Plasma theme to breeze-dark to stop colors-file polling#59

Open
zhovner wants to merge 1 commit into
devfrom
zhovner/kde-fixes
Open

[DO NOT MERGE] Switch default Plasma theme to breeze-dark to stop colors-file polling#59
zhovner wants to merge 1 commit into
devfrom
zhovner/kde-fixes

Conversation

@zhovner
Copy link
Copy Markdown
Member

@zhovner zhovner commented May 16, 2026

The shipped "default" Plasma desktop theme is broken — its /usr/share/plasma/desktoptheme/default/ directory does not contain a colors file, but plasmashell polls for it ~700 times per second with no negative caching. The constant statx + faccessat loop pins idle plasmashell at ~12% CPU continuously, slows menu opens to multiple seconds, and accumulates into visible UI glitches.

breeze-dark ships its own colors file, so the path resolves on the first probe and the polling loop disappears. Idle plasmashell drops from ~12% to near zero.

Bundled in the same commit:

  • /etc/xdg/plasmarc + /etc/xdg/kdeglobals set the breeze-dark Plasma theme, BreezeDark color scheme, breeze-dark icons, and Breeze widget style as system defaults. User-level overrides in ~/.config/* still win via the normal XDG lookup chain.

  • KWin systemd drop-in cleaned up to keep only Environment=KWIN_COMPOSE=O2. KWIN_FORCE_SW_CURSOR=1 dropped (hardware cursor works on HDMI and saves per-frame CPU; KWIN_COMPOSE=O2ES replaced with O2.

  • FlipperOne wallpaper shipped as /usr/share/wallpapers/FlipperOne/ and wired up as the default for both the lock screen (via kscreenlockerrc) and the desktop session (seeded into /home/user/.config/ via a new run action in the ospack recipe).

The shipped "default" Plasma desktop theme is broken — its
/usr/share/plasma/desktoptheme/default/ directory does not contain a
colors file, but plasmashell polls for it ~700 times per second with
no negative caching. The constant statx + faccessat loop pins idle
plasmashell at ~12% CPU continuously, slows menu opens to multiple
seconds, and accumulates into visible UI glitches.

breeze-dark ships its own colors file, so the path resolves on the
first probe and the polling loop disappears. Idle plasmashell drops
from ~12% to near zero.

Bundled in the same commit:

* /etc/xdg/plasmarc + /etc/xdg/kdeglobals set the breeze-dark Plasma
  theme, BreezeDark color scheme, breeze-dark icons, and Breeze widget
  style as system defaults. User-level overrides in ~/.config/* still
  win via the normal XDG lookup chain.

* KWin systemd drop-in cleaned up to keep only Environment=KWIN_COMPOSE=O2.
  KWIN_FORCE_SW_CURSOR=1 dropped (hardware cursor works on HDMI and saves
  per-frame CPU; KWIN_COMPOSE=O2ES replaced with O2.

* FlipperOne wallpaper shipped as /usr/share/wallpapers/FlipperOne/ and
  wired up as the default for both the lock screen (via kscreenlockerrc)
  and the desktop session (seeded into /home/user/.config/ via a new
  run action in the ospack recipe).
@zhovner zhovner requested a review from a team May 16, 2026 12:49
Copy link
Copy Markdown
Collaborator

@alchark alchark left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Going forward, let us please split changes so that one commit contains one logical change. Makes it easier to track breakages, revert things if needed, etc.

I'd like us to also use "Draft" state of PRs instead of [DO NOT MERGE] in titles - makes notifications more meaningful

Comment thread debian-rk3576-ospack.yaml
Comment on lines +168 to +177
mkdir -p /home/user/.config
cat > /home/user/.config/plasma-org.kde.plasma.desktop-appletsrc <<'EOF'
[Containments][1]
wallpaperplugin=org.kde.image

[Containments][1][Wallpaper][org.kde.image][General]
Image=file:///usr/share/wallpapers/FlipperOne/contents/images/wallpaper.jpg
PreviewImage=file:///usr/share/wallpapers/FlipperOne/contents/images/wallpaper.jpg
EOF
chown -R user:user /home/user/.config
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can these manual steps be replaced by an overlay file under /etc/xdg?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants