this post was submitted on 11 Jul 2023
17 points (100.0% liked)

KDE

4854 readers
414 users here now

KDE is an international technology team creating user-friendly free and open source software for desktop and portable computing. KDE’s software runs on GNU/Linux, BSD and other operating systems, including Windows.

Plasma 6 Bugs

If you encounter a bug, proceed to https://bugs.kde.org, check whether it has been reported.

If it hasn't, report it yourself.

PLEASE THINK CAREFULLY BEFORE POSTING HERE.

Developers do not look for reports on social media, so they will not see it and all it does is clutter up the feed.

founded 1 year ago
MODERATORS
 

There's a proposal at the linked blog post for how to clean up the config directory.

The post goes into detail which changes would be required in KDE software using Qt.

After reading, I just have one question (the blog does not seem to have a comment section): how does this handle transitioning from the old location to the new location? Imagine having a katerc config file under ~/.config and one under ~/.config/kate (which is the suggestion from the post) - should those be merged once and then the old one gets deleted?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 2 points 1 year ago (1 children)

I answered something similar elsewhere:

If you mean migrating the files yourself, it's just a matter of copying the file from the old place ~/.config/yourconfigrc to ~/.config/yourapp/yourconfigrc.

If you mean you want the application to manage the migration itself, that's an implementation detail I hadn't thought about yet, but which I assume wouldn't be difficult to do with KConfig.

You can see this bit of code from Konsole showing how to migrate from old entries to new entries in the same config file for example: >https://invent.kde.org/utilities/konsole/-/blob/master/src/main.cpp#L99

The implementation could probably be something similar, with two KConfig/KSharedConfigPtr instances I assume πŸ‘€ so:

  • if oldConfig exists, create an object for it
  • read all oldConfig entries
  • if it differs from newConfig, store which ones differ
  • write all different oldConfig entries in newConfig object
  • sync()

Something like that.

[–] [email protected] 1 points 1 year ago (1 children)

Just for clarification: this would be a one-time process per application, right? I'm sure this will work for 99% of users, but there'll always be the one (or a couple of users) that synchronizes their .config directory, then doesn't update all machines at the same time and all hell breaks loose - a.k.a https://xkcd.com/1172/ :-) But I'd say that's probably not worth losing the advantages of a cleaner .config-directory, so this might be one of those "tough-luck" situations... 🀷

[–] [email protected] 1 points 1 year ago

I think so. I mean, the migration code would still be there afterwards, maybe removed after several versions later.

If the user syncs machines with different application versions I'm not sure there's anything that can be done at the code level though. πŸ‘€