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

Tray icon does not indicate if everything is up-to-date #105

Open
grozan opened this issue Dec 20, 2019 · 8 comments
Open

Tray icon does not indicate if everything is up-to-date #105

grozan opened this issue Dec 20, 2019 · 8 comments

Comments

@grozan
Copy link

grozan commented Dec 20, 2019

Hi,

I saw in the doc that it says

Tray icon indicates when it is connected to syncthing (no status updates yet).

so this issue is to make sure it does not get forgotten :-)

It's good to see if syncthing is running locally or not, but what I also really want to see is if my files are all synced correctly or not.
If any folder or any remote device is not up-to-date, I think the colour of the icon should change to draw the user's attention.
Right now I regularly visit the web interface to make sure everything is green. I really wish the icon would give me that information.

Note: if there are events like a "receive only" folder becoming out of sync then I think the icon should also indicate there is something not 100% ok, so that the user knows he should visit the web interface to see what's going on, and eventually click the "revert local changes" button in that case.

Thanks!

@xor-gate
Copy link
Member

To comment on the doc item:

Tray icon indicates when it is connected to syncthing (no status updates yet).

It actually displays it with an exclamation mark so this needs to be fixed in the documentation. See this for my setup in OS X dark mode:

Screenshot 2019-12-20 at 18 49 03 (normal icon Screenshot 2019-12-20 at 18 49 37). Tested by stopping the syncthing service: "click on the tray icon -> online -> syncthing service -> stop".

I personally like the icon to be monochrome and it is IMHO hard to have 32x32 pixels (or is it even less?) to display multiple specific states. I was thinking to have more a notification kind of system and extra info items in the root of the tray menu.

Just for my personal reference like BitBar has plugins for showing easy accessible information:

image

https://getbitbar.com/

@xor-gate
Copy link
Member

If we really want we could at a very small piece of text next to the icon if that is helpfull? But we have to be carefull for small screens don't have infinite amount of pixels and don't pollute the taskbar to much.

@grozan
Copy link
Author

grozan commented Dec 22, 2019

Hi,

thanks for the feedback!

I had actually tried to stop syncthing, the way you mentioned, and saw the icon change.
I honestly had to come very very close to the screen to see what it was... As you said, icons are small, so little badges like that on small icons are very very very small :-)
I think I would have never noticed the icon change, though, if I was not actively searching for it as I was testing.

IMO a much bigger exclamation mark would already be more noticeable, even if I shouldn't have to "monitor" the icons in my tray. If there is something wrong, it should jump at me instead.
As you said space is very limited, so IMO writing text in the tray is a good option.
Extra info in the root of the tray menu is nice, but the user still has to actively click it to see it

so I still think a colour change of the icon (only when something is not normal) is a more effective way to draw the user's attention, as it's more noticeable. Some people might want not want it, but maybe it could be left to the user as an option??
Macos notifications (similar to Slack for example when you receive a message) to notify only of conditions changes would be nice too, for sure.

Besides the look and feel of the notification itself, I think there is something that could be improved regarding WHEN to show it.

Notifying the user when the local syncthing is dead is very good, but IMHO it's equally important to notify him if the remote server he syncs to is disconnected. I tried to stop the remote device I sync to, and nothing happened. No exclamation mark or something. Still, the sync is effectively dead, so we are in the same critical state as when my local syncthing is stopped.

There are also the other cases, the non-critical alerts (but alerts still), like:

  • one of the folders is in a non up-to-date state
  • one of the "receive only" folders is up-to-date, but ouf of sync

Could the notification be also triggered when that happens?

Thanks

@xor-gate
Copy link
Member

Great, we are on the same page. I agree with all the points but we should think about features and functionality in a critical way so it will not be annoying. When we decide to implement some monitoring/notification system we must have the requirements clear. Currently i'm not very active on the development of new features because it is pro-bono.

Actually I had a draft for notifications where you could accept the sharing of folders by a node see #52 (comment)

I also totaly agree this makes the MacOS integration more natural without switching to the web interface. There is so many room for improvement like having the whole webinterface "ported" to a native gui. Like management of shares, nodes, etc etc. But of course it takes time to create requirements, design and implementation.

@d0rh4ns
Copy link

d0rh4ns commented Dec 29, 2021

Seeing that this issue has been around for two years now, perhaps there are smaller changes that could be made to incrementally improve the user experience here? I feel like a very useful first change would be to include remote devices when checking the syncthing status, instead of just checking all folders. This would cause the menu bar icon to show "syncing" whenever a remote device is syncing, which is in part why this issue was created in the first place.

@xor-gate
Copy link
Member

I understand all your ideas but syncthing-macos relies on the API exposed from Syncthing itself. We currently use the events endpoint and set the local state according to this.

if ([state isEqualToString:@"scanning"] || [state isEqualToString:@"syncing"])
newStatus = SyncthingStatusBusy;

It basicly means when we received an event StateChanged. It can have the following to states: idle, scanning, syncing and error.

So in my opinion there is nothing wrong with the current implementation, but possible something wrong in what we expect.

@xor-gate
Copy link
Member

xor-gate commented Dec 31, 2021

Hi all,

I finally had a small test of my files which took some time to sync. And indeed the tray icon doesn't change when one of the devices is syncing. See the following screenshot:

Screenshot 2021-12-31 at 10 56 59

This basically means the event API is not enough to look for remote device syncing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants