Skip to content
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite from the ground up using Gio menus and actions #82

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

tari01
Copy link
Member

@tari01 tari01 commented Sep 26, 2024

depends: AyatanaIndicators/ayatana-indicator-application#24

This follows the model/view architecture used by our system indicators. Some of the major changes:

  • Since our only depency is Gio, the indicators will work with Gtk3, Gtk4, Lomiri, etc
  • The deprecated and dead GtkStatusIcon is finally gone
  • We have tooltips now
  • The zombie libdbusmenu project is no longer required, we can safely abandon it
  • Since tons of very old code are gone, we are now consistently GPL-3+
  • Due to path/name changes, right now we can run these new indicators alongside legacy appindicators
  • This new library is low-maintenance and easy to expand without deprecation fears
  • The door is now open for dropping the old libindicator object and using indicator-ng for everything

This follows the model/view architecture used by our system indicators. Some of the major changes:

 - Since our only depency is Gio, the indicators will work with Gtk3, Gtk4, Lomiri, etc
 - The deprecated and dead GtkStatusIcon is finally gone
 - We have tooltips now
 - The zombie libdbusmenu project is no longer required, we can safely abandon it
 - Since tons of very old code are gone, we are now consistently GPL-3+
 - Due to path/name changes, right now we can run these new indicators alongside legacy appindicators
 - This new library is low-maintenance and easy to expand without deprecation fears
 - The door is now open for dropping the old libindicator object and using inditor-ng for everything
@tari01 tari01 force-pushed the pr/complete-rewrite-using-gmenu branch from 6f92888 to 25f856f Compare October 18, 2024 03:49
@ricciolino
Copy link

We have tooltips now

I tried building libayatana-appindicator with test support from forked repo here, then running simple-client C test program.

I still cannot see any tooltip on mouse over icon event.

image

OS: Ubuntu 22.04.5 LTS
GNOME Version: 42.9
Windowing System: X11

@tari01
Copy link
Member Author

tari01 commented Dec 18, 2024

We have tooltips now

I tried building libayatana-appindicator with test support from forked repo here, then running simple-client C test program.

I still cannot see any tooltip on mouse over icon event.

image

OS: Ubuntu 22.04.5 LTS GNOME Version: 42.9 Windowing System: X11

Displaying the tooltips ultimately depends on the renderer. These PRs add the ability to handle them, but in GNOME's case there is also some extension for indicators. I advise you not to use this yet, it is a completely new API, not backwards compatible with existing appindicators and renderers. Also, the menu is not being sent via the old dbusmenu, but using a native Gio method, which diverges from KStatusNotifierItem.

It is still unmerged because we need to address transition issues.

@ricciolino
Copy link

We have tooltips now

I tried building libayatana-appindicator with test support from forked repo here, then running simple-client C test program.

I still cannot see any tooltip on mouse over icon event.

image

OS: Ubuntu 22.04.5 LTS GNOME Version: 42.9 Windowing System: X11

Displaying the tooltips ultimately depends on the renderer. These PRs add the ability to handle them, but in GNOME's case there is also some extension for indicators. I advise you not to use this yet, it is a completely new API, not backwards compatible with existing appindicators and renderers. Also, the menu is not being sent via the old dbusmenu, but using a native Gio method, which diverges from KStatusNotifierItem.

It is still unmerged because we need to address transition issues.

So, practically, for the current state of GNOME's development, there is no way to instantiate a Gtk tray icon with tooltip appearance on mouse over event.

Is this right?

@tari01
Copy link
Member Author

tari01 commented Dec 18, 2024

So, practically, for the current state of GNOME's development, there is no way to instantiate a Gtk tray icon with tooltip appearance on mouse over event.

Is this right?

Yes. AyatanaIndicators/ayatana-indicator-application#24 adds the ability to handle tooltips, but the issue seems to be in https://github.com/ubuntu/gnome-shell-extension-appindicator (according to the README).

@ricciolino
Copy link

So, practically, for the current state of GNOME's development, there is no way to instantiate a Gtk tray icon with tooltip appearance on mouse over event.
Is this right?

Yes. AyatanaIndicators/ayatana-indicator-application#24 adds the ability to handle tooltips, but the issue seems to be in https://github.com/ubuntu/gnome-shell-extension-appindicator (according to the README).

Isn't there a (even dirty) way of overcome this limitation by implementing something that somehow detects when mouse is over the instantiate Gtk tray icon area and shows a borderless X11 tooltip dialog kind ?

@tari01
Copy link
Member Author

tari01 commented Dec 18, 2024

Isn't there a (even dirty) way of overcome this limitation by implementing something that somehow detects when mouse is over the instantiate Gtk tray icon area and shows a borderless X11 tooltip dialog kind ?

I'm afraid not on GNOME. No tooltips until we merge AyatanaIndicators/ayatana-indicator-application#24, and then you would have to talk to the developers at https://github.com/ubuntu/gnome-shell-extension-appindicator to have them displayed.

On MATE, for instance, this change enables and also shows the tooltips.

@ricciolino
Copy link

Ok understood TY ;)

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