Manage Software Settings Across Devices


Did you ever lost valuable settings when reformating a computer? Or wanted to have unified prefs across all your different devices?
I overuse Symbolic Links for that. Symlinks are virtual links allowing you to move files elsewhere while making a reference to it at the original location. This way you can put a configuration file on a shared location folder while still letting the software update the configuration files. The software still think the file is in their regular folder, while it is instead modifying the file at another path.

You can regroup all the settings files of all your programs in a single place, like a Dropbox folder and never have to worry about them. You could also use the same settings over different versions of the same program, this works but this could lead to some problems on some softwares.

Let’s see how to do it with a practical example with Open Broadcast Studio: #

The first step is to get the location of the software settings. The one for OBS is %AppData%/obs-studio. You could symlink the entire folder and get done with it, but sometimes you want to exclude some of the noise like logs, crashdumps and other useless things.

In the OBS folder our main interest goes to the global.ini file and basic folder (and maybe the plugin_config folder), so we will cut and paste them in our final folder and create the symlinks with this command:

mklink linkname targetname

Add /D for folders:

mklink /D linkname targetname

In my case I want to put my files in the Dropbox folder

mklink %AppData%/obs-studio/global.ini %userprofile%/Dropbox/OBS/global.ini
mklink /D %AppData%/obs-studio/basic %userprofile%/Dropbox/OBS/basic

Each time you change OBS settings it will be backed up, versioned and synced across all your computers. And if you reinstall your computer you just have to apply the following .bat script to create the symbolic links.
I also rename the original files to avoid losing previous data. The last command line is there to let the command prompt window open if any error occurs.

@echo off

cd /D %AppData%/obs-studio

ren global.ini global_BACKUP.ini
ren basic basic_BACKUP
mklink global.ini %userprofile%/Dropbox/OBS/global.ini
mklink /D basic %userprofile%/Dropbox/OBS/basic

if NOT ["%errorlevel%"]==["0"] pause 

PS: An alternative would be to use a software like Duplicati to save specific files on a server. But you won’t have sync across different computers and the restoration of files can be a bit more cumbersome. It’s less ressource intensive than services like Dropbox and have more control over your backups though.