laurent22 / joplin

Joplin - the privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS.
https://joplinapp.org
Other
44.99k stars 4.89k forks source link

(In)visibility issue in Xfce 4 systray after upgrading to 1.0.216 desktop AppImage #3323

Closed b3taman closed 4 years ago

b3taman commented 4 years ago

Environment

Joplin version: 1.0.216 Platform: Linux OS specifics: 64-bit MX-Linux (Debain based), using Xfce 4.

Steps to reproduce

  1. Joplin set to start minimised to systray
  2. Upgrade from 1.0.200 to 1.0.216
  3. Run Joplin

Describe what you expected to happen

Joplin should be visible in the systray (in the permanent position) and its visibility should be toggled with Ctrl-Alt-J. None of this happens, and Joplin is invisible. Running pgrep -ic joplin returns 7 (the number of Joplin processes), which is the same as before. Thus Joplin is running.

The only way to make the UI visible is to run Joplin once more. , at which time the UI opens. The pgrep call thankfully returns the same, so this is literally just getting the UI visible.

When I press the close window button or press Alt-F4 the UI disappears, and the 7 processes are still running. Again, the only way to get the UI back again is once more to run Joplin.

When the UI is visible, there is a Joplin icon in the systray, but not in the "permanent" part of it; only in the transient part. In other words, the moment the UI disappears, so does the icon. Previously the icon was permanently in the systray.

At no time does Ctrl-Alt-J work as before.

The only change I made was to upgrade the AppImage.

Logfiles

They are attached. I kept a tail on log.txt and the final entry was upon the initial invocation of Joplin (when it was invisible). Running it again made no further entries to log.txt, though it did display the UI. log.txt log_console.txt

b3taman commented 4 years ago

Um... thanks for the attention, but if it's not a bug, then what is it?

I found a similar report (#3320), but that was closed because it was in the unsupported AUR package. This one is is in the AppImage (which i assume is supported), hence a new issue was raised.

Am I missing something?

dioni21 commented 4 years ago

Maybe we should all be running Windows. :joy:

laurent22 commented 4 years ago

There are several discussions on the forum and GitHub about this. Most likely we can't do anything since it appears to be some breaking change in Chrome. Sadly regressions like this randomly happen in Linux, whether due to changes in the distro, desktop env, Chrome, Electron or kernel, and more often than not all we can do is wait for the next update of one of these components.

b3taman commented 4 years ago

@laurent22: Thanks for the reply. I have looked into it a bit more, and this should sort it out.

  1. Cause of breakage: "Chromium removed the implementation of Tray icons [Electron was] using on Linux (GTK + Appindicator backed) in favour of their new DBUS backed implementation. However the new DBUS implementation is not production ready and has a decent number of bugs that would prevent folks shipping to prod."

  2. Solution: Implement Electron's fix, found at https://github.com/electron/electron/pull/23674.

Thanks for the work you put in on Joplin!

b3taman commented 4 years ago

@dioni21: I see you attached a "confused" emoji to Laurent22's comment.

As you can see, this has to do with developers making a good decision — don't use a cobbled-together approach to manage icons, use the desktop's code (DBUS) to do it — but not testing it properly. In the process they broke lots of other people's code.

It is the price one pays for using libraries, whichever OS you are on. I suspect Laurent went with Electron in the hope of having a single point of failure for going cross-OS, but this particular case is because of a library which Electron uses.

Fortunately Electron figured it out and implemented a work-around to maintain functionality until Chromium gets around to figuring out how to use DBUS.

vladimiry commented 4 years ago

visibility issue in Xfce 4 systray

xfce4-statusnotifier-plugin needs to be installed and then respective widget added to the panel. There is also https://gitlab.com/vala-panel-project/xfce4-sntray-plugin working plugin, alternative to xfce4-statusnotifier-plugin.

dioni21 commented 4 years ago

@b3taman:

@dioni21: I see you attached a "confused" emoji to Laurent22's comment.

Not exactly confused, just sad at that time, for having no option. It was not intended as a criticism, sorry if it looked like it.

Happy now, to see that a solution has been found!

:smile:

stale[bot] commented 4 years ago

Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require the community's attention? This issue may be closed if no further activity occurs. You may comment on the issue and I will leave it open. Thank you for your contributions.

stale[bot] commented 4 years ago

Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, please feel free to create a new issue with up-to-date information.

trap000d commented 4 years ago

Well, they've backported icon fix to Electron since 8.3.2, see log here: https://github.com/electron/electron/releases/tag/v8.3.2

Whereas Joplin electron client still has 8.2.5 as dependency. I've managed to build the last stable release (1.0.233) against Electron 8.3.2. Indeed, icon is shown correctly in system tray without need of starting snixembed. Consider to pull up electron version to ^8.3.2 on occasion.