Reviving SyncTrayzor

So, it happened. As some folks have already noticed (Towards Syncthing 2.0 - #50 by DrSchnagels), SyncTrayzor won’t work with Syncthing 2.0. This was bound to happen at some point, given that there’s been basically no development on SyncTrayzor for 4 years now. The original project is also archived now, so there’s definitely no activity there going forward.

I’ve mentioned in the past (here and here) that I would consider forking SyncTrayzor at some point, if it became absolutetly necessary. Previously I’ve been mostly relying on that it “just works” despite being unmaintained. I don’t really wanted to take SyncTrayzor, because I’m already busy enough as it is :slight_smile:

However, with SyncTrayzor now descending into the void, I had a choice to make: Switch to something else or revive it. I had a look at some of the wrappers out there, but I didn’t find anything that seemed like a drop-in replacement for my SyncTrayzor needs. Specifically, the feature I like (or need) most about SyncTrayzor is it’s excellent conflict resolution tool. It both tells me - via notification/tray - if there are new conflicts, and also where they are. It can also auto-rename one of the two files and rename the other if you tell it which one. I haven’t really seen this feature replicated on another wrapper (if there’s one I’ve missed, feel free to tell me). There are also various other cool things about SyncTrayzor, and it generally worked really well.

As such, I’ve decided to dig into the codebase and see if I can modernize it. There’s a lot of ~10 year old .NET stuff in there that desperately wants to be updated. I’ve experimented a bit with it and so far I’ve managed to move the entire thing from .NET Framework 4.7 (where it currently is) to .NET 8 LTS and finally bring in a modern CEF that is less finicky than the current CEF 86 (DPI without hacks, yay).

While my experiments already work, there’s still a lot left to retouch and update. There are at least two features that I have to rewrite from scratch, as I need to get rid of the old COM-code. At the same time, my time is very limited, so this isn’t something that I can finish in a week or two. Therefore, I don’t have anything to show yet, unfortunately.

The long term goal is to bring the project up to speed, fix Syncthing incompatibilities, and then maintain it in a maintenance-only mode. While new features would be nice, I don’t think I will have the time for it, so the goal is to keep things running largely as-is. I do plan on providing binaries/installers and such. I currently imagine that the “new” SyncTrayzor will be largely compatible with the “old”, so existing users can decide to switch if they want. There can’t be an auto-upgrade as Antony controls the servers, but that’s fine - I wouldn’t want users to switch to a “random” fork without knowing anyway.


For now, my plans are to keep hacking on the codebase and bring stuff into this decade. I plan on showcasing more once I have that. Right now, I’m wondering about the naming: As the old SyncTrayzor is archived, it would make sense to give the “new” SyncTrayzor a new name to distinguish the two. Perhaps SyncTrayzorX or SyncTrayZ? If anyone has an idea for a name, please let me know.

Finally, I would like to thank @canton7 for their excellent work over the years. SyncTrayzor is a very cool project and I would like to see it live on.

13 Likes

Are you sure it needs a new name? It seems GermanCoding/SyncTrazor will differentiate it from cantor7/SyncTrazor. And since cantor7/SyncTrazor is now archived, it’s not really a conflict, per se, as cantor7 is asking people to fork.

Is this your fork here: https://github.com/GermanCoding/SyncTrayzor ?

2 Likes

Yes, that’s the fork. Technically the name could remain, but it may be confusing as over time, things will diverge and then there’s always the distinction between “new” and “old” SyncTrayzor, which can be avoided with a rebrand.

3 Likes

Maybe Canton7 could add a line saying that a supported version is at X?

I for one welcome your efforts to get Syntrayzor working again. I have been using Syncthing Tray and whilst it does what it needs to do well enough, I do miss the little things that trazor has that’s not in Tray.

If there were ever a chance to make a custom tweak to trazor, it would be that the popup monitor in the bottom corner had the ability to stay up rather than closing down at any opportunity. Maybe the coding gods will smile my way in the future (but not at the moment, just getting it back will give me deep joy!!!)

Thank you

2 Likes

Maybe SyncTrayzor 2.0? :slight_smile:

Thank you very much for doing this, by the way. To this day, SyncTrayzor remains the most beginner-friendly integration of Syncthing, so it will be great to have it still available, especially for the less tech-savvy group of users (but not only them, of course).

6 Likes

To keep the great onboarding experience that SyncTrazor has will be a challenge. But a good one. One task will be setting up build pipelines and replicating the “Check for updates” functionality.

Anyway, I have for a long time wanted to give something back to the project, and since dotnet is where I come from, this might be a good place. You can DM me @Nummer378 if you have any tasks you want an extra pair of hands on.

5 Likes

Just a small report that I have tried running Syncthing v2.0.0-rc.14 under the control of @Nummer378’s fork of Synctrayzor on a Windows 11 PC.

Syncthing converted my (smallish) database to v2 format in 0 seconds and it grew from 10MB to 40MB.

Next step will be to try it on the movie folder.

(n.b. Synctrayzor wasn’t installed, I ran it from my dev environment.)

2 Likes

Glad to see someone taking up the mantle. I stopped using Syncthing because SyncTrayZor stopped supporting newer versions… or something like that. It’s been several years, but the message I got was that things were falling apart.

I’m looking for file sync software again, and the entire internet is enamored with Syncthing (when I used it, almost no one had heard of it), which I find pretty strange.

I guess for now I’ll see how well SyncTrayZor works with the latest version of SyncThing and either use that or Resillio Sync.

1 Like

As of today, there are more than 1.1 million devices using Syncthing (and this excludes those that are either restricted to local network or don’t use the official discovery server). This number has grown exponentially in the last few years. With that many users, being a very popular piece of sofware, I think it’s quite natural that Syncthing is becoming a topic of interest for even more people :slight_smile:.

1 Like