WebContent+UI: User configuration should be read from $XDG_CONFIG_DIR or similar
Currently we drop:
- Browser bookmarks JSON (not currently used by Ladybird, but are used by SerenityOS Browser)
- Auto-play allowlist config
- Content Filter denylist config
All in share/Lagom/ladybird. When installed from a distribution package, these config files will be read-only by a regular user.
-
[ ] Read per-user configuration files. We should copy these shipped default configs into the user's config directory on....
- first launch?
- any time or if they are not present
- only if the user edits them through some custom UI (about:config?)
- controlled by some flag that distros set if they want the default configs copied or not?
-
[ ] Reconcile user config files with default config files
- merge user config directories with the default configs?
- override default configs with user configs?
-
[ ] Import and export configuration files
- [ ] provide a way to export user settings and preferences
- [ ] provide a way to import user settings and preferences (from other browsers? or just ladybird's format?)
IMO the Zed project handles this well. For Linux, they do not add any configs to ~/.config until the user specifically wants to override the defaults. Only a single file is used for config overrides. All other state data (extensions, project history) is in ~/.local/share.
I think it would be good to have something similar for ladybird.