Bug 445217 - Configuration file mess under $XDG_CONFIG_HOME
Summary: Configuration file mess under $XDG_CONFIG_HOME
Status: RESOLVED INTENTIONAL
Alias: None
Product: Akonadi
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-11-09 17:38 UTC by phrxmd
Modified: 2021-11-09 18:53 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description phrxmd 2021-11-09 17:38:26 UTC
SUMMARY
Akonadi components put their config files in different places - some under $XDG_CONFIG_HOME, others under $XDG_CONFIG_HOME, and some seem to put them in both places. While this technically does not contradict the XDG spec, this is inconsistent, difficult to use., and contributes to the mess in ~/.config that is a deterrent to many novice users.

STEPS TO REPRODUCE
1.  Install Akonadi, work with it for a while
2.  Check content of ~/.config

OBSERVED RESULT
There are some configuration files in a directory ~/.config/akonadi, and other configuration files directly under ~/./config, which is both inconsistent and unwieldy

On my system:

> cd  ~/.config
> ls -1 akonadi*
akonadi_akonotes_resource_0rc
akonadi_contacts_resource_2rc
akonadi-firstrunrc
akonadi_ical_resource_0rc
akonadi_indexing_agentrc
akonadi_maildir_resource_0rc
akonadi-migrationrc

akonadi:
agent_config_akonadi_akonotes_resource_0
agent_config_akonadi_akonotes_resource_0_changes.dat
agent_config_akonadi_archivemail_agent_changes.dat
agent_config_akonadi_birthdays_resource
agent_config_akonadi_birthdays_resource_changes.dat
agent_config_akonadi_contacts_resource_0
agent_config_akonadi_contacts_resource_0_changes.dat
agent_config_akonadi_contacts_resource_1
agent_config_akonadi_contacts_resource_1_changes.dat
agent_config_akonadi_contacts_resource_2
agent_config_akonadi_contacts_resource_2_changes.dat
agent_config_akonadi_followupreminder_agent_changes.dat
agent_config_akonadi_ical_resource_0
agent_config_akonadi_ical_resource_0_changes.dat
agent_config_akonadi_indexing_agent
agent_config_akonadi_indexing_agent_changes.dat
agent_config_akonadi_maildir_resource_0
agent_config_akonadi_maildir_resource_0_changes.dat
agent_config_akonadi_maildispatcher_agent_changes.dat
agent_config_akonadi_mailfilter_agent_changes.dat
agent_config_akonadi_mailmerge_agent_changes.dat
agent_config_akonadi_migration_agent_changes.dat
agent_config_akonadi_newmailnotifier_agent_changes.dat
agent_config_akonadi_notes_agent_changes.dat
agent_config_akonadi_sendlater_agent_changes.dat
agent_config_akonadi_unifiedmailbox_agent
agent_config_akonadi_unifiedmailbox_agent_changes.dat
agentsrc
akonadiconnectionrc
akonadiserverrc

EXPECTED RESULT
If we have a directory ~/.config/akonadi, all Akonadi coomponents should put their config files in there.

SOFTWARE/OS VERSIONS
Akonadi components 21.08.3

Operating System: openSUSE Tumbleweed 20211107
KDE Plasma Version: 5.23.2
KDE Frameworks Version: 5.87.0
Qt Version: 5.15.2
Kernel Version: 5.14.14-1-default (64-bit)
Graphics Platform: Wayland

ADDITIONAL INFORMATION
Comment 1 Christophe Marin 2021-11-09 17:52:14 UTC
Not an issue, this is the expected layout. $XDG_CONFIG_HOME/akonadi/ contains files needed by akonadi (the server).
Akonadi resources have theirs into $XDG_CONFIG_HOME.
Comment 2 phrxmd 2021-11-09 18:08:38 UTC
There may be a rationale to it, but as a user I find it rather confusing to have seven Akonadi config files under ~/.config, and then another subdirectory  called akonadi with another 30 files.
Comment 3 Christophe Marin 2021-11-09 18:21:09 UTC
That's why resources have graphical configuration modules. Config files are not supposed to be edited manually.
Comment 4 phrxmd 2021-11-09 18:53:50 UTC
The reason for this bug report was not that I tried to edit the configuration manually, but that I tried to back up my KDE configuration and the files are all over the place.  

I appreciate that there is a technical reasons behind it. But for a user who knows nothing about the architecture of Akonad,i this is not very intuitive and can be confusing. Akonadi is not the only app that does this, but it's a particularly obvious one because it makes its own config subdirectory, but then puts several files outside of it. I prefer how Falkon or KDE Connect do it - one subdirectory under $XDG_CONFIG_HOME with all config data underneath it (and ideally persistent stateful data should then go separately under $XDG_STATE_HOME).