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 ShowPopupTimeout boolean 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: notificationmanagerkcm_notificationsorg.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-send with 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

Merge request reports

Loading