0

Windows License Location Problem

Icarus 10 years ago 0
Windows 7, Home Premium, SP1, 64-bit
Sublime Text 3, Build 3047
Single User License

I think there is a mistake in where the Submlime Text 3 user license is stored on Windows. This doesn't cause software failures, but has the potential to cause problems if people are synchronizing application settings between machines using something like Dropbox.

There are several user-specific folder locations for application settings on Windows. Under <user>AppData the following exist:
\local (stored in %LOCALAPPDATA%)
\localLow
\Roaming (stored in %APPDATA%)

The ST3 license key is located in a folder "local" under "Roaming": \Roaming\local instead of just \local. For example:
"C:\Users\userName\AppData\Roaming\Sublime Text 3\Local"
"C:\Users\userName\AppData\Local\Sublime Text 3\Local"

The problem occurs for users that have created a symlink for their roaming folder that points to a shared location. In my case the desktop and laptop installations of ST3 keep overwriting each other's keys (License.sublime_license) in the Roaming\local directory.

I think the keys should be stored in ...\local and not ...\Roaming\local, which prevents this conflict and seems to be the correct location for machine-specific settings.

It's possible to workaround this by creating symlinks further down the directory tree:
"C:\Users\userName\AppData\Roaming\Sublime Text 3\Packages"
"C:\Users\userName\AppData\Roaming\Sublime Text 3\Installed Packages"
So that "C:\Users\userName\AppData\Roaming\Sublime Text 3\Local" remains local. But it would be an improvement to move these machine-specific files to \local, for example on my machine:
C:\Users\userName\AppData\Local

The confusion might have been using the %APPDATA% variable for everything, which points to the "Roaming" directory. However, you can also use the %LOCALAPPDATA% variable which will point you to a user's "local" folder.