New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cache location of Linux client does not comply with XDG Base Directory Specification #4975
Comments
This might be something caused by Electron, as other Electron applications I use (Discord, Slack, Teams etc.) seem to behave similarly, flooding the |
This behaviour is wide spread in electron apps, because Why reproduce a bug just because the chromium devs decided to ignore a widely accepted specification for some reason? |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
I think this is still a thing. |
Sorry about this. It is on our radar now. |
Same applies to lock files. $XDG_CONFIG_HOME is for configs, nothing else. It's so annoying when you synchronise your config folder between devices and then software breaks because multiple running instances put their stupid lock files in the config directory. A lock file is just not config. |
In a perfect world people could just sync their config dir and when they install the same software on another device things just magically work. |
Note that you're still going to have problems if you run Signal-Desktop on several devices using the same config folder at the same time, so it makes sense to have a lock file there to try and prevent this. You can link the other device separately if you want to use Signal-Desktop there as well. |
The config folder should only contain settings like the theme and notifications. State information and cache and keys and message db and so on are not config and must not be saved in that folder. |
@hiqua That is exactly what this issue is about. If the config directory only contained configuration and no message store, lock files or other non-config data, users would be able to sync that directory between clients without problems to keep their config consistent between devices. Linking two devices separately does not even work for this, because the client configuration (appearance, spell check, notifications, etc.) is not synced by linking. |
This is a bug in Electron. Let's move discussion there: electron/electron#8124 |
When I opened this issue, there was no real interest in fixing this in electron. Reasons were the transition from the old system might be hard and that further upstream, chromium was and is not interested in fixing things. Since there is a now a PR (electron/electron#30665) close to being merged, I agree that an upstream fix would be the better option. |
electron/electron#33554 is really not a solution to this problem and it is not intended to be one (neither was electron/electron#30665 as it turns out). The user data is still not separate from config, behaviour is still wrong by default and as the name Since the main problem will not be solved by electron in the foreseeable future, I would suggest storing signal cache manually in |
I'll leave a link to PR to track the progress electron/electron#34337 |
Bug Description
The Signal desktop client on Linux stores its cache and runtime files in
~/.config/Signal/
. This is not what the.config
directory is for.According to the freedesktop.org XDG Base Directory Specification , these files should be stored in
$XDG_RUNTIME_DIR/Signal/
,$XDG_CACHE_HOME/Signal/
or$XDG_DATA_HOME/Signal/
depending on their lifetime and redundancy.Steps to Reproduce
.config
directory.Actual Result:
Signal creates a
.config/Signal
directory and stores all configuration (that one's ok), history, cache and runtime data (those are not ok) in this directory.Expected Result:
Signal creates the correct directories in
$XDG_CONFIG_HOME
,$XDG_RUNTIME_DIR
,$XDG_CACHE_HOME
and$XDG_DATA_HOME
and uses them as expected.If for example
SingletonCookie
,SingletonLock
andSS
are only required during Signal's runtime, they should be created in$XDG_RUNTIME_DIR/Signal/
, ifCache
only contains cached data, it should be stored in$XDG_CACHE_HOME/Signal
, and so on.Platform Info
Signal Version: v1.39.6
Operating System:
ArchLinux 5.10.9-arch1-1
Linked Device Version:
Not relevant.
Link to Debug Log
Not relevant.
The text was updated successfully, but these errors were encountered: