Friendly names for shared folders

I would really like to see a feature that gives the user an option to set friendly names to shared folders. Right now users can only see “Folder ID” names which can’t have spaces etc. But having a third option to set a friendly name to it (which can have spaces etc), would be very nice. Since each user is different and wants to sort the folders in his/her own way and perhaps does not like the shared folder ID name the other user has set so he/she could have the option to “mask” it and set his/her own name to the folder, changing it visually on the GUI, but not the ID itself.

I even have had many reports from other users on how confusing it is to set up folders to share. They can’t grasp why they can’t set their own folder name (Folder ID) to a folder when someone shares a folder with them, thus causing the user have many folders and not one of them syncing, because ID’s are different and the request window keeps popping up etc.

Having a friendly name option would solve all these problems and makes the entire sharing and setting up more graspable to anyone.

1 Like

If we do that, we could actually auto-generate folder IDs as a random string, similar to btsync. Then there wouldn’t be the problem of name collisions (but it would be harder to type).

Maybe the folder ID could include the ID of a device, too.

1 Like

Random generation of Folder ID could be an option as well, e.g a button nearby the field “Generate ID” or something similar. But imho the most needed atm is how all the folders look for the user visually. Otherwise it’s nearly impossible to tell eventually which folder is which. And ofc, as said earlier, it would make the whole folder sharing process a lot more logical and more simple.

1 Like

This is really something I’m missing in syncthing, so I’m bumping this thread and hope it gets some more attention.

In the current state you are not only limited to simple names without spaces, you also have to make sure that a folder name is unique across all devices. Just think of two users that both have a “camera” folder in their personal syncthing setup. Now they both want to synchronize it with a third central device but it won’t work without at least recreating one folder under a different name. This leads to awkward folder names like “JohnsCamera” that are unnatural on the device itself and the personal setup.

In fact, I hardly see any benefit of a user specified name over some generated unique identifier, like @Nutomic suggested. The device ID is not easy to type in but has to be transferred first anyways. Afterwards the folders shared by a known device can be added with a single click and don’t have to be typed in by hand. Together with a user specified display name (like devices have) this would be much better. Having a combined device and folder ID is also what former btsync users are used to.

You don’t think an ID like photos or documents is easier to type than for example 9730d3184f6cf988db7a?

Adding a separate friendly name is easy though.

That’s not how Syncthing works though, and I don’t immediately see how it would tie in. Proposals are welcome as always. :wink:

Sorry I see now you wrote device ID and not folder ID. Please disregard the first comment, leaving it in there anyway to avoid confusing people. :slight_smile:

[quote=“calmh, post:5, topic:2477”] You don’t think an ID like photos or documents is easier to type than for example 9730d3184f6cf988db7a?

Adding a separate friendly name is easy though.[/quote]

That is what copy’n’paste is for :smile: . Ideally though it would be great not to have the user exchange any of that though. Without knowing how easy or difficult this would be to do it would be nice if Syncthing functioned something like this:

Let’s say I (Bob) have 2 computers set up to sync with each other. C1 is my computer and C2 is a computer for my friend Rob. On C1 I select a folder to sync. C1 generates a unique sync key for that folder, and I give it a friendly name - lets say Pictures. I indicate that the folder should be allowed to sync with C2. I tell my friend that I am sharing a new folder to him.

On C2 Rob goes to his Syncthing console and selects Bob’s Computer from the Device list. He then sees all the friendly names of all the folders I am offering share with him from this device including PICTURES. He selects PICTURES and it then asks him where he wants to sync to on his device. He provides the folder path and it then asks for a friendly share name which he calls BOB’S PICTURES. In the background because the devices know each other and have been authenticated to each other C1 sends C2 the key (through secured channels, and other options to do this manually should be available) and sync’ing begins.

Again I don’t know how easy or difficult this would be to do but I do think it would go a long way to making Syncthing a bit more user friendly especially among non-tech types.

I suppose a computer generated key isn’t really necessary to make this idea work, but for some reason in my mind it should be, if for no reason to make it little bit easier on the user setting the folder up. Could of course have the option for to use a computer generated key or user generated (although doesn’t a user generated key open the probability for collisions).

Anyway my main point is it would be nice if we didn’t have to enter any of the key information once the folder has be set up to sync on an originating device.

Hopefully this might be some useful food for thought.

I was thinking the same, for both devices and folders – rather than sending a fixed name for folders, and GUID for devices, send a (suggested friendly name, unique ID) tuple for both.

For folders, this fixes the problem that I can’t sync alice’s photos and bob’s photos with my own PC, because both alice and bob named their folders “photos”. Under the new system, they would both have unique IDs, so alice and bob could each have “photos” on their PCs and I would have “alice’s photos” and “bob’s photos” on my PC.

For devices, this fixes the problem of having random IDs that I don’t recognise introduced to me by an introducer. (I had a multi-way introducer setup, so now when I delete “friendly name = ABC123” from my desktop, my server will immediately re-introduce it to the network, and my desktop now just has an “ABC123” entry - because this happened a few times, I’ve lost track of which IDs are deleted entries and which IDs are entries that I’ve just not given friendly names to…)

The end result of this being:

  • When adding a device, Alice tells Bob via messenger or email or something “Add the device 78FA34”; Bob copy/pastes that ID into syncthing, then Alice sees a pop-up message “Bob’s PC (86CA34) is trying to connect to you [accept] [block]”

  • When sharing a folder, Alice goes to her documents folder and ticks “share with device: Bob’s PC (12A23C)”, and then Bob sees a pop-up message “Alice’s PC (78FA34) wants to share the folder ‘Documents’ (76EF32) with you: [ok] [cancel] [accept with different name]”

I even believe all that can be set aside if it’s too complicated to implement, but by simply having an option in the GUI to set another name for the folder (which when set, hides the original folder name) and which when set, stores the new folder name (take it as a folder name mask?) inside the config file in SyncThing, just as it stores every other bit of information. Also when sharing a folder, would be great if the user can click a button that generates some random string for the folder ID (which later can be masked if needed etc).

Also, wouldn’t it be better idea to store all these folder information, share keys etc in a separate config file? Would be easier to manage custom installations of SyncThing without worrying if the config file gets overwritten, user still keeps his/her shared machines and folder information since it’s stored in another config file.

Another config file than what? I’m not sure what you’re after.

Referring to “config.xml” file, the file which holds SyncThings configuration and other settings. Basically settings which appear between “< folder… …< /folder>” and “< device… …< /device>” should be located inside a different config (xml) file.

Yes, but for what purpose?

Another bonus of separate folder ID and friendly name – you can programatically add a folder to share without requiring that the user chooses a “good” share name on the spot, since the folder ID will automatically be good and the name can be changed at will.

This makes it more reasonable to add features like “right click folder in file manager -> share with syncthing” since you don’t need the UI/UX nightmare of a “pick a good, unique-within-your-network-of-friends share name” dialog box popping up ( https://github.com/canton7/SyncTrayzor/issues/77 )

For example, custom compiled SyncThing with different server names and settings, different configuration values etc… just bunch of custom code. Now when building a custom installer around it, this eventually boils down to when some settings values need to be changed, for example adding more custom discovery server addresses or removing the old ones. Since the installer most likely either wants to overwrite or skip the config.xml file, neither solution is good. Overwrite wipes the users shared folders and machines data, skipping disables the config file updates via the installer or the update of it. It’s very tedious to build a complex installer script that goes inside the config.xml and tries to change certain values there.

So, in many cases of custom deployments of SyncThing (the one i am using) it would only be reasonable if those settings are held in different locations. I don’t think it makes sense when all the settings are stored in 1 location. For example in my case, my installer makes a backup of the config.xml file, since it has important data stored inside it, after the update has finished, it restores the config.xml, thus preserving user config data, but unable to change any config file values.

Perhaps it’s just me, but imagine Windows having all the software and custom user settings directory stored in one place… it would be a mess. There is a reason, tons more than the one i described above, for having different locations for different files/settings. It simply adds flexibility to the application, nothing less.

So you’re wanting the config file to be split into several parts, so that the system can control some parts and the user controls others? How do you decide which config goes into what part? (Also should this be a separate thread? It seems related but different to friendly names)

So, I hear you but I also think it’s fairly common for a small program to store all its settings in a single config file, and for those who wish to do custom stuff around it to do just that…

And yes, this is separate from the “friendly names” bit. I’m sold on that one, so there’s no need to do more convincing - someone should write some code. :slight_smile:

What do you mean by System and User? Syncthing user controls everything anyway, through the “system” if i understood your logic correctly. Everything remains exactly the same as it is right now, but simply folder and machine ID’s are stored in a different config file, which in my head only makes sense. This would give better flexibility IMHO. I can make the custom installer change values inside the XML file as well, I’ll find a workaround, no problem, but i was thinking of others who might encounter the same problem and perhaps in an environment where such flexibility is a must. Just my 2 cents and yes, this went a bit off topic. Anyway glad to hear friendly folder names got positive feedback :slight_smile:

For the record,

Just give your folders a GOOD descriptive unique ID and not something generic like photos or documents or “Bob”… especially if you intend to share multiple folders with multiple people.

For example if Bob and Charles are sharing a folder of photos call it BobCharlesPhotos

then there is no confusion about what ID is for what.

People just don’t seem to get the concept of a UNIQUE ID… they think its a name. Names and IDs are different… sure everyone has a name but names can be repeated, IDs are never repeated.

Alice and Bob want to share a folder. Bob wants to share folders with Alice, Audrey, Adele, etc., so ‘Alice’ would be a natural folder name for him. Obviously, for Alice that name would be useless - and it would clash with the folders shared with Bert, Buzz, Boris and Brent, all of whom would like to call the folder they share with Alice ‘Alice’.

It would be great if the actual file system name of the shared folder could be different from the name used for sharing by syncthing.

Correctly implemented friendly folder names would solve this problem too.