Yet another Syncthing Tray

I created an AppImage using OBS. It is actually not more than a few lines.

Due to an issue with OBS/AppImage the build currently fails.
I could fix this locally, though. My builds for the latest Git commit are available here: https://martchus.no-ip.biz/repo/AppImage/2018-02-10

Limitations:

  1. only x86_64 build available so far
  2. creating a menu entry is not implemented so far
  3. 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)
  4. The CLI syncthingctl is not available (creating an AppImage seems to require a *.desktop file)
  5. no Wayland platform plugin included so far
  6. Bash completion not possible
  7. Dolphin integration not possible
  8. Plasmoid not possible
  9. using custom Qt Widgets style not possible
  10. no further integration for desktop environments (eg. GTK or KDE file dialogs)
  11. the bundled Qt is quite old because those AppImages are supposed to be built under old distributions for better compatibility
  12. Despite 11., it might not work under very old distributions.

I think that only 1. to 5. could be implemented or worked around.

1 Like

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).

New release 0.8.0 is available.

  • As already mentioned, syncthingctl can now modify the configuration.
  • There are notifications for new folders or devices.
  • Sync complete notification now uses FolderCompletion event.

Full list of changes since v0.7.3: https://github.com/Martchus/syncthingtray/compare/v0.7.3...v0.8.0

Hi, how do I go about building the latest version for windows?

There are statically linked Windows binaries attached on the latest GitHub release: https://github.com/Martchus/syncthingtray/releases

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.

1 Like

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.

New release 0.9.1 is available.

I don’t create a post for every release so the list of changes since the last post is quite long: https://github.com/Martchus/syncthingtray/compare/v0.8.0...v0.9.1

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

1 Like

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:

2 Likes

Since a Mac version was requested some time ago: A user could build is successfully and it seems to work basically. There are still some problems but the progress is tracked on GitHub. Of course this does not mean I will be able to provide binaries myself but it is already a step further.

1 Like

Thanks to yan12125 the Mac version of the current development branch can now be installed via MacPorts.

1 Like

New release v0.10.0 is available.

I already mentioned some of the new features. Besides, also some bug fixing and minor improvements have been done. Here’s a full list of changes: https://github.com/Martchus/syncthingtray/compare/v0.9.1...v0.10.0

1 Like

New release v0.10.2 is available.

This release contains only minor fixes and improvements compared to v0.10.0: https://github.com/Martchus/syncthingtray/compare/v0.10.0...v0.10.2

1 Like

I’d like to test for Windows. Should I remove SyncTrayzor first or can they run concurrently?

I don’t know the SyncTrayzor side but Syncthing Tray will by default not even start Syncthing automatically for you. So you can easily use it with a Syncthing instance started independently, eg. via SyncTrayzor. If you decide to keep using only Syncthing Tray you can configure its launcher to start Syncthing for you. Then you should ensure no other instance is running at the same time but I think the worst which can happen is an error when starting the 2nd instance.

1 Like

Thanks! :slight_smile:

New release v0.10.3 is available.

It contains fixes for Qt 5.14 and Plasma 5.17 and updates “libsyncthing” to v1.3.1: https://github.com/Martchus/syncthingtray/compare/v0.10.2...v0.10.3

Please add support for Debian.

Maybe you should ask people who create Debian packages. From the upstream side I see nothing which would prevent one from using it under Debian.

Hey, sorry if this is a dumb question, but is there functionality to connect to the primary ST instance when the tray application starts up?

It is not a dumb question because there is indeed room for improvement in this area.

So far the tray can connect automatically to the primary (or currently selected) Syncthing instance when it notices that the instance becomes available. However, it can only notice that the instance becomes available when it is started within the built-in launcher or when it is started via systemd and Syncthing Tray is configured to keep track of that systemd unit. Otherwise it will not be able to connect automatically.

It should be quite simple to add an auto-connect checkbox within the connection settings. I just haven’t done it because I usually use the built-in launcher or systemd.