Skip to content

Improve tray icon behavior and KDE integration (patch p5)#127

Open
gbcox wants to merge 1 commit into
nullobsi:mainfrom
gbcox:trayicon-rescue
Open

Improve tray icon behavior and KDE integration (patch p5)#127
gbcox wants to merge 1 commit into
nullobsi:mainfrom
gbcox:trayicon-rescue

Conversation

@gbcox

@gbcox gbcox commented Dec 23, 2025

Copy link
Copy Markdown

Improve tray icon behavior and KDE integration

  • Use KStatusNotifierItem on KDE/Plasma when available
  • Ensure playback notifications are properly recorded in KDE notification history
  • Add notification when the playback queue finishes
  • Improve tray tooltip contents for current track

No overlay icons are added at this time.

 43 # Conflicts:
 42 #       CMakeLists.txt
 41 #
 40 # It looks like you may be committing a cherry-pick.
 39 # If this is not correct, please run
 38 #       git update-ref -d CHERRY_PICK_HEAD
 37 # and try again.
 36
 35
 34 # Please enter the commit message for your changes. Lines starting
 33 # with '#' will be ignored, and an empty message aborts the commit.
 32 #
 31 # Date:      Thu Aug 14 11:06:36 2025 -0700
 30 #
 29 # On branch trayicon-rescue
 28 # Your branch is up to date with 'upstream/main'.
 27 #
 26 # You are currently cherry-picking commit 064530e.
 25 #
 24 # Changes to be committed:
 23 #       modified:   CMakeLists.txt
 22 #       modified:   gui/mainwindow.cpp
 21 #       modified:   gui/trayitem.cpp
 20 #       modified:   gui/trayitem.h
 19 #       modified:   support/QtAwesome.cpp
 18 #
 17 # Untracked files:
 16 #       3rdparty/ebur128-not-used/
 15 #       3rdparty/kcategorizedview-debundle/
 14 #       3rdparty/qtiocompressor-removed/
 13 #       3rdparty/qtsingleapplication-not-used-linux/
 12 #       3rdparty/qxt-not-used-linux/
 11 #       3rdparty/solid-lite-not-used/
 10 #       CMakeLists.txt.IO
  9 #       CMakeLists.txt.old
  8 #       CMakeLists.txt.orig
  7 #       CMakeLists.txt.save
  6 #       data/
  5 #       online/onlinedbservice.cpp.orig
  4 #       online/podcastsearchdialog.cpp.orig
  3 #       support/CMakeCache.txt
  2 #       support/CMakeFiles/
  1 #       support/QtAwesome.cpp.txt
46  #                                              #
@gbcox gbcox force-pushed the trayicon-rescue branch from 1e2beaa to cedfb76 Compare June 13, 2026 03:02
@gbcox

gbcox commented Jun 13, 2026

Copy link
Copy Markdown
Author

Rebased onto current main / v3.5.0. The Nix workflow conflict is resolved and all required checks are passing now.

This should be ready to review/merge.

@nullobsi

Copy link
Copy Markdown
Owner

as this PR shows the KDE frameworks are simply awesome :D

it seems that KStatusNotifierItem has an automatic fallback to QSystemTrayIcon, so if I'm being honest, it makes sense to just replace all instances of QSystemTrayIcon with it... but I'm hesitant to have to vendor another library for non-Linux platforms (#152).

however, there is a lot of legacy cruft sitting in trayicon.cpp. I think I can merge this with some changes, but down the line I think I would like to review trayicon.cpp and see if a lot of the platform ifdefs can be cleaned up in favor of using KStatusNotifierItem.

@gbcox

gbcox commented Jun 13, 2026

Copy link
Copy Markdown
Author

Thanks, that makes sense to me.

My main goal with this PR was to improve the KDE/Plasma behavior without disturbing the other platforms, so I intentionally kept the change limited rather than trying to rewrite all of trayicon.cpp.

I agree that a broader cleanup could make sense later, especially if KStatusNotifierItem can replace some of the existing platform-specific handling cleanly. For now I am fine with you merging this with changes if you want to adjust the approach.

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