* Add option to find own location in map views ([\#10083](https://github.com/matrix-org/matrix-react-sdk/pull/10083)). * Render poll end events in timeline ([\#10027](https://github.com/matrix-org/matrix-react-sdk/pull/10027)). Contributed by @kerryarchibald. * Indicate unread messages in tab title ([\#10096](https://github.com/matrix-org/matrix-react-sdk/pull/10096)). Contributed by @tnt7864. * Open message in editing mode when keyboard up is pressed (RTE) ([\#10079](https://github.com/matrix-org/matrix-react-sdk/pull/10079)). Contributed by @florianduros. * Hide superseded rooms from the room list using dynamic room predecessors ([\#10068](https://github.com/matrix-org/matrix-react-sdk/pull/10068)). Contributed by @andybalaam. * Support MSC3946 in RoomListStore ([\#10054](https://github.com/matrix-org/matrix-react-sdk/pull/10054)). Fixes #24325. Contributed by @andybalaam. * Auto focus security key field ([\#10048](https://github.com/matrix-org/matrix-react-sdk/pull/10048)). * use Poll model with relations API in poll rendering ([\#9877](https://github.com/matrix-org/matrix-react-sdk/pull/9877)). Contributed by @kerryarchibald. * Support MSC3946 in the RoomCreate tile ([\#10041](https://github.com/matrix-org/matrix-react-sdk/pull/10041)). Fixes #24323. Contributed by @andybalaam. * Update labs flag description for RTE ([\#10058](https://github.com/matrix-org/matrix-react-sdk/pull/10058)). Contributed by @florianduros. * Change ul list style to disc when editing message ([\#10043](https://github.com/matrix-org/matrix-react-sdk/pull/10043)). Contributed by @alunturner. * Improved click detection within PiP windows ([\#10040](https://github.com/matrix-org/matrix-react-sdk/pull/10040)). Fixes #24371. * Add RTE keyboard navigation in editing ([\#9980](https://github.com/matrix-org/matrix-react-sdk/pull/9980)). Fixes #23621. Contributed by @florianduros. * Paragraph integration for rich text editor ([\#10008](https://github.com/matrix-org/matrix-react-sdk/pull/10008)). Contributed by @alunturner. * Add indentation increasing/decreasing to RTE ([\#10034](https://github.com/matrix-org/matrix-react-sdk/pull/10034)). Contributed by @florianduros. * Add ignore user confirmation dialog ([\#6116](https://github.com/matrix-org/matrix-react-sdk/pull/6116)). Fixes #14746. * Use monospace font for room, message IDs in View Source modal ([\#9956](https://github.com/matrix-org/matrix-react-sdk/pull/9956)). Fixes #21937. Contributed by @paragpoddar. * Implement MSC3946 for AdvancedRoomSettingsTab ([\#9995](https://github.com/matrix-org/matrix-react-sdk/pull/9995)). Fixes #24322. Contributed by @andybalaam. * Implementation of MSC3824 to make the client OIDC-aware ([\#8681](https://github.com/matrix-org/matrix-react-sdk/pull/8681)). Contributed by @hughns. * Improves a11y for avatar uploads ([\#9985](https://github.com/matrix-org/matrix-react-sdk/pull/9985)). Contributed by @GoodGuyMarco. * Add support for [token authenticated registration](https ([\#7275](https://github.com/matrix-org/matrix-react-sdk/pull/7275)). Fixes #18931. Contributed by @govynnus. * Jitsi requests 'requires_client' capability if auth token is provided ([\#24294](https://github.com/vector-im/element-web/pull/24294)). Contributed by @maheichyk. * Remove duplicate white space characters from translation keys ([\#10152](https://github.com/matrix-org/matrix-react-sdk/pull/10152)). Contributed by @luixxiul. * Fix the caption of new sessions manager on Labs settings page for localization ([\#10143](https://github.com/matrix-org/matrix-react-sdk/pull/10143)). Contributed by @luixxiul. * Prevent start another DM with a user if one already exists ([\#10127](https://github.com/matrix-org/matrix-react-sdk/pull/10127)). Fixes #23138. * Remove white space characters before the horizontal ellipsis ([\#10130](https://github.com/matrix-org/matrix-react-sdk/pull/10130)). Contributed by @luixxiul. * Fix Selectable Text on 'Delete All' and 'Retry All' Buttons ([\#10128](https://github.com/matrix-org/matrix-react-sdk/pull/10128)). Fixes #23232. Contributed by @akshattchhabra. * Correctly Identify emoticons ([\#10108](https://github.com/matrix-org/matrix-react-sdk/pull/10108)). Fixes #19472. Contributed by @adarsh-sgh. * Should open new 1:1 chat room after leaving the old one ([\#9880](https://github.com/matrix-org/matrix-react-sdk/pull/9880)). Contributed by @ahmadkadri. * Remove a redundant white space ([\#10129](https://github.com/matrix-org/matrix-react-sdk/pull/10129)). Contributed by @luixxiul. * Fix a crash when removing persistent widgets (updated) ([\#10099](https://github.com/matrix-org/matrix-react-sdk/pull/10099)). Fixes #24412. Contributed by @andybalaam. * Fix wrongly grouping 3pid invites into a single repeated transition ([\#10087](https://github.com/matrix-org/matrix-react-sdk/pull/10087)). Fixes #24432. * Fix scrollbar colliding with checkbox in add to space section ([\#10093](https://github.com/matrix-org/matrix-react-sdk/pull/10093)). Fixes #23189. Contributed by @Arnabdaz. * Add a whitespace character after 'broadcast?' ([\#10097](https://github.com/matrix-org/matrix-react-sdk/pull/10097)). Contributed by @luixxiul. * Seekbar in broadcast PiP view is now updated when switching between different broadcasts ([\#10072](https://github.com/matrix-org/matrix-react-sdk/pull/10072)). Fixes #24415. * Add border to "reject" button on room preview card for clickable area indication. It fixes vector-im/element-web#22623 ([\#9205](https://github.com/matrix-org/matrix-react-sdk/pull/9205)). Contributed by @gefgu. * Element-R: fix rageshages ([\#10081](https://github.com/matrix-org/matrix-react-sdk/pull/10081)). Fixes #24430. * Fix markdown paragraph display in timeline ([\#10071](https://github.com/matrix-org/matrix-react-sdk/pull/10071)). Fixes #24419. Contributed by @alunturner. * Prevent the remaining broadcast time from being exceeded ([\#10070](https://github.com/matrix-org/matrix-react-sdk/pull/10070)). * Fix cursor position when new line is created by pressing enter (RTE) ([\#10064](https://github.com/matrix-org/matrix-react-sdk/pull/10064)). Contributed by @florianduros. * Ensure room is actually in space hierarchy when resolving its latest version ([\#10010](https://github.com/matrix-org/matrix-react-sdk/pull/10010)). * Fix new line for inline code ([\#10062](https://github.com/matrix-org/matrix-react-sdk/pull/10062)). Contributed by @florianduros. * Member avatars without canvas ([\#9990](https://github.com/matrix-org/matrix-react-sdk/pull/9990)). Contributed by @clarkf. * Apply more general fix for base avatar regressions ([\#10045](https://github.com/matrix-org/matrix-react-sdk/pull/10045)). Fixes #24382 and #24370. * Replace list, code block and quote icons by new icons ([\#10035](https://github.com/matrix-org/matrix-react-sdk/pull/10035)). Contributed by @florianduros. * fix regional emojis converted to flags ([\#9294](https://github.com/matrix-org/matrix-react-sdk/pull/9294)). Fixes #19000. Contributed by @grimhilt. * resolved emoji description text overflowing issue ([\#10028](https://github.com/matrix-org/matrix-react-sdk/pull/10028)). Contributed by @fahadNoufal. * Fix MessageEditHistoryDialog crashing on complex input ([\#10018](https://github.com/matrix-org/matrix-react-sdk/pull/10018)). Fixes #23665. Contributed by @clarkf. * Unify unread notification state determination ([\#9941](https://github.com/matrix-org/matrix-react-sdk/pull/9941)). Contributed by @clarkf. * Fix layout and visual regressions around default avatars ([\#10031](https://github.com/matrix-org/matrix-react-sdk/pull/10031)). Fixes #24375 and #24369. * Fix useUnreadNotifications exploding with falsey room, like in notif panel ([\#10030](https://github.com/matrix-org/matrix-react-sdk/pull/10030)). Fixes matrix-org/element-web-rageshakes#19334. * Fix "[object Promise]" appearing in HTML exports ([\#9975](https://github.com/matrix-org/matrix-react-sdk/pull/9975)). Fixes #24272. Contributed by @clarkf. * changing the color of message time stamp ([\#10016](https://github.com/matrix-org/matrix-react-sdk/pull/10016)). Contributed by @nawarajshah. * Fix link creation with backward selection ([\#9986](https://github.com/matrix-org/matrix-react-sdk/pull/9986)). Fixes #24315. Contributed by @florianduros. * Misaligned reply preview in thread composer #23396 ([\#9977](https://github.com/matrix-org/matrix-react-sdk/pull/9977)). Fixes #23396. Contributed by @mustafa-kapadia1483. -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEE6Vt2megLaKnq2aGaK6qbhVK9kEcFAmPrZYgRHHJlbGVhc2Vz QHJpb3QuaW0ACgkQK6qbhVK9kEdnbA//S5nctHyROOuAyYYxT0+xpdKvggNRd7dS UEa1DmLR9iK04sYqL3Smq6UApMxMOamdE9muh/c/DAIlYSRn9A96zduqUgX/EGMU quMrdIdDMN25BRdlgOp67vmGDXjGaXEBZRoY8CTuFrHNOxPH3cT29yW9yZVeSAqK IyEuzABWbO8EmxAdaBbZxnIP+bHkxpOr+dPQsBxagvf3Gu2GhpDUCTJmlBUDd6Ii Nazxdn0ho2a17d8H8wwsBEK30Jkg/UKuOX27ouAhuk6wVbDD5wXHY3YZWMlhFhFW h58Saumk2RbeC+Wgd7d4MLkWIAwpvbMXQE6SF5AA01UNmZu8tRVHXuwlSkSn1/ru JqQ8VK/pI3N8p2TOXN6f6aUdq4uNNGa49WxkZUlph6crqCSVGGKJ7fQn7vEDZHhx zX6dONAZEzvsgjcSDkxRnnPo3Lk9aXJJa6bd3/hSAjxk4i8+h6rFOrNpnIjrF3TZ mSOf4VoDbjQXFNfH5Sl60u38rp7LEATeaqIoS+WZpLHLGJpAVfw9c4dWSXsgBXtN mtJgDcmCXxxmDZsufNBbYqcluEqAGgGmVDMIsPI+ADjltllqIIpkl3mGIHj6CsJ6 qqgI4YVEG4cAppR9+ttI9QNCfSDdChqzCZmIBM6bmRHNCqCmHSdxwe4YJGNE1pnG C8d1trLNMxc= =0NQH -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQJNBAABCAA3FiEEUMS2jJrglzPzHXqk10PFDIthmEwFAmPrxeUZHGNvZGV3b3Jr c0BzdXBlcmNhYmxlLm9ubAAKCRDXQ8UMi2GYTBf4EAC6DSlDf2J1Z7noBjJ9RiQF z5qnuxovlBoKDvvY8xILnapOvdTukFgWtO3OQ1dE7mVTtenJ8iomxw85kud5jV7o EZUx/5tZwaOd77KJ1cuZp3jhl/NprLfsbQPwuGr+7wlhr10oXjQakbrtA+225u6K aRql+S2U6slSsyafiKRd8kjoJjbrGXHKwPMeiidGVJ8tTf/SXu+3Nz9FM/l5V/iZ hOTBhXgMevAN1Hm/x2GKljdJ4aPBsfeBEfsTuQs/O1X78mRyb1pg0P+jw61wxc2v QJ3M6JwxH3otD/4nBfqIg4K0P3y61B4p6YLEL6DdF3VV8rLqfmYR/UVaYcyYXiJA 2tQdN5SuQh3ZJA1Wu7XAWmizIsB19Yr5HW/Qn7EnaTXOIMk3mtaNP7hkj+SxC+ui DajNKQw+2I9RJi5C8xldCPmWNlHJiEpwQKDZj4OGYDhCx1F49ZyRUKffEMRULYti Yu+lX81W5I4pt4FUkSy+Hk0WzR2vPZZA/cxbciSU3t2CtI/Y4Frj9z/1lMmGRpWK T/bEQk4+OniFdv26dLbdHY6tNKXJZSExRkG/aKZ7lWwkqBQmc/s2cU8k3R2DTDpp zb/mGjL8rYrS8mU01p4PhN2bQn1VJT42QQOtIsSeOJLPnuRH+InsrnjWFMjKXN8l uOv913gXU0nNY1ICamb8Fw== =cgsY -----END PGP SIGNATURE----- Merge tag 'v1.11.23' into sc * Description of QR code sign in labs feature ([\#23513](https://github.com/vector-im/element-web/pull/23513)). Contributed by @hughns. * Add option to find own location in map views ([\#10083](https://github.com/matrix-org/matrix-react-sdk/pull/10083)). * Render poll end events in timeline ([\#10027](https://github.com/matrix-org/matrix-react-sdk/pull/10027)). Contributed by @kerryarchibald. * Indicate unread messages in tab title ([\#10096](https://github.com/matrix-org/matrix-react-sdk/pull/10096)). Contributed by @tnt7864. * Open message in editing mode when keyboard up is pressed (RTE) ([\#10079](https://github.com/matrix-org/matrix-react-sdk/pull/10079)). Contributed by @florianduros. * Hide superseded rooms from the room list using dynamic room predecessors ([\#10068](https://github.com/matrix-org/matrix-react-sdk/pull/10068)). Contributed by @andybalaam. * Support MSC3946 in RoomListStore ([\#10054](https://github.com/matrix-org/matrix-react-sdk/pull/10054)). Fixes #24325. Contributed by @andybalaam. * Auto focus security key field ([\#10048](https://github.com/matrix-org/matrix-react-sdk/pull/10048)). * use Poll model with relations API in poll rendering ([\#9877](https://github.com/matrix-org/matrix-react-sdk/pull/9877)). Contributed by @kerryarchibald. * Support MSC3946 in the RoomCreate tile ([\#10041](https://github.com/matrix-org/matrix-react-sdk/pull/10041)). Fixes #24323. Contributed by @andybalaam. * Update labs flag description for RTE ([\#10058](https://github.com/matrix-org/matrix-react-sdk/pull/10058)). Contributed by @florianduros. * Change ul list style to disc when editing message ([\#10043](https://github.com/matrix-org/matrix-react-sdk/pull/10043)). Contributed by @alunturner. * Improved click detection within PiP windows ([\#10040](https://github.com/matrix-org/matrix-react-sdk/pull/10040)). Fixes #24371. * Add RTE keyboard navigation in editing ([\#9980](https://github.com/matrix-org/matrix-react-sdk/pull/9980)). Fixes #23621. Contributed by @florianduros. * Paragraph integration for rich text editor ([\#10008](https://github.com/matrix-org/matrix-react-sdk/pull/10008)). Contributed by @alunturner. * Add indentation increasing/decreasing to RTE ([\#10034](https://github.com/matrix-org/matrix-react-sdk/pull/10034)). Contributed by @florianduros. * Add ignore user confirmation dialog ([\#6116](https://github.com/matrix-org/matrix-react-sdk/pull/6116)). Fixes #14746. * Use monospace font for room, message IDs in View Source modal ([\#9956](https://github.com/matrix-org/matrix-react-sdk/pull/9956)). Fixes #21937. Contributed by @paragpoddar. * Implement MSC3946 for AdvancedRoomSettingsTab ([\#9995](https://github.com/matrix-org/matrix-react-sdk/pull/9995)). Fixes #24322. Contributed by @andybalaam. * Implementation of MSC3824 to make the client OIDC-aware ([\#8681](https://github.com/matrix-org/matrix-react-sdk/pull/8681)). Contributed by @hughns. * Improves a11y for avatar uploads ([\#9985](https://github.com/matrix-org/matrix-react-sdk/pull/9985)). Contributed by @GoodGuyMarco. * Add support for [token authenticated registration](https ([\#7275](https://github.com/matrix-org/matrix-react-sdk/pull/7275)). Fixes #18931. Contributed by @govynnus. * Jitsi requests 'requires_client' capability if auth token is provided ([\#24294](https://github.com/vector-im/element-web/pull/24294)). Contributed by @maheichyk. * Remove duplicate white space characters from translation keys ([\#10152](https://github.com/matrix-org/matrix-react-sdk/pull/10152)). Contributed by @luixxiul. * Fix the caption of new sessions manager on Labs settings page for localization ([\#10143](https://github.com/matrix-org/matrix-react-sdk/pull/10143)). Contributed by @luixxiul. * Prevent start another DM with a user if one already exists ([\#10127](https://github.com/matrix-org/matrix-react-sdk/pull/10127)). Fixes #23138. * Remove white space characters before the horizontal ellipsis ([\#10130](https://github.com/matrix-org/matrix-react-sdk/pull/10130)). Contributed by @luixxiul. * Fix Selectable Text on 'Delete All' and 'Retry All' Buttons ([\#10128](https://github.com/matrix-org/matrix-react-sdk/pull/10128)). Fixes #23232. Contributed by @akshattchhabra. * Correctly Identify emoticons ([\#10108](https://github.com/matrix-org/matrix-react-sdk/pull/10108)). Fixes #19472. Contributed by @adarsh-sgh. * Should open new 1:1 chat room after leaving the old one ([\#9880](https://github.com/matrix-org/matrix-react-sdk/pull/9880)). Contributed by @ahmadkadri. * Remove a redundant white space ([\#10129](https://github.com/matrix-org/matrix-react-sdk/pull/10129)). Contributed by @luixxiul. * Fix a crash when removing persistent widgets (updated) ([\#10099](https://github.com/matrix-org/matrix-react-sdk/pull/10099)). Fixes #24412. Contributed by @andybalaam. * Fix wrongly grouping 3pid invites into a single repeated transition ([\#10087](https://github.com/matrix-org/matrix-react-sdk/pull/10087)). Fixes #24432. * Fix scrollbar colliding with checkbox in add to space section ([\#10093](https://github.com/matrix-org/matrix-react-sdk/pull/10093)). Fixes #23189. Contributed by @Arnabdaz. * Add a whitespace character after 'broadcast?' ([\#10097](https://github.com/matrix-org/matrix-react-sdk/pull/10097)). Contributed by @luixxiul. * Seekbar in broadcast PiP view is now updated when switching between different broadcasts ([\#10072](https://github.com/matrix-org/matrix-react-sdk/pull/10072)). Fixes #24415. * Add border to "reject" button on room preview card for clickable area indication. It fixes vector-im/element-web#22623 ([\#9205](https://github.com/matrix-org/matrix-react-sdk/pull/9205)). Contributed by @gefgu. * Element-R: fix rageshages ([\#10081](https://github.com/matrix-org/matrix-react-sdk/pull/10081)). Fixes #24430. * Fix markdown paragraph display in timeline ([\#10071](https://github.com/matrix-org/matrix-react-sdk/pull/10071)). Fixes #24419. Contributed by @alunturner. * Prevent the remaining broadcast time from being exceeded ([\#10070](https://github.com/matrix-org/matrix-react-sdk/pull/10070)). * Fix cursor position when new line is created by pressing enter (RTE) ([\#10064](https://github.com/matrix-org/matrix-react-sdk/pull/10064)). Contributed by @florianduros. * Ensure room is actually in space hierarchy when resolving its latest version ([\#10010](https://github.com/matrix-org/matrix-react-sdk/pull/10010)). * Fix new line for inline code ([\#10062](https://github.com/matrix-org/matrix-react-sdk/pull/10062)). Contributed by @florianduros. * Member avatars without canvas ([\#9990](https://github.com/matrix-org/matrix-react-sdk/pull/9990)). Contributed by @clarkf. * Apply more general fix for base avatar regressions ([\#10045](https://github.com/matrix-org/matrix-react-sdk/pull/10045)). Fixes #24382 and #24370. * Replace list, code block and quote icons by new icons ([\#10035](https://github.com/matrix-org/matrix-react-sdk/pull/10035)). Contributed by @florianduros. * fix regional emojis converted to flags ([\#9294](https://github.com/matrix-org/matrix-react-sdk/pull/9294)). Fixes #19000. Contributed by @grimhilt. * resolved emoji description text overflowing issue ([\#10028](https://github.com/matrix-org/matrix-react-sdk/pull/10028)). Contributed by @fahadNoufal. * Fix MessageEditHistoryDialog crashing on complex input ([\#10018](https://github.com/matrix-org/matrix-react-sdk/pull/10018)). Fixes #23665. Contributed by @clarkf. * Unify unread notification state determination ([\#9941](https://github.com/matrix-org/matrix-react-sdk/pull/9941)). Contributed by @clarkf. * Fix layout and visual regressions around default avatars ([\#10031](https://github.com/matrix-org/matrix-react-sdk/pull/10031)). Fixes #24375 and #24369. * Fix useUnreadNotifications exploding with falsey room, like in notif panel ([\#10030](https://github.com/matrix-org/matrix-react-sdk/pull/10030)). Fixes matrix-org/element-web-rageshakes#19334. * Fix "[object Promise]" appearing in HTML exports ([\#9975](https://github.com/matrix-org/matrix-react-sdk/pull/9975)). Fixes #24272. Contributed by @clarkf. * changing the color of message time stamp ([\#10016](https://github.com/matrix-org/matrix-react-sdk/pull/10016)). Contributed by @nawarajshah. * Fix link creation with backward selection ([\#9986](https://github.com/matrix-org/matrix-react-sdk/pull/9986)). Fixes #24315. Contributed by @florianduros. * Misaligned reply preview in thread composer #23396 ([\#9977](https://github.com/matrix-org/matrix-react-sdk/pull/9977)). Fixes #23396. Contributed by @mustafa-kapadia1483.
28 KiB
Configuration
You can configure the app by copying config.sample.json
to config.json
or config.$domain.json
and customising it.
Element will attempt to load first config.$domain.json
and if it fails config.json
. This mechanism allows different
configuration options depending on if you're hitting e.g. app1.example.com
or app2.example.com
. Configs are not mixed
in any way, it either entirely uses the domain config, or entirely uses config.json
.
The possible configuration options are described here. If you run into issues, please visit #element-web:matrix.org on Matrix.
For a good example of a production-tuned config, see https://app.element.io/config.json
For an example of a development/beta-tuned config, see https://develop.element.io/config.json
After changing the config, the app will need to be reloaded. For web browsers this is a simple page refresh, however for the desktop app the application will need to be exited fully (including via the task tray) and re-started.
Homeserver configuration
In order for Element to even start you will need to tell it what homeserver to connect to by default. Users will be
able to use a different homeserver if they like, though this can be disabled with "disable_custom_urls": true
in your
config.
One of the following options must be supplied:
default_server_config
: The preferred method of setting the homeserver connection information. Simply copy/paste your/.well-known/matrix/client
into this field. For example:{ "default_server_config": { "m.homeserver": { "base_url": "https://matrix-client.matrix.org" }, "m.identity_server": { "base_url": "https://vector.im" } } }
default_server_name
: A different method of connecting to the homeserver by looking up the connection information using.well-known
. When using this option, simply use your server's domain name (the part at the end of user IDs):"default_server_name": "matrix.org"
: A very deprecated method of defining the connection information. These are the same values seen asdefault_hs_url
and (optionally)default_is_url
base_url
in thedefault_server_config
example, withdefault_is_url
being optional.
If a combination of these three methods is used then Element will fail to load. This is because it is unclear which should be considered "first".
Labs flags
Labs flags are optional, typically beta or in-development, features that can be turned on or off. The full range of labs flags and their development status are documented here. If interested, the feature flag process is documented here.
To force a labs flag on or off, use the following:
{
"features": {
"feature_you_want_to_turn_on": true,
"feature_you_want_to_keep_off": false
}
}
If you'd like the user to be able to self-select which labs flags they can turn on, add "show_labs_settings": true
to
your config. This will turn on the tab in user settings.
Note: Feature support varies release-by-release. Check the labs flag documentation frequently if enabling the functionality.
Default settings
Some settings additionally support being specified at the config level to affect the user experience of your Element Web instance. As of writing those settings are not fully documented, however a few are:
default_federate
: Whentrue
(default), rooms will be marked as "federatable" during creation. Typically this setting shouldn't be used as the federation capabilities of a room cannot be changed after the room is created.default_country_code
: An optional ISO 3166 alpha2 country code (eg:GB
, the default) to use when showing phone number inputs.room_directory
: Optionally defines how the room directory component behaves. Currently only a single property,servers
is supported to add additional servers to the dropdown. For example:{ "room_directory": { "servers": ["matrix.org", "example.org"] } }
setting_defaults
: Optional configuration for settings which are not described by this document and support theconfig
level. This list is incomplete. For example:
These values will take priority over the hardcoded defaults for the settings. For a list of available settings, see Settings.tsx.{ "setting_defaults": { "MessageComposerInput.showStickersButton": false, "MessageComposerInput.showPollsButton": false } }
Customisation & branding
Element supports some customisation of the user experience through various branding and theme options. While it doesn't support complete re-branding/private labeling, a more personalised experience can be achieved for your users.
default_theme
: name of theme to use by default (can be one of 'light', 'dark' or 'system'), defaults to 'system', set the default light and dark theme via thelight_theme
anddark_theme
insettingDefaults
respectively and provide custom themes viacustom_themes
default_device_display_name
: Optional public name for devices created by login and registration, instead of the default templated string. Note that this option does not support templating, currently.brand
: Optional name for the app. Defaults toElement
. This is used throughout the application in various strings/locations.permalink_prefix
: An optional URL pointing to an Element Web deployment. For example,https://app.element.io
. This will change all permalinks (via the "Share" menus) to point at the Element Web deployment rather thanmatrix.to
.desktop_builds
: Optional. Where the desktop builds for the application are, if available. This is explained in more detail down below.mobile_builds
: Optional. Likedesktop_builds
, except for the mobile apps. Also described in more detail down below.mobile_guide_toast
: Whentrue
(default), users accessing the Element Web instance from a mobile device will be prompted to download the app instead.update_base_url
: For the desktop app only, the URL where to acquire update packages. If specified, must be a path to a directory containingmacos
andwin32
directories, with the update packages within. Defaults tohttps://packages.element.io/desktop/update/
in production.map_style_url
: Map tile server style URL for location sharing. e.g.https://api.maptiler.com/maps/streets/style.json?key=YOUR_KEY_GOES_HERE
This setting is ignored if your homeserver provides/.well-known/matrix/client
in its well-known location, and the JSON file at that location has a keym.tile_server
(or the unstable versionorg.matrix.msc3488.tile_server
). In this case, the configuration found in the well-known location is used instead.welcome_user_id
: An optional user ID to start a DM with after creating an account. Defaults to nothing (no DM created).custom_translations_url
: An optional URL to allow overriding of translatable strings. The JSON file must be in a format of{"affected string": {"languageCode": "new string"}}
. See https://github.com/matrix-org/matrix-react-sdk/pull/7886 for details.branding
: Options for configuring various assets used within the app. Described in more detail down below.embedded_pages
: Further optional URLs for various assets used within the app. Described in more detail down below.disable_3pid_login
: Whenfalse
(default), enables the options to log in with email address or phone number. Set totrue
to hide these options.disable_login_language_selector
: Whenfalse
(default), enables the language selector on the login pages. Set totrue
to hide this dropdown.disable_guests
: Whenfalse
(default), enable guest-related functionality (peeking/previewing rooms, etc) for unregistered users. Set totrue
to disable this functionality.user_notice
: Optional notice to show to the user, e.g. for sunsetting a deployment and pushing users to move in their own time. Takes a configuration object as below:title
: Required. Title to show at the top of the notice.description
: Required. The description to use for the notice.show_once
: Optional. If true then the notice will only be shown once per device.
desktop_builds
and mobile_builds
These two options describe the various availability for the application. When the app needs to promote an alternative download, such as trying to get the user to use an Android app or the desktop app for encrypted search, the config options will be looked at to see if the link should be to somewhere else.
Starting with desktop_builds
, the following subproperties are available:
available
: Required. Whentrue
, the desktop app can be downloaded from somewhere.logo
: Required. A URL to a logo (SVG), intended to be shown at 24x24 pixels.url
: Required. The download URL for the app. This is used as a hyperlink.
When desktop_builds
is not specified at all, the app will assume desktop downloads are available from https://element.io
For mobile_builds
, the following subproperties are available:
ios
: The URL for where to download the iOS app, such as an App Store link. When explicitlynull
, the app will assume the iOS app cannot be downloaded. When not provided, the default Element app will be assumed available.android
: The same asios
, except for Android instead.fdroid
: The same asandroid
, except for FDroid instead.
Together, these two options might look like the following in your config:
{
"desktop_builds": {
"available": true,
"logo": "https://example.org/assets/logo-small.svg",
"url": "https://example.org/not_element/download"
},
"mobile_builds": {
"ios": null,
"android": "https://example.org/not_element/android",
"fdroid": "https://example.org/not_element/fdroid"
}
}
branding
and embedded_pages
These two options point at various URLs for changing different internal pages (like the welcome page) and logos within the application.
Starting with branding
, the following subproperties are available:
welcome_background_url
: When a string, the URL for the full-page image background of the login, registration, and welcome pages. This property can additionally be an array to have the app choose an image at random from the selections.auth_header_logo_url
: A URL to the logo used on the login, registration, etc pages.auth_footer_links
: A list of links to add to the footer during login, registration, etc. Each entry must have atext
andurl
property.
embedded_pages
can be configured as such:
welcome_url
: A URL to an HTML page to show as a welcome page (landing on#/welcome
). When not specified, the defaultwelcome.html
that ships with Element will be used instead.home_url
: A URL to an HTML page to show within the app as the "home" page. When the app doesn't have a room/screen to show the user, it will use the home page instead. The home page is additionally accessible from the user menu. By default, no home page is set and therefore a hardcoded landing screen is used. More documentation and examples are here.login_for_welcome
: Whentrue
(defaultfalse
), the app will use the login form as a welcome page instead of the welcome page itself. This disables use ofwelcome_url
and all welcome page functionality.
Together, the options might look like this in your config:
{
"branding": {
"welcome_background_url": "https://example.org/assets/background.jpg",
"auth_header_logo_url": "https://example.org/assets/logo.svg",
"auth_footer_links": [
{ "text": "FAQ", "url": "https://example.org/faq" },
{ "text": "Donate", "url": "https://example.org/donate" }
]
},
"embedded_pages": {
"welcome_url": "https://example.org/assets/welcome.html",
"home_url": "https://example.org/assets/home.html"
}
}
Note that index.html
also has an og:image meta tag that is set to an image hosted on element.io. This is the image used if
links to your copy of Element appear in some websites like Facebook, and indeed Element itself. This has to be static in the HTML
and an absolute URL (and HTTP rather than HTTPS), so it's not possible for this to be an option in config.json. If you'd like to
change it, you can build Element, but run RIOT_OG_IMAGE_URL="http://example.com/logo.png" yarn build
. Alternatively, you can edit
the og:image
meta tag in index.html
directly each time you download a new version of Element.
SSO setup
When Element is deployed alongside a homeserver with SSO-only login, some options to ease the user experience might want to be set:
logout_redirect_url
: Optional URL to redirect the user to after they have logged out. Some SSO systems support a page that the user can be sent to in order to log them out of that system too, making logout symmetric between Element and the SSO system.sso_redirect_options
: Options to define how to handle unauthenticated users. If the object contains"immediate": true
, then all unauthenticated users will be automatically redirected to the SSO system to start their login. If instead you'd only like to have users which land on the welcome page to be redirected, use"on_welcome_page": true
. As an example:
It is most common to use the{ "sso_redirect_options": { "immediate": false, "on_welcome_page": true } }
immediate
flag instead ofon_welcome_page
.
VoIP / Jitsi calls
Currently, Element uses Jitsi to offer conference calls in rooms, with an experimental Element Call implementation in the works. A set of defaults are applied, pointing at our Jitsi and Element Call instances, to ensure conference calling works, however you can point Element at your own if you prefer.
More information about the Jitsi setup can be found here.
The VoIP and Jitsi options are:
jitsi
: Optional configuration for how to start Jitsi conferences. Currently can only contain a singlepreferred_domain
value which points at the domain of the Jitsi instance. Defaults tomeet.jit.si
. This is not used if the Jitsi widget was created by an integration manager, or if the homeserver provides Jitsi information in/.well-known/matrix/client
. For example:{ "jitsi": { "preferred_domain": "meet.jit.si" } }
jitsi_widget
: Optional configuration for the built-in Jitsi widget. Currently can only contain a singleskip_built_in_welcome_screen
value, denoting whether the "Join Conference" button should be shown. Whentrue
(defaultfalse
), Jitsi calls will skip to the call instead of having a screen with a single button on it. This is most useful if the Jitsi instance being used already has a landing page for users to test audio and video before joining the call, otherwise users will automatically join the call. For example:{ "jitsi_widget": { "skip_built_in_welcome_screen": true } }
voip
: Optional configuration for various VoIP features. Currently can only contain a singleobey_asserted_identity
value to send MSC3086-style asserted identity messages during VoIP calls in the room corresponding to the asserted identity. This must only be set in trusted environments. The option defaults tofalse
. For example:{ "voip": { "obey_asserted_identity": false } }
widget_build_url
: Optional URL to have Element make a request to when a user presses the voice/video call buttons in the app, if a call would normally be started by the action. The URL will be called with aroomId
query parameter to identify the room being called in. The URL must respond with a JSON object similar to the following:
The{ "widget_id": "$arbitrary_string", "widget": { "creatorUserId": "@user:example.org", "id": "$the_same_widget_id", "type": "m.custom", "waitForIframeLoad": true, "name": "My Widget Name Here", "avatar_url": "mxc://example.org/abc123", "url": "https://example.org/widget.html", "data": { "title": "Subtitle goes here" } }, "layout": { "container": "top", "index": 0, "width": 65, "height": 50 } }
widget
is thecontent
of a normal widget state event. Thelayout
is the layout specifier for the widget being created, as defined by theio.element.widgets.layout
state event.audio_stream_url
: Optional URL to pass to Jitsi to enable live streaming. This option is considered experimental and may be removed at any time without notice.element_call
: Optional configuration for native group calls using Element Call, with the following subkeys:url
: The URL of the Element Call instance to use for native group calls. This option is considered experimental and may be removed at any time without notice. Defaults tohttps://call.element.io
.use_exclusively
: A boolean specifying whether Element Call should be used exclusively as the only VoIP stack in the app, removing the ability to start legacy 1:1 calls or Jitsi calls. Defaults tofalse
.participant_limit
: The maximum number of users who can join a call; if this number is exceeded, the user will not be able to join a given call.brand
: Optional name for the app. Defaults toElement Call
. This is used throughout the application in various strings/locations.
Bug reporting
If you run your own rageshake server to collect bug reports, the following options may be of interest:
bug_report_endpoint_url
: URL for where to submit rageshake logs to. Rageshakes include feedback submissions and bug reports. When not present in the config, the app will disable all rageshake functionality. Set tohttps://element.io/bugreports/submit
to submit rageshakes to us, or use your own rageshake server.uisi_autorageshake_app
: If a user has enabled the "automatically send debug logs on decryption errors" flag, this option will be sent alongside the rageshake so the rageshake server can filter them by app name. By default, this will beelement-auto-uisi
(in contrast to other rageshakes submitted by the app, which useelement-web
).
If you would like to use Sentry for rageshake data, add a sentry
object to your config with the following values:
dsn
: The Sentry DSN.environment
: Optional environment to pass to Sentry.
For example:
{
"sentry": {
"dsn": "dsn-goes-here",
"environment": "production"
}
}
Integration managers
Integration managers are embedded applications within Element to help the user configure bots, bridges, and widgets. An integration manager
is a separate piece of software not typically available with your homeserver. To disable integrations, set the options defined here to null
.
integrations_ui_url
: The UI URL for the integration manager.integrations_rest_url
: The REST interface URL for the integration manager.integrations_widgets_urls
: A list of URLs the integration manager uses to host widgets.
If you would like to use Scalar, the integration manager maintained by Element, the following options would apply:
{
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
"integrations_widgets_urls": [
"https://scalar.vector.im/_matrix/integrations/v1",
"https://scalar.vector.im/api",
"https://scalar-staging.vector.im/_matrix/integrations/v1",
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api"
]
}
Administrative options
If you would like to include a custom message when someone is reporting an event, set the following Markdown-capable field:
{
"report_event": {
"admin_message_md": "Please be sure to review our [terms of service](https://example.org/terms) before reporting a message."
}
}
To add additional "terms and conditions" links throughout the app, use the following template:
{
"terms_and_conditions_links": [{ "text": "Code of conduct", "url": "https://example.org/code-of-conduct" }]
}
Analytics
To configure Posthog, add the following under posthog
in your config:
api_host
: The hostname of the posthog server.project_api_key
: The API key from posthog.
When these configuration options are not present, analytics are deemed impossible and the user won't be asked to opt in to the system.
There are additional root-level options which can be specified:
analytics_owner
: the company name used in dialogs talking about analytics - this defaults tobrand
, and is useful when the provider of analytics is different from the provider of the Element instance.privacy_policy_url
: URL to the privacy policy including the analytics collection policy.
Server hosting links
If you would like to encourage matrix.org users to sign up for a service like Element Matrix Services, the following configuration options can be set. Note that if the options are missing from the configuration then the hosting prompts will not be shown to the user.
hosting_signup_link
: Optional URL to link the user to when talking about "Upgrading your account". Will contain a query parameter ofutm_campaign
to denote which link the user clicked on within the app. Only ever applies to matrix.org users specifically.host_signup
: Optional configuration for an account importer to your hosting platform. The API surface of this is not documented at the moment, but can be configured with the following subproperties:brand
: The brand name to use.url
: The iframe URL for the importer.domains
: The homeserver domains to show the importer to.cookie_policy_url
: The URL to the cookie policy for the importer.privacy_policy_url
: The URL to the privacy policy for the importer.terms_of_service_url
: The URL to the terms of service for the importer.
If you're looking to mirror a setup from our production/development environments, the following config should be used:
{
"hosting_signup_link": "https://element.io/matrix-services?utm_source=element-web&utm_medium=web",
"host_signup": {
"brand": "Element Home",
"domains": ["matrix.org"],
"url": "https://ems.element.io/element-home/in-app-loader",
"cookie_policy_url": "https://element.io/cookie-policy",
"privacy_policy_url": "https://element.io/privacy",
"terms_of_service_url": "https://element.io/terms-of-service"
}
}
Miscellaneous
Element supports other options which don't quite fit into other sections of this document.
To configure whether presence UI is shown for a given homeserver, set enable_presence_by_hs_url
. It is recommended to
set this value to the following at a minimum:
{
"enable_presence_by_hs_url": {
"https://matrix.org": false,
"https://matrix-client.matrix.org": false
}
}
Identity servers
The identity server is used for inviting other users to a room via third party identifiers like emails and phone numbers. It is not used to store your password or account information.
As of Element 1.4.0, all identity server functions are optional and you are prompted to agree to terms before data is sent to the identity server.
Element will check multiple sources when looking for an identity server to use in the following order of preference:
- The identity server set in the user's account data
- For a new user, no value is present in their account data. It is only set if the user visits Settings and manually changes their identity server.
- The identity server provided by the
.well-known
lookup that occurred at login - The identity server provided by the Riot config file
If none of these sources have an identity server set, then Element will prompt the user to set an identity server first when attempting to use features that require one.
Currently, the only two public identity servers are https://vector.im and https://matrix.org, however in the future identity servers will be decentralised.
Desktop app configuration
See https://github.com/vector-im/element-desktop#user-specified-configjson
UI Features
Parts of the UI can be disabled using UI features. These are settings which appear
under setting_defaults
and can only be true
(default) or false
. When false
,
parts of the UI relating to that feature will be disabled regardless of the user's
preferences.
Currently, the following UI feature flags are supported:
UIFeature.urlPreviews
- Whether URL previews are enabled across the entire application.UIFeature.feedback
- Whether prompts to supply feedback are shown.UIFeature.voip
- Whether or not VoIP is shown readily to the user. When disabled, Jitsi widgets will still work though they cannot easily be added.UIFeature.widgets
- Whether or not widgets will be shown.UIFeature.advancedSettings
- Whether or not sections titled "advanced" in room and user settings are shown to the user.UIFeature.shareQrCode
- Whether or not the QR code on the share room/event dialog is shown.UIFeature.shareSocial
- Whether or not the social icons on the share room/event dialog are shown.UIFeature.identityServer
- Whether or not functionality requiring an identity server is shown. When disabled, the user will not be able to interact with the identity server (sharing email addresses, 3PID invites, etc).UIFeature.thirdPartyId
- Whether or not UI relating to third party identifiers (3PIDs) is shown. Typically this is considered "contact information" on the homeserver, and is not directly related to the identity server.UIFeature.registration
- Whether or not the registration page is accessible. Typically useful if accounts are managed externally.UIFeature.passwordReset
- Whether or not the password reset page is accessible. Typically useful if accounts are managed externally.UIFeature.deactivate
- Whether or not the deactivate account button is accessible. Typically useful if accounts are managed externally.UIFeature.advancedEncryption
- Whether or not advanced encryption options are shown to the user.UIFeature.roomHistorySettings
- Whether or not the room history settings are shown to the user. This should only be used if the room history visibility options are managed by the server.UIFeature.TimelineEnableRelativeDates
- Display relative date separators (eg: 'Today', 'Yesterday') in the timeline for recent messages. When false day dates will be used.UIFeature.BulkUnverifiedSessionsReminder
- Display popup reminders to verify or remove unverified sessions. Defaults to true.
Undocumented / developer options
The following are undocumented or intended for developer use only.
fallback_hs_url
sync_timeline_limit
dangerously_allow_unsafe_and_insecure_passwords
latex_maths_delims
: An optional setting to override the default delimiters used for maths parsing. See https://github.com/matrix-org/matrix-react-sdk/pull/5939 for details. Only used whenfeature_latex_maths
is enabled.voice_broadcast.chunk_length
: Target chunk length in seconds for the Voice Broadcast feature currently under development.