Add user-configurable option to show/hide notification timeout indicator
Reason for the change
Problem: The notification timeout indicator (progress bar) continuously animates while notifications are displayed, causing significant CPU usage (reported as ~15% on dual-core systems) and making notifications more visually distracting. Users have no way to disable this behavior.
Solution: This MR adds a "Show timeout indicator" checkbox in System Settings → Notifications that allows users to control the visibility of the timeout progress bar. When disabled, the animation is stopped entirely, eliminating the CPU overhead.
Benefits:
- Reduces CPU consumption for users who don't need the visual indicator
- Improves battery life on laptops and mobile devices
- Reduces visual distraction for accessibility-conscious users
- Maintains backward compatibility (enabled by default)
- Gives users control over their notification experience
Changes:
- libnotificationmanager/kcfg/notificationsettings.kcfg: Added
ShowPopupTimeoutboolean setting (default: true) - kcms/notifications/ui/main.qml: Added checkbox control in the Notifications settings panel
- applets/notifications/delegates/DelegatePopup.qml: Bound timeout indicator visibility to the setting
- applets/notifications/NotificationPopup.qml: Stopped animation when indicator is hidden
Test plan
- Build and install all components:
notificationmanager,kcm_notifications,org.kde.plasma.notifications - Open System Settings → Notifications and verify the "Show timeout indicator" checkbox appears
- Toggle the checkbox and verify it persists in
~/.config/plasmanotifyrc - Trigger test notification using
notify-sendwith indicator enabled and disabled to confirm visibility and animation behavior
Bugs fixed
FEATURE: 411613
FIXED-IN: 6.6.0
(This is my first contribution to KDE!)
Edited by Nate Graham