element-hq / element-hq/element-web

Support overriding parts of config.json via .well-known

Open
#13,678 10 comments 5 reactions 1 assignee Claimed by @turt2live View on GitHub
T-Enhancement Z-TravisR
Dominant language
TypeScript
Stars
13.5k
Forks
2.8k
PR merge metrics
PR metrics pending

Description

This is a thing that I've considered proposing for a while given there's various minor settings that could be homeserver-specific and need to support desktop users. Now that we're encouraging the desktop app more, we should probably have a way for homeservers to say "my theme is CoolCompany Blue" instead of light, for example.

Some ideas for things that could be covered by this:
* `settingDefaults`
* theme info
* permalinks (https://github.com/vector-im/riot-web/issues/13676)
* other aesthetic things
* piwik?

Stuff like the homeserver/identity server wouldn't matter at this point in the cycle as it's something that should be checked much earlier in the app.

The shape of this could possibly just be an `im.vector.web.settings` object which just gets lumped on top of the in-memory config.

Outstanding questions:
1. Should this override or underride the in-memory amalgamated config?
2. How often should we check the config? Do we only check on startup and never again?
a. If we do check regularly, what do we do if a setting changes? eg: if the theme changes, it might be jarring to have the theme suddenly change without warning. Maybe a prompt to "update", getting the user to reload the app?
3. How does this fit into the setting levels, if at all? We could avoid the over vs underride question if we just make it a level.
4. Do we even want this?

*assigned to myself because I'm interested in making a proof of concept regardless of question 4.*

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.