As a technical user who wants to monitor and experiment with configuration, I want to check my configuration into a git repository. Currently, .dolphinrc contains temporary state (this is often placed into the XDG_DATA directory - see for example the discussion on Proposal: STATE Directory at https://wiki.debian.org/XDGBaseDirectorySpecification). For example, a dolphinrc that I have contains the following: [General] Version=200 ViewPropsTimestamp=2018,4,26,4,16,4 [MainWindow] Height 835=766 MenuBar=Disabled State=AAAA/wAAAAD9AAAAAwAAAAAAAAC4AAAC2PwCAAAAAvsAAAAWAGYAbwBsAGQAZQByAHMARABvAGMAawAAAAAA/////wAAAAoBAAAD+wAAABQAcABsAGEAYwBlAHMARABvAGMAawEAAAAmAAAC2AAAAFoBAAADAAAAAQAAAAAAAAAA/AIAAAAB+wAAABAAaQBuAGYAbwBEAG8AYwBrAAAAAAD/////AAAACgEAAAMAAAADAAAAAAAAAAD8AQAAAAH7AAAAGAB0AGUAcgBtAGkAbgBhAGwARABvAGMAawAAAAAA/////wAAAAoBAAADAAACDwAAAtgAAAAEAAAABAAAAAgAAAAI/AAAAAEAAAACAAAAAQAAABYAbQBhAGkAbgBUAG8AbwBsAEIAYQByAQAAAAD/////AAAAAAAAAAA= ToolBarsMovable=Disabled Width 1432=712 Dimensions of windows, timestamps, and so on could be split out into a separate file. I believe that file should be in ~/.local/share/dolphin as a state file. I think this should be an uncontroversial request - would a patch be accepted? If it is controversial, let me know how I can address any concerns!
fyi I also submitted this to reddit for general discussion https://www.reddit.com/r/kde/comments/98hist/new_bugzilla_issue_dolphinrc_should_contain_only/
I suppose I should clarify: dolphinrc currently does contain some state which I would describe as persistent configuration. For example, if I enable "Use common properties for all folders", [General] is updated to add a line: GlobalViewProps=true
This looks like a reasonable request, so I don't think that we would oppose any patches that'd implement this change. But because of our limited resources I cannot guarantee when and if we manage to write a patch, so the best option would be to create one yourself ;) I'll tag this as a bug, because we don't really follow XDG standards here.
>I think this should be an uncontroversial request Mabye not, but doing it properly is not entirely trivial. Deep knowledge of every config key moved will be required. >ToolBarsMovable=Disabled this definitely isn't state. So you're splitting things in the same config from the same code. Also we would probably want some shared KConfig going around for state patches, so we'll need changes in KSharedConfig with the weak pointer storage.
This was discussed at the KConfig BoF at Akademy. It is something that would like to have, but it's not going to be easy. Moving to kconfig for now (as this is not dolphin-specific).
Note: a bit of progress with this commit https://phabricator.kde.org/D26440 which adds a utility function for state files. I'm hopeful that with new features (e.g., https://phabricator.kde.org/T12192), the files will be clean of state.
*** Bug 425210 has been marked as a duplicate of this bug. ***
*** Bug 291222 has been marked as a duplicate of this bug. ***
*** Bug 436363 has been marked as a duplicate of this bug. ***
See https://invent.kde.org/frameworks/kxmlgui/-/merge_requests/76, but that has to wait for KF6 branching because of binary compatibility. See also https://phabricator.kde.org/T12549, for the KF6 task which is actively being worked on.
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kxmlgui/-/merge_requests/79
A possibly relevant merge request was started @ https://invent.kde.org/system/dolphin/-/merge_requests/279
Note that State= includes toolbars and dockwidgets (e.g. dolphin's places panel) locations/orientation; that isn't transient config IMHO.
Indeed.
Git commit 52ef310d6b543d3db5de35aa4063c86708ba36ee by Alexander Lohnau. Committed on 20/10/2021 at 05:22. Pushed by alex into branch 'master'. Allow apps to opt-in storing state data in separate file Because it is opt-in the behavior of apps that use the config for more complex session management does not change. Task: https://phabricator.kde.org/T12549 M +24 -10 src/kmainwindow.cpp M +17 -0 src/kmainwindow.h M +7 -0 src/kmainwindow_p.h https://invent.kde.org/frameworks/kxmlgui/commit/52ef310d6b543d3db5de35aa4063c86708ba36ee
Git commit b497dc9cbd1236790b5267710f5fb8370253d005 by Alexander Lohnau. Committed on 20/10/2021 at 16:07. Pushed by alex into branch 'master'. Save size of config dialog in state config M +2 -2 src/settings/dolphinsettingsdialog.cpp https://invent.kde.org/system/dolphin/commit/b497dc9cbd1236790b5267710f5fb8370253d005
Git commit 946b911a5d340d7672db9802579f658aeba738b0 by Alexander Lohnau. Committed on 20/10/2021 at 16:07. Pushed by alex into branch 'master'. Utilize KXMLGUI API to store state config in separate file M +5 -0 src/dolphinmainwindow.cpp https://invent.kde.org/system/dolphin/commit/946b911a5d340d7672db9802579f658aeba738b0
*** Bug 468997 has been marked as a duplicate of this bug. ***
https://invent.kde.org/frameworks/kxmlgui/-/merge_requests/211 took care of enabling the state separation by default.
I think on the frameworks side, we have resolved with this bug. I will need to look into a few dolphin specific cases in order to tangle the remaining issues.