Skip to content

Instantly share code, notes, and snippets.

@crysxd
Last active February 20, 2024 19:06
Show Gist options
  • Star 25 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save crysxd/e5586b291dfcbec569111b7269d30869 to your computer and use it in GitHub Desktop.
Save crysxd/e5586b291dfcbec569111b7269d30869 to your computer and use it in GitHub Desktop.
Syncing Cura Settings & Profiles Accross multiple devices

Syncing Cura Settings & Profiles Accross multiple devices

I use multiple devices to control my 3D printer and it's alwys a hassle to move changes on profiles etc. between those machines leading to situations where I use an old version of my profiles to print a part because I just forgot to update it.

Here is how you can sync Cura settings between multiple devices:

  1. Setup Google Drive / OneDrive / Dropbox on every machine you want to sync the Cura settings on
  2. Go to the following location and copy the folder called cura to any convinient location inside your Google Drive / OneDrive / Dropbox folder. You can also rename the folder form cura to somthing else, I called mine Cura Settings.
  • Windows: %userprofile%\AppData\Roaming\cura
  • Mac: ~/Library/Application Support/Cura/
  1. Create a symbolic link between the cura folder (which is now inside your Google Drive / OneDrive / Dropbox) and the original location. Open a Terminal on Mac or a Command Prompt (start with admin rights) on Windows and type following:
  • Window: mklink /D "%userprofile%\Google Drive\Cura Settings" "%userprofile%\AppData\Roaming\cura"
  • Mac: ln -s "~/Google Drive\Cura Settings" ~/Library/Application\ Support/Cura/

Cura will now access the synced settings in your Google Drive / OneDrive / Dropbox. This works also to sync settings cross platform with Windows and Mac.

Linux stores the files slightly differently compared to Windows and Mac so you can't adopt this method 1:1. See the Cura documentation to see which paths you need to sync using symbolic links.

@matteohoeren
Copy link

Didn't work for me because the 'Link' Folder already exists. What i did is just switch the 'Link' and 'Target' parameters.
Command: mklink /D LINK TARGET
mklink /D "%userprofile%\Google Drive\Cura Settings" "%userprofile%\AppData\Roaming\cura"

@crysxd
Copy link
Author

crysxd commented Jun 8, 2020

Nice find! I must have mixed that one up...
I fixed it above!

Btw, pay attention when working on two PCs at the same time. Cura sometimes saves stuff in the background causing conflicts.
Best practises:

  • Make a Backup of your Cura folder from time to time so you can restore it in the worst ase
  • Try to close Cura on one PC before using it on an other

@k2m5t2
Copy link

k2m5t2 commented Jun 27, 2020

Thanks for the tip!

@robbinonline
Copy link

robbinonline commented Nov 4, 2020

On my Mac I had to change to code to:
ln -s "Google Drive\Cura Settings" ~/Library/Application\ Support/
now everything is working great.

@JoHo94
Copy link

JoHo94 commented Dec 20, 2020

@crysxd and @matteohoeren
Hmmm... Actually i think, the original version was the correct one and you broke it with the fix :) I tried it and only the original post works:
mklink /D "%userprofile%\AppData\Roaming\cura" "%userprofile%\Google Drive\Cura Settings"

Which makes sense.

Like @matteohoeren said, the command is mklink /D LINK TARGET
In our example, we want to create a new LINK at the original location %userprofile%\AppData\Roaming\cura and want to point it to the TARGET in our Cloud "%userprofile%\Google Drive\Cura Settings", not the other way arround.

Sure, you can use the command the other way arround, but then it does not work how it should. You would keep the original data at /Roming/cura and only have the symbol link in the cloud. In case of dropbox, they dont sync the content of symbol links.

If you get the "Folder exists" Error like @matteohoeren , just delete the /Roming/cura folder. The command will recreate the folder and link it to your cloud folder :)

Edit 1: Maybe you can add the "Delete Roming/cura folder" in your tutorial :)

Edit 2: Works the same way with PrusaSlicer too :))

@PhriZ
Copy link

PhriZ commented Mar 13, 2021

Yeah, this need to be switched back to:
mklink /D "%userprofile%\AppData\Roaming\cura" "%userprofile%\Google Drive\Cura Settings"

@deadSoldier9
Copy link

On Windows Cura tells me every time i start it up to login in my ultimaker account and to add a printer...
When i added a printer it shows my actual settings are still there. For every start it generates a new cura.cfg file and i dont know why. Any help is appreciated since i run cura on both windows and mac machine, and i want to have my settings synced.

@fholgado
Copy link

This did not work on Mac either. You can't rename the folder to something else. Try this instead:

ln -s ~/Dropbox/somefolder/cura ~/Library/Application\ Support/

This will create a symbolic link named "cura" in your application support folder.

@pgregg88
Copy link

pgregg88 commented Jun 11, 2022

Here's the command if you use iCloud.

ln -s "~/Library/Mobile Documents/com~apple~CloudDocs/cura" ~Library/Application\ Support/

Assumes you copied your "cura" folder to the root level of your iCloud Drive.
This will create a symbolic link named "cura" in your application support folder.

@mibazza
Copy link

mibazza commented Sep 9, 2022

I got it to open on multiple devices but I cannot update my plugins as it says access is denied to my google drive. I've checked permissions and have full permissions to path tho?

@Cmonst72
Copy link

Cmonst72 commented Oct 2, 2022

Hello, I found this post as I too wanted to sync between multiple machines - I tested and found the instructions to be incorrect, I have created full instructions and observations below in case it helps anyone:

How to create Symlinks (Symbolic Links)

Usage
Use symbolic links when software that does not allow you to use any folder for files except system files that may not be able to be backed up with OneDrive (or similar cloud drives), for example, wanting to use the same Cura profiles on 2 different machines.

NB Some software will not like this, so in those instances, only use one machine at a time, otherwise you may get file already in use errors (where both machines are trying to make changes at the same time and potentially result in missing data).

NB These are notional file names and locations in the How To as an example to assist understanding the process, my actual commands for syncing CURA for the PRIMARY and SECONDARY machines are at the bottom of this post - The file locations are within these commands

How to
On the PRIMARY machine where the files are to be used for the other machine

  1. Make a note of the original file / folder location
    EG c:\Original Location
  2. Make a backup of the original folder, just in case
  3. Move (& rename if desired) the folder to its new location
    EG d:\New location
    Alternatively copy to new location and delete original (Safer if not taken backup)
  4. We are assuming that new location is somewhere within OneDrive
  5. Run command prompt as administrator
  6. Run following command
    mklink /D "C:\Original Location" "D:\New Location"

You will now see a link in the original location that points to the new location, in the address bar it will show the original location, but display the files in the new location, so the program that uses that location will still think the files are there, even though they are not.

On the SECONDARY machine which will use the same files as the PRIMARY

  1. Make a backup of the original files
    If you are sure you don’t need them, this step can be skipped
  2. Delete the original files / folder
  3. Run following command
    mklink /D "C:\Original Location" "D:\New Location"
    Or where New Location is kept, EG E:\New Location if that is where those files / folders have been synced to within that machines OneDrive

For my PRIMARY machine:

  • Made a backup of the Cura folder (C:\Users\Andy\AppData\Roaming\cura)
  • MOVED the whole cura folder to new location in OneDrive
  • Ensured the Cura folder was no longer listed in C:\Users\Andy\AppData\Roaming
  • Ran the following command (command prompt as administrator):
  • mklink /D "C:\Users\Andy\AppData\Roaming\cura" "E:\Onedrive\Cura Profiles\4.8\cura"
  • Checked the link to the Cura folder was created in C:\Users\Andy\AppData\Roaming
  • Checked that link showed my correct files
  • Checked One drive had the files and was synced

On my SECONDARY machine:

  • Ensured the same version of CURA was installed as my Primary machine
  • Checked that OneDrive had all the Cura files and they were synced
  • Deleted the Cura folder (C:\Users\Andy\AppData\Roaming\Cura) - as I knew I did not need them
  • Ran the following command (command prompt as administrator):
  • mklink /D "C:\Users\Andy\AppData\Roaming\cura" "D:\Onedrive\Cura Profiles\4.8\cura"
  • Confirmed Cura opened and displayed the same profile information as expected

After setup, I then tested on both machines to check that changes made on both were reflected on the other, obviously ensuring Cura was shut down and OneDrive was fully synced before moving to the other machine.

One further thing to note, make sure that files are finished syncing before shutting down / loading up Cura.

I hope this helps, any errors, please let me know.

@LightTemplar
Copy link

I had to sync Cura Settings between Kubuntu 20.04 and 22.04. Syncing just ~/.config/cura didn't work. After some investigation I found out, that
a) Cura uses both folders ~/.config/cura and ~/.local/share/cura for storing its files
b) in Kubuntu 20.04 those folders were somehow synchronized. May be symlink or hardlink - I didn't care.
c) in Kubuntu 22.04 those folders kept different files of Cura in different folders.

So I did in Kubuntu 22.04, as it was in Kubuntu 20.04: made two symlinks of same Cura Setting folder as in ~/.config/cura also in ~/.local/share/cura and now it works.

@mtom2k
Copy link

mtom2k commented Dec 6, 2022

Thank you! Now I can finally have CURA on multiple devices yet everything in sync.

@Tondaron
Copy link

Tondaron commented Mar 7, 2023

Hmmm... Actually i think, the original version was the correct one and you broke it with the fix :) I tried it and only the original post works:
mklink /D "%userprofile%\AppData\Roaming\cura" "%userprofile%\Google Drive\Cura Settings"

That one worked perfectly for me !! Thanks a lot

@clippycoder
Copy link

I got it to work, but I had to switch the order on Windows like @JoHo94 suggested. Upon starting cura, all my settings from my other computer are there, but when I update the settings, they don't really seem to sync. That could just be an issue with Dropbox though.

@GamerGuy95953
Copy link

GamerGuy95953 commented May 11, 2023

I had to sync Cura Settings between Kubuntu 20.04 and 22.04. Syncing just ~/.config/cura didn't work. After some investigation I found out, that a) Cura uses both folders ~/.config/cura and ~/.local/share/cura for storing its files b) in Kubuntu 20.04 those folders were somehow synchronized. May be symlink or hardlink - I didn't care. c) in Kubuntu 22.04 those folders kept different files of Cura in different folders.

So I did in Kubuntu 22.04, as it was in Kubuntu 20.04: made two symlinks of same Cura Setting folder as in ~/.config/cura also in ~/.local/share/cura and now it works.

Thanks for figuring that out! I did the same thing you did but on EndeavourOS KDE and it works now! Thank you!

Edit:
Actually, I did it a little differently. I dual boot Windows and EndeavourOS and I like to have Cura on both OS'es when I need it. I could point to the settings folder on Windows but instead, since I already had an EXFAT partition that both Windows and EndeavourOS like, I put the settings folder there and then created a link from that for both Windows and EndeavourOS.

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