Checklist
TagStudio Version
9.6.0
Operating System & Version
Bazzite 44.20260629
Description
TagStudio stores its settings file in $HOME/.config/TagStudio. Since $HOME/.config is the default recommended by the XDG Base Directory Specification for $XDG_CONFIG_HOME, this would imply that TagStudio respects $XDG_CONFIG_HOME.
However, as seen at the definition of the config file path:
|
DEFAULT_GLOBAL_SETTINGS_PATH = ( |
|
Path.home() / "Appdata" / "Roaming" / "TagStudio" / "settings.toml" |
|
if platform.system() == "Windows" |
|
else Path.home() / ".config" / "TagStudio" / "settings.toml" |
|
) |
TagStudio only takes into account the home directory, and hardcodes .config/TagStudio into it.
Expected Behavior
I would expect TagStudio would respect $XDG_CONFIG_HOME, and thus store its config file at $XDG_CONFIG_HOME/TagStudio, if $XDG_CONFIG_HOME is set.
Steps to Reproduce
- Have a TagStudio settings directory at
$HOME/.config/TagStudio
- Set
$XDG_CONFIG_HOME to a different directory
- Open TagStudio and change your settings
- The new settings are still stored at
$HOME/.config/TagStudio
Logs
No response
Additional Info
While testing, I noted that the cache file appears to respect XDG_CONFIG_HOME, per this logger statement:
|
logger.info( |
|
"[Cache] Cache File not specified, using default one", |
|
filename=self.cached_values.fileName(), |
|
) |
For example, if XDG_CONFIG_HOME is set to ~/.new_config_loc:
2026-07-01 06:21:12 [info ] [Cache] Cache File not specified, using default one filename=/var/home/user/.new_config_loc/TagStudio/TagStudio.ini
Checklist
TagStudio Version
9.6.0
Operating System & Version
Bazzite 44.20260629
Description
TagStudio stores its settings file in
$HOME/.config/TagStudio. Since$HOME/.configis the default recommended by the XDG Base Directory Specification for$XDG_CONFIG_HOME, this would imply that TagStudio respects$XDG_CONFIG_HOME.However, as seen at the definition of the config file path:
TagStudio/src/tagstudio/qt/global_settings.py
Lines 19 to 23 in daaae17
TagStudio only takes into account the home directory, and hardcodes
.config/TagStudiointo it.Expected Behavior
I would expect TagStudio would respect
$XDG_CONFIG_HOME, and thus store its config file at$XDG_CONFIG_HOME/TagStudio, if$XDG_CONFIG_HOMEis set.Steps to Reproduce
$HOME/.config/TagStudio$XDG_CONFIG_HOMEto a different directory$HOME/.config/TagStudioLogs
No response
Additional Info
While testing, I noted that the cache file appears to respect
XDG_CONFIG_HOME, per this logger statement:TagStudio/src/tagstudio/qt/ts_qt.py
Lines 240 to 243 in daaae17
For example, if
XDG_CONFIG_HOMEis set to~/.new_config_loc: