Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Use libdbus for trays on Linux instead of Ayatana and GTK#14582

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Draft
eafton wants to merge19 commits intolibsdl-org:main
base:main
Choose a base branch
Loading
fromeafton:tray-dbus

Conversation

@eafton
Copy link
Contributor

@eaftoneafton commentedDec 3, 2025
edited
Loading

WIP implementation of a pure libdbus tray implementation, shouldclose#13666,#11703 andTaiko2k/Tauon#1772.

Notes:
-Some of the menu interfaces are unimplemented for now.
-Tray creation, icon/tooltip setting works properly.
-Menu export and callbacks are working.
-DestroyTray does not clean up memory for menus and entries.
-Various TODOs in the code are present.
-Canonical's protocol is used for menu export, the GIO menu protocol is unsupported.
-Currently there is no support for the old XEmbed tray protocol, that will come once more "toolkit" functionality (see#14395) gets implemented. Functionality for having multiple tray drivers is already implemented.
-Tooltips are supported unlike the old Ayatana implementation.

image

@ssokolow@smcv@slouken

madebr and C0rn3j reacted with rocket emoji
@eaftoneafton marked this pull request as draftDecember 3, 2025 19:17
@sezero
Copy link
Contributor

Whitespace and style changes are making it difficult to read the actual changes.

Tiny patch to make it build on alder systems:

diff --git a/src/core/linux/SDL_dbus.h b/src/core/linux/SDL_dbus.hindex 738fc06..27dcd41 100644--- a/src/core/linux/SDL_dbus.h+++ b/src/core/linux/SDL_dbus.h@@ -38,6 +38,9 @@ #ifndef DBUS_TYPE_UNIX_FD #define DBUS_TYPE_UNIX_FD ((int)'h') #endif+#ifndef DBUS_ERROR_UNKNOWN_PROPERTY+#define DBUS_ERROR_UNKNOWN_PROPERTY "org.freedesktop.DBus.Error.UnknownProperty"+#endif  typedef struct SDL_DBusContext {

@eafton
Copy link
ContributorAuthor

+#ifndef DBUS_ERROR_UNKNOWN_PROPERTY+#define DBUS_ERROR_UNKNOWN_PROPERTY "org.freedesktop.DBus.Error.UnknownProperty"+#endif

Implemented.

@eafton
Copy link
ContributorAuthor

eafton commentedDec 4, 2025
edited
Loading

Menu export works now, I just gotta wire it up.

image

@C0rn3j
Copy link

Will this implementation count with being able to use scroll events?

Currently we use it to set volume up/down based on scroll up/down over the tray (albeit the support for that in the current tray ecosystem seems spotty).

https://github.com/Taiko2k/Tauon/blob/e943bef475eb555b6bd5769e02ec7f11f80d2d54/src/tauon/t_modules/t_dbus.py#L269-L289

@C0rn3jC0rn3j mentioned this pull requestDec 6, 2025
5 tasks
@ssokolow
Copy link

If I'm understanding theSDL docs correctly, the SDL API having its guts rewritten currently only exposes the ability to define a context menu and set an icon and tooltip.

(Which matches what I'm seeing in the diff where a quick Ctrl+F shows no mention of the D-BusSecondaryActivate orScroll signals...SecondaryActivate being middle click under KDE.)

@eafton
Copy link
ContributorAuthor

eafton commentedDec 6, 2025
edited
Loading

Will this implementation count with being able to use scroll events?

Currently we use it to set volume up/down based on scroll up/down over the tray (albeit the support for that in the current tray ecosystem seems spotty).

https://github.com/Taiko2k/Tauon/blob/e943bef475eb555b6bd5769e02ec7f11f80d2d54/src/tauon/t_modules/t_dbus.py#L269-L289

If the maintainers approve, we can add this.

@slouken

@slouken
Copy link
Collaborator

Will this implementation count with being able to use scroll events?
Currently we use it to set volume up/down based on scroll up/down over the tray (albeit the support for that in the current tray ecosystem seems spotty).
https://github.com/Taiko2k/Tauon/blob/e943bef475eb555b6bd5769e02ec7f11f80d2d54/src/tauon/t_modules/t_dbus.py#L269-L289

If the maintainers approve, we can add this.

@slouken

Sure, we can add this. Go ahead and create a separate follow-on PR once this lands and include Windows support as well.

Thanks!

@C0rn3j
Copy link

Two more things that I can't seem to find in the current source, is it planned to:

  1. Be able to hide/show the icon without destroying it completely? AppIndicator has this option viaset_status(0) andset_status(1) -https://lazka.github.io/pgi-docs/AyatanaAppIndicator3-0.1/classes/Indicator.html#AyatanaAppIndicator3.Indicator.set_status +https://lazka.github.io/pgi-docs/AyatanaAppIndicator3-0.1/enums.html#AyatanaAppIndicator3.IndicatorStatus

  2. Set icon description - this seems to be done for accessibility, unsure where/how it's actually used -https://lazka.github.io/pgi-docs/AyatanaAppIndicator3-0.1/classes/Indicator.html#AyatanaAppIndicator3.Indicator.set_icon_full

Thank you very much for working on this implementation!

@eafton
Copy link
ContributorAuthor

eafton commentedDec 9, 2025
edited
Loading

Two more things that I can't seem to find in the current source, is it planned to:

  1. Be able to hide/show the icon without destroying it completely? AppIndicator has this option viaset_status(0) andset_status(1) -https://lazka.github.io/pgi-docs/AyatanaAppIndicator3-0.1/classes/Indicator.html#AyatanaAppIndicator3.Indicator.set_status +https://lazka.github.io/pgi-docs/AyatanaAppIndicator3-0.1/enums.html#AyatanaAppIndicator3.IndicatorStatus
  2. Set icon description - this seems to be done for accessibility, unsure where/how it's actually used -https://lazka.github.io/pgi-docs/AyatanaAppIndicator3-0.1/classes/Indicator.html#AyatanaAppIndicator3.Indicator.set_icon_full

Thank you very much for working on this implementation!

What do you think?@slouken

@slouken
Copy link
Collaborator

Two more things that I can't seem to find in the current source, is it planned to:

  1. Be able to hide/show the icon without destroying it completely? AppIndicator has this option viaset_status(0) andset_status(1) -https://lazka.github.io/pgi-docs/AyatanaAppIndicator3-0.1/classes/Indicator.html#AyatanaAppIndicator3.Indicator.set_status +https://lazka.github.io/pgi-docs/AyatanaAppIndicator3-0.1/enums.html#AyatanaAppIndicator3.IndicatorStatus
  2. Set icon description - this seems to be done for accessibility, unsure where/how it's actually used -https://lazka.github.io/pgi-docs/AyatanaAppIndicator3-0.1/classes/Indicator.html#AyatanaAppIndicator3.Indicator.set_icon_full

Thank you very much for working on this implementation!

What do you think?@slouken

Typically we expose features in SDL that are available on multiple platforms. If this can be implemented on Windows, then it's fine to add. If it can't, we can discuss use cases and figure out if it makes sense to add it as a platform specific feature.

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

Reviewers

@KontrabantKontrabantKontrabant left review comments

@sloukensloukenslouken left review comments

@sezerosezerosezero left review comments

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Pure DBus tray item implementation?

6 participants

@eafton@sezero@C0rn3j@ssokolow@slouken@Kontrabant

[8]ページ先頭

©2009-2025 Movatter.jp