Ferdi: Tray icon disappears on resume (Linux)

Created on 7 Oct 2020  路  4Comments  路  Source: getferdi/ferdi

" are comments from us and won't be
visible in your bug report, so please don't put any text in them.
-->
Bug description:
Tray icon disappears on resume

Steps to reproduce:

  1. Start Ferdi
  2. Let everything load
  3. Suspend/close lid
  4. Resume/open lid
  5. Tray icon has disappeared and does not reappear even when reopening Ferdi.

Expected behavior

Screenshots

Environment:

  • Operating System: Ubuntu 19
  • Ferdi Version: 5.5.0
  • Server: Ferdi

  • Debug information:

bug

Most helpful comment

Issue-Label Bot is automatically applying the label bug to this issue, with a confidence of 0.94. Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback!

Links: app homepage, dashboard and code for this bot.

All 4 comments

Issue-Label Bot is automatically applying the label bug to this issue, with a confidence of 0.94. Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback!

Links: app homepage, dashboard and code for this bot.

Same happens on Windows for a long time already (not always persistently), also happens on Franz.

We had many issues like this in the past (like https://github.com/getferdi/ferdi/issues/949, https://github.com/getferdi/ferdi/issues/437, https://github.com/getferdi/ferdi/issues/338). The fundamental problem is that Ferdi, being written using Electron, reuses Chrome(ium)'s system tray handling code, which is flaky. I suspect Chromium doesn't really exercise that code often (few websites need tray icons), and it's a system integration functionality that is very hard to test. This is compounded by the idiosyncratic system tray support (see e.g. https://github.com/getferdi/ferdi/issues/437#issuecomment-630758456) in many Linux desktop environment.

A way forward would be to create our own system tray support code, or delegate to NPM packages hooking into native APIs (e.g., Shell_NotifyIcon for Windows, NSStatusItem for MacOS, and D-Bus StatusNotifierItem on Linux). I believe this is what Wavebox did with their desktop integration, but unfortunately they recently went proprietary closed-source.

Even better would be a notification status API (see https://github.com/getferdi/ferdi/issues/967), e.g. over D-Bus for Linux, or even more generically for other platforms, so that users could opt for a custom desktop integration mechanisms (Xfce panel applet, GNOME Shell Extension, i3status script, etc.)

However, these solutions need a lot of work, and even more integration and user testing. In the meantime, we could try to make the current tray icon support a bit more robust (but it'll probably never be bulletproof).

This might also account for the crashes of Ferdi when I switch tray icon from on to off then back on again.

Nonetheless, it's something that isn't a showstopper for me, as it is a known issue.

Keep up the good work!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

sbienkow picture sbienkow  路  3Comments

AP-Hunt picture AP-Hunt  路  3Comments

adithshenoy picture adithshenoy  路  3Comments

PeSader picture PeSader  路  3Comments

dzg picture dzg  路  3Comments