It’s important to note that apparently there’s no automatic migration path and this will be only used for new profiles, so you have to migrate manually.
In practice that should mean running
mv ~/.mozilla ~/.config/mozilla.
Of course the old directory will still be detected and used if present, probably for a long time to come.they are not following the spec if this is the solution.
-
data files (like extensions, sessions, etc) need to go in
XDG_DATA_HOME. -
config files (user preferences) need to go in
XDG_CONFIG_HOME. -
cache files need to go in
XDG_CACHE_HOME. -
log files need to go in
XDG_STATE_HOME.
also hopefully they do check the variables and not just hardcoded
~/.config,~/.local/share, etcI think they mostly are.
Cache is already in.cache/mozilla, so usually there is no change hence I didn’t mention it. They did move the cache to the XDG_CACHE_HOME by default. And yes they are using the XDG variables including the recommended fallback values.The line between data and config has always been blurred, Most data in the browser is “data” until a user overrides it. Even extension files presence is linked with their configured state of being installed.
For log files I’m not sure anyone follows that. Besides firefox barely has any plain logs, I think having those in the profile is fine.
Currently it’s all in XDG_CONFIG_HOMEAlways good to know that after sitting on it for 2 decades, shipping some half-assed shit was the best they could do.
The implications would be massive and I do not think most power users would benefit from it being broken up like that. Being able to backup or sync your entire Firefox profile by copying one directory is quite useful.
-
Yikes, thanks! Good to know.
Good gawd, finally.
https://specifications.freedesktop.org/basedir/latest/
The XDG Base Directory Specification is based on the following concepts:
There is a single base directory relative to which user-specific data files should be written. This directory is defined by the environment variable $XDG_DATA_HOME.
There is a single base directory relative to which user-specific configuration files should be written. This directory is defined by the environment variable $XDG_CONFIG_HOME.
There is a single base directory relative to which user-specific state data should be written. This directory is defined by the environment variable $XDG_STATE_HOME.
There is a single base directory relative to which user-specific executable files may be written.
There is a set of preference ordered base directories relative to which data files should be searched. This set of directories is defined by the environment variable $XDG_DATA_DIRS.
There is a set of preference ordered base directories relative to which configuration files should be searched. This set of directories is defined by the environment variable $XDG_CONFIG_DIRS.
There is a single base directory relative to which user-specific non-essential (cached) data should be written. This directory is defined by the environment variable $XDG_CACHE_HOME.
There is a single base directory relative to which user-specific runtime files and other file objects should be placed. This directory is defined by the environment variable $XDG_RUNTIME_DIR.
I tried it and moved the directory. Results:
- Firefox opens, settings from the profile are still there.
- Empty
./mozilla/extensionsdirectories are recreated on startup. - Firefox cannot show any websites anymore.
Yikes.
You’re using Nightly. There be dragons…



