This version also should at least compile for MacOS X. So anyone interested in a Mac version could try to build it and investigate/debug run-time issues. The improved error logging might also help.
I also started to work on a Plasmoid (widget for Plasma 5 desktop). It is still incomplete and experimental.
Note that “stable” Debian often provides very outdated packages. For Syncthing Tray I would recommend to use Qt 5.9 or newer and I’m not sure whether Qt < 5.8 is still sufficient.
adding the tray to auto-start via settings does not work (it is currently trying to add the temporarily mounted executable rather than the AppImage path)
The CLI syncthingctl is not available (creating an AppImage seems to require a *.desktop file)
no Wayland platform plugin included so far
Bash completion not possible
Dolphin integration not possible
Plasmoid not possible
using custom Qt Widgets style not possible
no further integration for desktop environments (eg. GTK or KDE file dialogs)
the bundled Qt is quite old because those AppImages are supposed to be built under old distributions for better compatibility
Despite 11., it might not work under very old distributions.
I think that only 1. to 5. could be implemented or worked around.
The CLI developed as side-project of this tray will finally support changing the configuration in the next release.
Since it is hard to provide a nice CLI interface for modifying nested data structures like the Syncthing config, I decided just to open an editor like systemctl edit ... does. But this seemed a bit too boring, so I also implemented a options which allow to modify the configuration by running JavaScript code like this example.
syncthingctl --help:
cat
prints the current Syncthing configuration
edit
allows editing the Syncthing configuration using an external editor
--editor [editor name] [editor option] ...
specifies the editor to be opened
default environment variable: EDITOR
--script [path]
runs the specified UTF-8 encoded ECMAScript on the configuration rather than opening an editor
--js-lines [line] ...
runs the specified ECMAScript lines on the configuration rather than opening an editor
--dry-run
writes the altered configuration to stdout instead of posting it to Syncthing
Like any other commands of the CLI, it works for remote instances as well (by specifying the --url argument).
If you looked at my website for dynamically linked binaries: Yes, those are outdated. Since the statically linked ones should be sufficient I currently don’t put any effort into it.
Ah, you want to build it yourself? Have a look at https://github.com/Martchus/PKGBUILDs/tree/master/syncthingtray. Those PKGBUILD files are for building the Windows version under Arch Linux, but they show required dependencies and commands to be executed quite clear. So you can use that information to build under other platforms as well. Of course there are also general build instructions.
I mainly did some small adjustments since the tray basically covers my own use-cases. The most notable change is the use of font awesome in accordance with the official web UI.
I’ve also been able to build and test under s390x. I’ve created a SLES repo on OBS which covers also Syncthing itself.
The screenshots of the initial post are now pretty outdated. There’s no way to amend the initial post, right? It would be nice to add at least a link to the more frequently updated screenshot section on GitHub: https://github.com/Martchus/syncthingtray#screenshots
The next release will feature customizable icons. This way the icon can be adjusted to integrate much better with the rest of the system tray. Here’s a screenshot how it might look like under Tumbleweed with Plasma 5: