2017-11-03 23:19:45 -06:00
|
|
|
/*
|
|
|
|
|
Copyright 2017 Travis Ralston
|
2024-04-12 14:18:09 +01:00
|
|
|
Copyright 2018 - 2024 The Matrix.org Foundation C.I.C.
|
2017-11-03 23:19:45 -06:00
|
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
|
limitations under the License.
|
|
|
|
|
*/
|
|
|
|
|
|
2023-08-09 08:18:41 +01:00
|
|
|
import { MatrixClient } from "matrix-js-sdk/src/matrix";
|
2022-02-08 14:02:36 +00:00
|
|
|
import React, { ReactNode } from "react";
|
2020-03-25 18:38:12 +00:00
|
|
|
|
2023-08-22 16:32:05 +01:00
|
|
|
import { _t, _td, TranslationKey } from "../languageHandler";
|
2017-11-04 22:28:35 -07:00
|
|
|
import {
|
|
|
|
|
NotificationBodyEnabledController,
|
|
|
|
|
NotificationsEnabledController,
|
|
|
|
|
} from "./controllers/NotificationControllers";
|
2019-02-11 18:10:00 +00:00
|
|
|
import ThemeController from "./controllers/ThemeController";
|
2020-03-25 18:38:12 +00:00
|
|
|
import PushToMatrixClientController from "./controllers/PushToMatrixClientController";
|
2019-11-15 11:31:19 +00:00
|
|
|
import ReloadOnChangeController from "./controllers/ReloadOnChangeController";
|
2020-04-14 16:18:57 +01:00
|
|
|
import FontSizeController from "./controllers/FontSizeController";
|
2020-06-15 15:33:52 +01:00
|
|
|
import SystemFontController from "./controllers/SystemFontController";
|
2020-07-28 12:02:02 -06:00
|
|
|
import { SettingLevel } from "./SettingLevel";
|
2020-07-28 15:24:32 -06:00
|
|
|
import SettingController from "./controllers/SettingController";
|
2022-05-03 22:04:37 +01:00
|
|
|
import { IS_MAC } from "../Keyboard";
|
2020-09-14 22:27:40 -06:00
|
|
|
import UIFeatureController from "./controllers/UIFeatureController";
|
|
|
|
|
import { UIFeature } from "./UIFeature";
|
2020-09-18 11:33:02 -06:00
|
|
|
import { OrderedMultiController } from "./controllers/OrderedMultiController";
|
2021-11-17 08:19:30 -07:00
|
|
|
import { Layout } from "./enums/Layout";
|
2021-02-17 17:43:31 +00:00
|
|
|
import ReducedMotionController from "./controllers/ReducedMotionController";
|
2021-02-19 13:06:45 +00:00
|
|
|
import IncompatibleController from "./controllers/IncompatibleController";
|
2021-11-17 08:19:30 -07:00
|
|
|
import { ImageSize } from "./enums/ImageSize";
|
2021-11-11 13:07:41 +00:00
|
|
|
import { MetaSpace } from "../stores/spaces";
|
2022-02-08 14:02:36 +00:00
|
|
|
import SdkConfig from "../SdkConfig";
|
2022-09-07 16:42:39 +01:00
|
|
|
import SlidingSyncController from "./controllers/SlidingSyncController";
|
2022-05-26 09:56:53 +01:00
|
|
|
import { FontWatcher } from "./watchers/FontWatcher";
|
2022-12-16 17:10:26 +00:00
|
|
|
import RustCryptoSdkController from "./controllers/RustCryptoSdkController";
|
2023-03-03 13:31:51 +00:00
|
|
|
import ServerSupportUnstableFeatureController from "./controllers/ServerSupportUnstableFeatureController";
|
|
|
|
|
import { WatchManager } from "./WatchManager";
|
2023-06-28 16:39:19 +02:00
|
|
|
import { CustomTheme } from "../theme";
|
2024-01-18 11:18:55 +00:00
|
|
|
import SettingsStore from "./SettingsStore";
|
2024-04-22 17:15:29 +01:00
|
|
|
import AnalyticsController from "./controllers/AnalyticsController";
|
2023-03-03 13:31:51 +00:00
|
|
|
|
|
|
|
|
export const defaultWatchManager = new WatchManager();
|
2017-11-03 23:19:45 -06:00
|
|
|
|
|
|
|
|
// These are just a bunch of helper arrays to avoid copy/pasting a bunch of times
|
2020-07-28 12:02:02 -06:00
|
|
|
const LEVELS_ROOM_SETTINGS = [
|
|
|
|
|
SettingLevel.DEVICE,
|
|
|
|
|
SettingLevel.ROOM_DEVICE,
|
|
|
|
|
SettingLevel.ROOM_ACCOUNT,
|
|
|
|
|
SettingLevel.ACCOUNT,
|
|
|
|
|
SettingLevel.CONFIG,
|
|
|
|
|
];
|
|
|
|
|
const LEVELS_ROOM_OR_ACCOUNT = [SettingLevel.ROOM_ACCOUNT, SettingLevel.ACCOUNT];
|
|
|
|
|
const LEVELS_ROOM_SETTINGS_WITH_ROOM = [
|
|
|
|
|
SettingLevel.DEVICE,
|
|
|
|
|
SettingLevel.ROOM_DEVICE,
|
|
|
|
|
SettingLevel.ROOM_ACCOUNT,
|
|
|
|
|
SettingLevel.ACCOUNT,
|
|
|
|
|
SettingLevel.CONFIG,
|
|
|
|
|
SettingLevel.ROOM,
|
|
|
|
|
];
|
|
|
|
|
const LEVELS_ACCOUNT_SETTINGS = [SettingLevel.DEVICE, SettingLevel.ACCOUNT, SettingLevel.CONFIG];
|
|
|
|
|
const LEVELS_DEVICE_ONLY_SETTINGS = [SettingLevel.DEVICE];
|
|
|
|
|
const LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG = [SettingLevel.DEVICE, SettingLevel.CONFIG];
|
2024-06-14 12:00:30 +01:00
|
|
|
const LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED = [SettingLevel.CONFIG, SettingLevel.DEVICE];
|
2020-09-14 22:27:40 -06:00
|
|
|
const LEVELS_UI_FEATURE = [
|
|
|
|
|
SettingLevel.CONFIG,
|
|
|
|
|
// in future we might have a .well-known level or something
|
|
|
|
|
];
|
2017-11-03 23:19:45 -06:00
|
|
|
|
2021-11-25 16:21:10 +00:00
|
|
|
export enum LabGroup {
|
|
|
|
|
Messaging,
|
|
|
|
|
Profile,
|
|
|
|
|
Spaces,
|
|
|
|
|
Widgets,
|
|
|
|
|
Rooms,
|
2024-01-29 18:52:48 +01:00
|
|
|
Threads,
|
2022-09-25 10:57:25 -04:00
|
|
|
VoiceAndVideo,
|
2021-11-25 16:21:10 +00:00
|
|
|
Moderation,
|
|
|
|
|
Analytics,
|
|
|
|
|
Themes,
|
|
|
|
|
Encryption,
|
|
|
|
|
Experimental,
|
|
|
|
|
Developer,
|
2024-04-08 10:43:59 +02:00
|
|
|
Ui,
|
2021-11-25 16:21:10 +00:00
|
|
|
}
|
|
|
|
|
|
2022-09-16 11:10:33 +02:00
|
|
|
export enum Features {
|
|
|
|
|
VoiceBroadcast = "feature_voice_broadcast",
|
2022-12-23 14:45:26 +01:00
|
|
|
VoiceBroadcastForceSmallChunks = "feature_voice_broadcast_force_small_chunks",
|
2023-06-29 17:46:31 +02:00
|
|
|
NotificationSettings2 = "feature_notification_settings2",
|
2023-06-08 09:32:09 +12:00
|
|
|
OidcNativeFlow = "feature_oidc_native_flow",
|
2024-01-31 16:52:23 +01:00
|
|
|
// If true, every new login will use the new rust crypto implementation
|
2024-01-18 11:18:55 +00:00
|
|
|
RustCrypto = "feature_rust_crypto",
|
2024-04-08 10:43:59 +02:00
|
|
|
ReleaseAnnouncement = "feature_release_announcement",
|
2022-09-16 11:10:33 +02:00
|
|
|
}
|
|
|
|
|
|
2023-08-22 16:32:05 +01:00
|
|
|
export const labGroupNames: Record<LabGroup, TranslationKey> = {
|
2023-09-08 09:58:31 +01:00
|
|
|
[LabGroup.Messaging]: _td("labs|group_messaging"),
|
|
|
|
|
[LabGroup.Profile]: _td("labs|group_profile"),
|
|
|
|
|
[LabGroup.Spaces]: _td("labs|group_spaces"),
|
|
|
|
|
[LabGroup.Widgets]: _td("labs|group_widgets"),
|
|
|
|
|
[LabGroup.Rooms]: _td("labs|group_rooms"),
|
2024-01-29 18:52:48 +01:00
|
|
|
[LabGroup.Threads]: _td("labs|group_threads"),
|
2023-09-08 09:58:31 +01:00
|
|
|
[LabGroup.VoiceAndVideo]: _td("labs|group_voip"),
|
|
|
|
|
[LabGroup.Moderation]: _td("labs|group_moderation"),
|
2023-08-22 18:47:33 +01:00
|
|
|
[LabGroup.Analytics]: _td("common|analytics"),
|
2023-09-08 09:58:31 +01:00
|
|
|
[LabGroup.Themes]: _td("labs|group_themes"),
|
|
|
|
|
[LabGroup.Encryption]: _td("labs|group_encryption"),
|
|
|
|
|
[LabGroup.Experimental]: _td("labs|group_experimental"),
|
|
|
|
|
[LabGroup.Developer]: _td("labs|group_developer"),
|
2024-04-08 10:43:59 +02:00
|
|
|
[LabGroup.Ui]: _td("labs|group_ui"),
|
2021-11-25 16:21:10 +00:00
|
|
|
};
|
|
|
|
|
|
2023-06-28 16:39:19 +02:00
|
|
|
export type SettingValueType =
|
|
|
|
|
| boolean
|
|
|
|
|
| number
|
|
|
|
|
| string
|
|
|
|
|
| number[]
|
|
|
|
|
| string[]
|
|
|
|
|
| Record<string, unknown>
|
|
|
|
|
| Record<string, unknown>[]
|
|
|
|
|
| null;
|
2022-02-22 11:04:27 +01:00
|
|
|
|
|
|
|
|
export interface IBaseSetting<T extends SettingValueType = SettingValueType> {
|
2021-11-25 16:21:10 +00:00
|
|
|
isFeature?: false | undefined;
|
2020-07-28 12:02:02 -06:00
|
|
|
|
|
|
|
|
// Display names are strongly recommended for clarity.
|
|
|
|
|
// Display name can also be an object for different levels.
|
|
|
|
|
displayName?:
|
2023-08-22 16:32:05 +01:00
|
|
|
| TranslationKey
|
2023-02-13 11:39:16 +00:00
|
|
|
| Partial<{
|
2023-08-22 16:32:05 +01:00
|
|
|
[level in SettingLevel]: TranslationKey;
|
2023-02-13 11:39:16 +00:00
|
|
|
}>;
|
2020-07-28 12:02:02 -06:00
|
|
|
|
2021-06-17 16:22:40 +01:00
|
|
|
// Optional description which will be shown as microCopy under SettingsFlags
|
2023-08-22 16:32:05 +01:00
|
|
|
description?: TranslationKey | (() => ReactNode);
|
2021-06-17 16:22:40 +01:00
|
|
|
|
2020-07-28 12:02:02 -06:00
|
|
|
// The supported levels are required. Preferably, use the preset arrays
|
|
|
|
|
// at the top of this file to define this rather than a custom array.
|
2023-02-28 10:24:59 +00:00
|
|
|
supportedLevels: SettingLevel[];
|
2020-07-28 12:02:02 -06:00
|
|
|
|
|
|
|
|
// Required. Can be any data type. The value specified here should match
|
|
|
|
|
// the data being stored (ie: if a boolean is used, the setting should
|
|
|
|
|
// represent a boolean).
|
2022-02-22 11:04:27 +01:00
|
|
|
default: T;
|
2020-07-28 12:02:02 -06:00
|
|
|
|
|
|
|
|
// Optional settings controller. See SettingsController for more information.
|
2020-07-28 15:24:32 -06:00
|
|
|
controller?: SettingController;
|
2020-07-28 12:02:02 -06:00
|
|
|
|
|
|
|
|
// Optional flag to make supportedLevels be respected as the order to handle
|
|
|
|
|
// settings. The first element is treated as "most preferred". The "default"
|
|
|
|
|
// level is always appended to the end.
|
|
|
|
|
supportedLevelsAreOrdered?: boolean;
|
|
|
|
|
|
|
|
|
|
// Optional value to invert a boolean setting's value. The string given will
|
|
|
|
|
// be read as the setting's ID instead of the one provided as the key for the
|
|
|
|
|
// setting definition. By setting this, the returned value will automatically
|
|
|
|
|
// be inverted, except for when the default value is returned. Inversion will
|
|
|
|
|
// occur after the controller is asked for an override. This should be used by
|
|
|
|
|
// historical settings which we don't want existing user's values be wiped. Do
|
|
|
|
|
// not use this for new settings.
|
|
|
|
|
invertedSettingName?: string;
|
2021-04-27 16:29:42 +01:00
|
|
|
|
2021-07-23 15:47:11 +01:00
|
|
|
// XXX: Keep this around for re-use in future Betas
|
2021-04-27 16:29:42 +01:00
|
|
|
betaInfo?: {
|
2023-08-22 16:32:05 +01:00
|
|
|
title: TranslationKey;
|
2022-02-08 14:02:36 +00:00
|
|
|
caption: () => ReactNode;
|
2022-06-09 13:07:59 -04:00
|
|
|
faq?: (enabled: boolean) => ReactNode;
|
2022-04-05 17:15:31 +01:00
|
|
|
image?: string; // require(...)
|
2023-08-22 16:32:05 +01:00
|
|
|
feedbackSubheading?: TranslationKey;
|
2021-05-11 15:58:19 +01:00
|
|
|
feedbackLabel?: string;
|
2021-06-16 09:01:13 +01:00
|
|
|
extraSettings?: string[];
|
2022-02-08 14:02:36 +00:00
|
|
|
requiresRefresh?: boolean;
|
2021-04-27 16:29:42 +01:00
|
|
|
};
|
2022-11-30 22:20:26 +01:00
|
|
|
|
|
|
|
|
// Whether the setting should have a warning sign in the microcopy
|
|
|
|
|
shouldWarn?: boolean;
|
2020-07-28 12:02:02 -06:00
|
|
|
}
|
|
|
|
|
|
2022-02-22 11:04:27 +01:00
|
|
|
export interface IFeature extends Omit<IBaseSetting<boolean>, "isFeature"> {
|
2021-11-25 16:21:10 +00:00
|
|
|
// Must be set to true for features.
|
|
|
|
|
isFeature: true;
|
|
|
|
|
labsGroup: LabGroup;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Type using I-identifier for backwards compatibility from before it became a discriminated union
|
|
|
|
|
export type ISetting = IBaseSetting | IFeature;
|
|
|
|
|
|
2020-07-28 12:02:02 -06:00
|
|
|
export const SETTINGS: { [setting: string]: ISetting } = {
|
2022-06-09 13:07:59 -04:00
|
|
|
"feature_video_rooms": {
|
|
|
|
|
isFeature: true,
|
2022-09-25 10:57:25 -04:00
|
|
|
labsGroup: LabGroup.VoiceAndVideo,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|video_rooms"),
|
2024-01-11 09:49:00 +00:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
2022-06-09 13:07:59 -04:00
|
|
|
default: false,
|
|
|
|
|
// Reload to ensure that the left panel etc. get remounted
|
|
|
|
|
controller: new ReloadOnChangeController(),
|
|
|
|
|
betaInfo: {
|
2023-08-24 11:16:06 +01:00
|
|
|
title: _td("labs|video_rooms"),
|
2022-06-09 13:07:59 -04:00
|
|
|
caption: () => (
|
|
|
|
|
<>
|
|
|
|
|
<p>
|
2023-08-24 11:16:06 +01:00
|
|
|
{_t("labs|video_rooms_a_new_way_to_chat", {
|
2022-06-09 13:07:59 -04:00
|
|
|
brand: SdkConfig.get().brand,
|
|
|
|
|
})}
|
|
|
|
|
</p>
|
|
|
|
|
<p>
|
2023-08-24 11:16:06 +01:00
|
|
|
{_t("labs|video_rooms_always_on_voip_channels", {
|
2022-06-09 13:07:59 -04:00
|
|
|
brand: SdkConfig.get().brand,
|
|
|
|
|
})}
|
|
|
|
|
</p>
|
|
|
|
|
</>
|
|
|
|
|
),
|
|
|
|
|
faq: () =>
|
|
|
|
|
SdkConfig.get().bug_report_endpoint_url && (
|
|
|
|
|
<>
|
2023-08-24 11:16:06 +01:00
|
|
|
<h4>{_t("labs|video_rooms_faq1_question")}</h4>
|
|
|
|
|
<p>{_t("labs|video_rooms_faq1_answer")}</p>
|
|
|
|
|
<h4>{_t("labs|video_rooms_faq2_question")}</h4>
|
|
|
|
|
<p>{_t("labs|video_rooms_faq2_answer")}</p>
|
2022-06-09 13:07:59 -04:00
|
|
|
</>
|
|
|
|
|
),
|
|
|
|
|
feedbackLabel: "video-room-feedback",
|
2023-09-19 17:16:38 +01:00
|
|
|
feedbackSubheading: _td("labs|video_rooms_feedbackSubheading"),
|
2022-06-09 13:07:59 -04:00
|
|
|
image: require("../../res/img/betas/video_rooms.png"),
|
|
|
|
|
requiresRefresh: true,
|
|
|
|
|
},
|
|
|
|
|
},
|
2023-06-29 17:46:31 +02:00
|
|
|
[Features.NotificationSettings2]: {
|
|
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.Experimental,
|
2024-01-11 09:49:00 +00:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|notification_settings"),
|
2023-06-29 17:46:31 +02:00
|
|
|
default: false,
|
|
|
|
|
betaInfo: {
|
2023-09-19 07:17:31 +01:00
|
|
|
title: _td("labs|notification_settings_beta_title"),
|
2023-06-29 17:46:31 +02:00
|
|
|
caption: () => (
|
|
|
|
|
<>
|
|
|
|
|
<p>
|
2023-09-19 17:16:38 +01:00
|
|
|
{_t("labs|notification_settings_beta_caption", {
|
|
|
|
|
brand: SdkConfig.get().brand,
|
|
|
|
|
})}
|
2023-06-29 17:46:31 +02:00
|
|
|
</p>
|
|
|
|
|
</>
|
|
|
|
|
),
|
|
|
|
|
},
|
|
|
|
|
},
|
2022-01-17 16:04:37 +01:00
|
|
|
"feature_msc3531_hide_messages_pending_moderation": {
|
|
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.Moderation,
|
2022-04-14 19:23:22 -04:00
|
|
|
// Requires a reload since this setting is cached in EventUtils
|
|
|
|
|
controller: new ReloadOnChangeController(),
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|msc3531_hide_messages_pending_moderation"),
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2022-01-17 16:04:37 +01:00
|
|
|
default: false,
|
|
|
|
|
},
|
2021-06-18 18:09:02 +02:00
|
|
|
"feature_report_to_moderators": {
|
|
|
|
|
isFeature: true,
|
2021-11-25 16:21:10 +00:00
|
|
|
labsGroup: LabGroup.Moderation,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|report_to_moderators"),
|
2023-09-19 17:16:38 +01:00
|
|
|
description: _td("labs|report_to_moderators_description"),
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2021-06-18 18:09:02 +02:00
|
|
|
default: false,
|
|
|
|
|
},
|
2020-10-10 16:32:49 +01:00
|
|
|
"feature_latex_maths": {
|
|
|
|
|
isFeature: true,
|
2021-11-25 16:21:10 +00:00
|
|
|
labsGroup: LabGroup.Messaging,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|latex_maths"),
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2020-10-10 16:32:49 +01:00
|
|
|
default: false,
|
|
|
|
|
},
|
2017-11-03 23:19:45 -06:00
|
|
|
"feature_pinning": {
|
|
|
|
|
isFeature: true,
|
2021-11-25 16:21:10 +00:00
|
|
|
labsGroup: LabGroup.Messaging,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|pinning"),
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2017-11-04 15:44:01 -06:00
|
|
|
default: false,
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
2022-10-05 12:01:41 +02:00
|
|
|
"feature_wysiwyg_composer": {
|
|
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.Messaging,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|wysiwyg_composer"),
|
|
|
|
|
description: _td("labs|feature_wysiwyg_composer_description"),
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2022-10-05 12:01:41 +02:00
|
|
|
default: false,
|
|
|
|
|
},
|
2019-10-31 13:19:54 -06:00
|
|
|
"feature_mjolnir": {
|
|
|
|
|
isFeature: true,
|
2021-11-25 16:21:10 +00:00
|
|
|
labsGroup: LabGroup.Moderation,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|mjolnir"),
|
|
|
|
|
description: _td("labs|currently_experimental"),
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2020-01-02 17:40:18 -07:00
|
|
|
default: false,
|
|
|
|
|
},
|
2020-02-28 11:42:16 -07:00
|
|
|
"feature_custom_themes": {
|
|
|
|
|
isFeature: true,
|
2021-11-25 16:21:10 +00:00
|
|
|
labsGroup: LabGroup.Themes,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|custom_themes"),
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2020-02-28 11:42:16 -07:00
|
|
|
default: false,
|
|
|
|
|
},
|
2020-10-01 21:41:03 -04:00
|
|
|
"feature_dehydration": {
|
|
|
|
|
isFeature: true,
|
2021-11-25 16:21:10 +00:00
|
|
|
labsGroup: LabGroup.Encryption,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|dehydration"),
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2020-10-01 21:41:03 -04:00
|
|
|
default: false,
|
|
|
|
|
},
|
2022-07-04 21:37:48 +02:00
|
|
|
"useOnlyCurrentProfiles": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|disable_historical_profile"),
|
2022-02-18 07:58:04 -07:00
|
|
|
default: false,
|
|
|
|
|
},
|
2019-10-31 13:19:54 -06:00
|
|
|
"mjolnirRooms": {
|
2020-07-28 12:02:02 -06:00
|
|
|
supportedLevels: [SettingLevel.ACCOUNT],
|
2019-10-31 13:19:54 -06:00
|
|
|
default: [],
|
|
|
|
|
},
|
|
|
|
|
"mjolnirPersonalRoom": {
|
2020-07-28 12:02:02 -06:00
|
|
|
supportedLevels: [SettingLevel.ACCOUNT],
|
2019-10-31 13:19:54 -06:00
|
|
|
default: null,
|
|
|
|
|
},
|
2022-06-07 22:20:32 +02:00
|
|
|
"feature_html_topic": {
|
|
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.Rooms,
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|html_topic"),
|
2022-06-07 22:20:32 +02:00
|
|
|
default: false,
|
|
|
|
|
},
|
2019-12-09 13:28:43 +00:00
|
|
|
"feature_bridge_state": {
|
|
|
|
|
isFeature: true,
|
2021-11-25 16:21:10 +00:00
|
|
|
labsGroup: LabGroup.Rooms,
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|bridge_state"),
|
2019-12-09 13:28:43 +00:00
|
|
|
default: false,
|
|
|
|
|
},
|
2021-12-15 06:34:47 -06:00
|
|
|
"feature_jump_to_date": {
|
2023-03-03 13:31:51 +00:00
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.Messaging,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|jump_to_date"),
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2021-12-15 06:34:47 -06:00
|
|
|
default: false,
|
2023-03-15 08:37:41 +00:00
|
|
|
controller: new ServerSupportUnstableFeatureController(
|
|
|
|
|
"feature_jump_to_date",
|
|
|
|
|
defaultWatchManager,
|
2023-03-17 15:08:17 -05:00
|
|
|
[["org.matrix.msc3030"], ["org.matrix.msc3030.stable"]],
|
2023-03-17 12:31:36 -05:00
|
|
|
"v1.6",
|
2023-08-24 11:16:06 +01:00
|
|
|
_td("labs|jump_to_date_msc_support"),
|
2023-03-15 08:37:41 +00:00
|
|
|
),
|
2021-12-15 06:34:47 -06:00
|
|
|
},
|
2020-07-21 15:02:59 -06:00
|
|
|
"RoomList.backgroundImage": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
|
|
|
|
default: null,
|
|
|
|
|
},
|
2022-08-05 17:33:57 +02:00
|
|
|
"sendReadReceipts": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|send_read_receipts"),
|
2022-08-05 17:33:57 +02:00
|
|
|
default: true,
|
2023-03-15 08:37:41 +00:00
|
|
|
controller: new ServerSupportUnstableFeatureController(
|
|
|
|
|
"sendReadReceipts",
|
|
|
|
|
defaultWatchManager,
|
2023-03-17 15:08:17 -05:00
|
|
|
[["org.matrix.msc2285.stable"]],
|
2023-03-15 08:37:41 +00:00
|
|
|
"v1.4",
|
2023-09-19 17:16:38 +01:00
|
|
|
_td("settings|send_read_receipts_unsupported"),
|
2023-03-15 08:37:41 +00:00
|
|
|
true,
|
|
|
|
|
),
|
2021-07-14 15:12:35 +02:00
|
|
|
},
|
2022-09-07 16:42:39 +01:00
|
|
|
"feature_sliding_sync": {
|
|
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.Developer,
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|sliding_sync"),
|
|
|
|
|
description: _td("labs|sliding_sync_description"),
|
2022-11-30 22:20:26 +01:00
|
|
|
shouldWarn: true,
|
2022-09-07 16:42:39 +01:00
|
|
|
default: false,
|
|
|
|
|
controller: new SlidingSyncController(),
|
|
|
|
|
},
|
|
|
|
|
"feature_sliding_sync_proxy_url": {
|
2024-04-30 19:11:11 +01:00
|
|
|
// This is not a distinct feature, it is a legacy setting for feature_sliding_sync above
|
2022-09-07 16:42:39 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
|
|
|
|
default: "",
|
|
|
|
|
},
|
2022-09-16 11:12:27 -04:00
|
|
|
"feature_element_call_video_rooms": {
|
|
|
|
|
isFeature: true,
|
2022-09-25 10:57:25 -04:00
|
|
|
labsGroup: LabGroup.VoiceAndVideo,
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|element_call_video_rooms"),
|
2022-09-16 11:12:27 -04:00
|
|
|
controller: new ReloadOnChangeController(),
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
2022-09-25 10:57:25 -04:00
|
|
|
"feature_group_calls": {
|
|
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.VoiceAndVideo,
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|group_calls"),
|
2022-09-30 15:26:08 -04:00
|
|
|
controller: new ReloadOnChangeController(),
|
2022-09-25 10:57:25 -04:00
|
|
|
default: false,
|
|
|
|
|
},
|
2023-11-10 17:46:02 +01:00
|
|
|
"feature_disable_call_per_sender_encryption": {
|
|
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.VoiceAndVideo,
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2023-11-10 17:46:02 +01:00
|
|
|
displayName: _td("labs|feature_disable_call_per_sender_encryption"),
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
2023-07-06 16:40:14 +02:00
|
|
|
"feature_allow_screen_share_only_mode": {
|
|
|
|
|
isFeature: true,
|
2024-01-11 09:49:00 +00:00
|
|
|
labsGroup: LabGroup.VoiceAndVideo,
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2023-08-24 11:16:06 +01:00
|
|
|
description: _td("labs|under_active_development"),
|
|
|
|
|
displayName: _td("labs|allow_screen_share_only_mode"),
|
2023-07-06 16:40:14 +02:00
|
|
|
controller: new ReloadOnChangeController(),
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
2022-03-07 13:49:32 +01:00
|
|
|
"feature_location_share_live": {
|
|
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.Messaging,
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|location_share_live"),
|
|
|
|
|
description: _td("labs|location_share_live_description"),
|
2022-11-30 22:20:26 +01:00
|
|
|
shouldWarn: true,
|
2022-03-07 13:49:32 +01:00
|
|
|
default: false,
|
|
|
|
|
},
|
2023-01-27 14:07:05 +00:00
|
|
|
"feature_dynamic_room_predecessors": {
|
|
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.Rooms,
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|dynamic_room_predecessors"),
|
2023-09-19 07:17:31 +01:00
|
|
|
description: _td("labs|dynamic_room_predecessors_description"),
|
2023-01-27 14:07:05 +00:00
|
|
|
shouldWarn: true,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
2022-09-16 11:10:33 +02:00
|
|
|
[Features.VoiceBroadcast]: {
|
|
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.Messaging,
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|voice_broadcast"),
|
2022-09-16 11:10:33 +02:00
|
|
|
default: false,
|
|
|
|
|
},
|
2022-12-23 14:45:26 +01:00
|
|
|
[Features.VoiceBroadcastForceSmallChunks]: {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
2023-09-19 07:17:31 +01:00
|
|
|
displayName: _td("labs|voice_broadcast_force_small_chunks"),
|
2022-12-23 14:45:26 +01:00
|
|
|
default: false,
|
2023-06-08 09:32:09 +12:00
|
|
|
},
|
|
|
|
|
[Features.OidcNativeFlow]: {
|
2023-10-19 19:00:29 +13:00
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.Developer,
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2023-09-19 07:17:31 +01:00
|
|
|
displayName: _td("labs|oidc_native_flow"),
|
2023-10-19 19:00:29 +13:00
|
|
|
description: _td("labs|oidc_native_flow_description"),
|
2023-06-08 09:32:09 +12:00
|
|
|
default: false,
|
2022-12-23 14:45:26 +01:00
|
|
|
},
|
2024-01-18 11:18:55 +00:00
|
|
|
[Features.RustCrypto]: {
|
|
|
|
|
// use the rust matrix-sdk-crypto-wasm for crypto.
|
2022-12-16 17:10:26 +00:00
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.Developer,
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|rust_crypto"),
|
2024-01-18 11:18:55 +00:00
|
|
|
description: () => {
|
|
|
|
|
if (SettingsStore.getValueAt(SettingLevel.CONFIG, Features.RustCrypto)) {
|
|
|
|
|
// It's enabled in the config, so you can't get rid of it even by logging out.
|
|
|
|
|
return _t("labs|rust_crypto_in_config_description");
|
|
|
|
|
} else {
|
|
|
|
|
return _t("labs|rust_crypto_optin_warning");
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
shouldWarn: true,
|
2024-02-02 13:20:13 +01:00
|
|
|
default: true,
|
2022-12-16 17:10:26 +00:00
|
|
|
controller: new RustCryptoSdkController(),
|
|
|
|
|
},
|
2024-01-31 16:52:23 +01:00
|
|
|
// Must be set under `setting_defaults` in config.json.
|
|
|
|
|
// If set to 100 in conjunction with `feature_rust_crypto`, all existing users will migrate to the new crypto.
|
|
|
|
|
// Default is 0, meaning no existing users on legacy crypto will migrate.
|
|
|
|
|
"RustCrypto.staged_rollout_percent": {
|
|
|
|
|
supportedLevels: [SettingLevel.CONFIG],
|
|
|
|
|
default: 0,
|
|
|
|
|
},
|
2024-02-21 12:23:07 +01:00
|
|
|
/**
|
|
|
|
|
* @deprecated in favor of {@link fontSizeDelta}
|
|
|
|
|
*/
|
2020-06-04 17:50:56 +01:00
|
|
|
"baseFontSize": {
|
2023-09-08 09:58:31 +01:00
|
|
|
displayName: _td("settings|appearance|font_size"),
|
2020-04-21 11:41:41 +01:00
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-06-29 11:30:25 +01:00
|
|
|
default: "",
|
|
|
|
|
controller: new FontSizeController(),
|
|
|
|
|
},
|
2023-09-01 04:16:24 -06:00
|
|
|
"feature_render_reaction_images": {
|
|
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.Messaging,
|
2023-09-19 07:17:31 +01:00
|
|
|
displayName: _td("labs|render_reaction_images"),
|
|
|
|
|
description: _td("labs|render_reaction_images_description"),
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2023-09-01 04:16:24 -06:00
|
|
|
default: false,
|
|
|
|
|
},
|
2023-06-29 11:30:25 +01:00
|
|
|
/**
|
|
|
|
|
* With the transition to Compound we are moving to a base font size
|
|
|
|
|
* of 16px. We're taking the opportunity to move away from the `baseFontSize`
|
|
|
|
|
* setting that had a 5px offset.
|
2024-02-21 12:23:07 +01:00
|
|
|
* @deprecated in favor {@link fontSizeDelta}
|
2023-06-29 11:30:25 +01:00
|
|
|
*/
|
|
|
|
|
"baseFontSizeV2": {
|
2023-09-08 09:58:31 +01:00
|
|
|
displayName: _td("settings|appearance|font_size"),
|
2023-06-29 11:30:25 +01:00
|
|
|
supportedLevels: [SettingLevel.DEVICE],
|
2024-02-21 12:23:07 +01:00
|
|
|
default: "",
|
|
|
|
|
controller: new FontSizeController(),
|
|
|
|
|
},
|
|
|
|
|
/**
|
|
|
|
|
* This delta is added to the browser default font size
|
|
|
|
|
* Moving from `baseFontSizeV2` to `fontSizeDelta` to replace the default 16px to --cpd-font-size-root (browser default font size) + fontSizeDelta
|
|
|
|
|
*/
|
|
|
|
|
"fontSizeDelta": {
|
|
|
|
|
displayName: _td("settings|appearance|font_size"),
|
|
|
|
|
supportedLevels: [SettingLevel.DEVICE],
|
|
|
|
|
default: FontWatcher.DEFAULT_DELTA,
|
2020-04-21 11:41:41 +01:00
|
|
|
controller: new FontSizeController(),
|
|
|
|
|
},
|
2020-04-23 12:09:08 +01:00
|
|
|
"useCustomFontSize": {
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|appearance|custom_font_size"),
|
2020-04-23 12:09:08 +01:00
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
2019-01-24 20:57:40 -07:00
|
|
|
"MessageComposerInput.suggestEmoji": {
|
2017-11-03 23:19:45 -06:00
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|emoji_autocomplete"),
|
2019-01-24 20:57:40 -07:00
|
|
|
default: true,
|
|
|
|
|
invertedSettingName: "MessageComposerInput.dontSuggestEmoji",
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
2021-01-02 15:31:49 -06:00
|
|
|
"MessageComposerInput.showStickersButton": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|show_stickers_button"),
|
2021-01-02 15:31:49 -06:00
|
|
|
default: true,
|
2021-12-02 14:09:57 +00:00
|
|
|
controller: new UIFeatureController(UIFeature.Widgets, false),
|
2021-01-02 15:31:49 -06:00
|
|
|
},
|
2022-03-04 11:04:30 -07:00
|
|
|
"MessageComposerInput.showPollsButton": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|preferences|show_polls_button"),
|
2022-03-04 11:04:30 -07:00
|
|
|
default: true,
|
|
|
|
|
},
|
2022-03-04 16:13:50 +01:00
|
|
|
"MessageComposerInput.insertTrailingColon": {
|
2022-03-04 08:23:26 +01:00
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|insert_trailing_colon_mentions"),
|
2022-03-04 08:23:26 +01:00
|
|
|
default: true,
|
|
|
|
|
},
|
2020-06-19 15:44:37 -06:00
|
|
|
// TODO: Wire up appropriately to UI (FTUE notifications)
|
|
|
|
|
"Notifications.alwaysShowBadgeCounts": {
|
2020-06-25 08:58:54 +01:00
|
|
|
supportedLevels: LEVELS_ROOM_OR_ACCOUNT,
|
2020-06-19 15:44:37 -06:00
|
|
|
default: false,
|
|
|
|
|
},
|
2024-04-12 14:18:09 +01:00
|
|
|
// Used to be a feature, name kept for backwards compat
|
2022-12-06 09:59:17 +00:00
|
|
|
"feature_hidebold": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|hidebold"),
|
2022-12-06 09:59:17 +00:00
|
|
|
default: false,
|
|
|
|
|
},
|
2024-04-12 14:18:09 +01:00
|
|
|
"Notifications.showbold": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
|
|
|
|
displayName: _td("settings|showbold"),
|
|
|
|
|
default: false,
|
|
|
|
|
invertedSettingName: "feature_hidebold",
|
2024-04-22 17:15:29 +01:00
|
|
|
controller: new AnalyticsController("WebSettingsNotificationsShowBoldToggle"),
|
2024-04-12 14:18:09 +01:00
|
|
|
},
|
|
|
|
|
"Notifications.tac_only_notifications": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
|
|
|
|
displayName: _td("settings|tac_only_notifications"),
|
|
|
|
|
default: true,
|
2024-04-22 17:15:29 +01:00
|
|
|
controller: new AnalyticsController("WebSettingsNotificationsTACOnlyNotificationsToggle"),
|
2024-04-12 14:18:09 +01:00
|
|
|
},
|
2023-07-10 10:01:03 +02:00
|
|
|
"feature_ask_to_join": {
|
|
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.Rooms,
|
2024-01-11 09:49:00 +00:00
|
|
|
default: false,
|
|
|
|
|
displayName: _td("labs|ask_to_join"),
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2023-07-10 10:01:03 +02:00
|
|
|
},
|
2023-08-01 08:32:53 +01:00
|
|
|
"feature_new_room_decoration_ui": {
|
|
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.Rooms,
|
2023-08-24 11:16:06 +01:00
|
|
|
displayName: _td("labs|new_room_decoration_ui"),
|
2023-09-01 10:45:50 +01:00
|
|
|
description: _td("labs|under_active_development"),
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2023-08-01 08:32:53 +01:00
|
|
|
default: false,
|
|
|
|
|
controller: new ReloadOnChangeController(),
|
|
|
|
|
},
|
2023-08-31 21:21:32 +01:00
|
|
|
"feature_notifications": {
|
|
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.Messaging,
|
|
|
|
|
displayName: _td("labs|notifications"),
|
2023-09-01 11:00:34 +01:00
|
|
|
description: _td("labs|unrealiable_e2e"),
|
2024-06-14 12:00:30 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG_PRIORITISED,
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2023-08-31 21:21:32 +01:00
|
|
|
default: false,
|
|
|
|
|
},
|
2017-11-03 23:19:45 -06:00
|
|
|
"useCompactLayout": {
|
2020-07-03 12:06:00 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|preferences|compact_modern"),
|
2017-11-03 23:19:45 -06:00
|
|
|
default: false,
|
2022-12-06 09:59:17 +00:00
|
|
|
controller: new IncompatibleController("layout", false, (v: Layout) => v !== Layout.Group),
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
2019-01-24 20:57:40 -07:00
|
|
|
"showRedactions": {
|
2017-11-03 23:19:45 -06:00
|
|
|
supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|show_redaction_placeholder"),
|
2019-01-24 20:57:40 -07:00
|
|
|
default: true,
|
|
|
|
|
invertedSettingName: "hideRedactions",
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
2019-01-24 20:57:40 -07:00
|
|
|
"showJoinLeaves": {
|
2017-11-03 23:19:45 -06:00
|
|
|
supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|show_join_leave"),
|
2019-01-24 20:57:40 -07:00
|
|
|
default: true,
|
|
|
|
|
invertedSettingName: "hideJoinLeaves",
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
2019-01-24 20:57:40 -07:00
|
|
|
"showAvatarChanges": {
|
2017-11-03 23:19:45 -06:00
|
|
|
supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|show_avatar_changes"),
|
2019-01-24 20:57:40 -07:00
|
|
|
default: true,
|
|
|
|
|
invertedSettingName: "hideAvatarChanges",
|
2017-11-13 12:58:10 -07:00
|
|
|
},
|
2019-01-24 20:57:40 -07:00
|
|
|
"showDisplaynameChanges": {
|
2017-11-13 12:58:10 -07:00
|
|
|
supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|show_displayname_changes"),
|
2019-01-24 20:57:40 -07:00
|
|
|
default: true,
|
|
|
|
|
invertedSettingName: "hideDisplaynameChanges",
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
2019-01-24 20:57:40 -07:00
|
|
|
"showReadReceipts": {
|
2017-11-03 23:19:45 -06:00
|
|
|
supportedLevels: LEVELS_ROOM_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|show_read_receipts"),
|
2019-01-24 20:57:40 -07:00
|
|
|
default: true,
|
|
|
|
|
invertedSettingName: "hideReadReceipts",
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
|
|
|
|
"showTwelveHourTimestamps": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|use_12_hour_format"),
|
2017-11-03 23:19:45 -06:00
|
|
|
default: false,
|
|
|
|
|
},
|
|
|
|
|
"alwaysShowTimestamps": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|always_show_message_timestamps"),
|
2017-11-03 23:19:45 -06:00
|
|
|
default: false,
|
|
|
|
|
},
|
2021-09-01 17:28:02 +02:00
|
|
|
"autoplayGifs": {
|
2017-11-03 23:19:45 -06:00
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|autoplay_gifs"),
|
2021-09-01 17:28:02 +02:00
|
|
|
default: false,
|
|
|
|
|
},
|
|
|
|
|
"autoplayVideo": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|autoplay_videos"),
|
2017-11-03 23:19:45 -06:00
|
|
|
default: false,
|
|
|
|
|
},
|
|
|
|
|
"enableSyntaxHighlightLanguageDetection": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|automatic_language_detection_syntax_highlight"),
|
2017-11-03 23:19:45 -06:00
|
|
|
default: false,
|
|
|
|
|
},
|
2021-01-18 17:44:32 +01:00
|
|
|
"expandCodeByDefault": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|code_block_expand_default"),
|
2021-01-18 17:44:32 +01:00
|
|
|
default: false,
|
|
|
|
|
},
|
2021-01-21 13:08:55 +01:00
|
|
|
"showCodeLineNumbers": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|code_block_line_numbers"),
|
2021-01-21 13:08:55 +01:00
|
|
|
default: true,
|
|
|
|
|
},
|
2021-02-26 18:34:54 +01:00
|
|
|
"scrollToBottomOnMessageSent": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|jump_to_bottom_on_send"),
|
2021-02-26 18:34:54 +01:00
|
|
|
default: true,
|
|
|
|
|
},
|
2019-01-24 20:57:40 -07:00
|
|
|
"Pill.shouldShowPillAvatar": {
|
2017-11-03 23:19:45 -06:00
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|preferences|show_avatars_pills"),
|
2019-01-24 20:57:40 -07:00
|
|
|
default: true,
|
|
|
|
|
invertedSettingName: "Pill.shouldHidePillAvatar",
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
2019-01-24 20:57:40 -07:00
|
|
|
"TextualBody.enableBigEmoji": {
|
2017-11-03 23:19:45 -06:00
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|big_emoji"),
|
2019-01-24 20:57:40 -07:00
|
|
|
default: true,
|
|
|
|
|
invertedSettingName: "TextualBody.disableBigEmoji",
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
|
|
|
|
"MessageComposerInput.isRichTextEnabled": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
|
|
|
|
"MessageComposer.showFormatting": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
2019-01-24 20:57:40 -07:00
|
|
|
"sendTypingNotifications": {
|
2017-11-03 23:19:45 -06:00
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|send_typing_notifications"),
|
2019-01-24 20:57:40 -07:00
|
|
|
default: true,
|
|
|
|
|
invertedSettingName: "dontSendTypingNotifications",
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
2020-02-08 21:21:30 +00:00
|
|
|
"showTypingNotifications": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|show_typing_notifications"),
|
2020-02-08 21:21:30 +00:00
|
|
|
default: true,
|
|
|
|
|
},
|
2021-01-17 16:44:29 +01:00
|
|
|
"ctrlFForSearch": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: IS_MAC ? _td("settings|use_command_f_search") : _td("settings|use_control_f_search"),
|
2021-01-17 16:44:29 +01:00
|
|
|
default: false,
|
|
|
|
|
},
|
2020-08-30 20:17:08 +12:00
|
|
|
"MessageComposerInput.ctrlEnterToSend": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: IS_MAC
|
|
|
|
|
? _td("settings|use_command_enter_send_message")
|
|
|
|
|
: _td("settings|use_control_enter_send_message"),
|
2020-08-30 20:17:08 +12:00
|
|
|
default: false,
|
|
|
|
|
},
|
2021-02-12 07:53:09 +01:00
|
|
|
"MessageComposerInput.surroundWith": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|preferences|surround_text"),
|
2021-02-12 07:53:09 +01:00
|
|
|
default: false,
|
|
|
|
|
},
|
2017-11-03 23:19:45 -06:00
|
|
|
"MessageComposerInput.autoReplaceEmoji": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|replace_plain_emoji"),
|
2017-11-03 23:19:45 -06:00
|
|
|
default: false,
|
|
|
|
|
},
|
2022-04-19 15:53:59 +02:00
|
|
|
"MessageComposerInput.useMarkdown": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|enable_markdown"),
|
|
|
|
|
description: () => _t("settings|enable_markdown_description", {}, { code: (sub) => <code>{sub}</code> }),
|
2022-04-19 15:53:59 +02:00
|
|
|
default: true,
|
|
|
|
|
},
|
2017-11-03 23:19:45 -06:00
|
|
|
"VideoView.flipVideoHorizontally": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|voip|mirror_local_feed"),
|
2017-11-03 23:19:45 -06:00
|
|
|
default: false,
|
|
|
|
|
},
|
|
|
|
|
"theme": {
|
2019-02-12 09:13:39 +00:00
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2019-02-13 09:45:20 +00:00
|
|
|
default: "light",
|
2019-02-11 18:10:00 +00:00
|
|
|
controller: new ThemeController(),
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
2019-10-01 15:21:22 +02:00
|
|
|
"custom_themes": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-06-28 16:39:19 +02:00
|
|
|
default: [] as CustomTheme[],
|
2019-10-01 15:21:22 +02:00
|
|
|
},
|
2019-11-20 13:41:06 +00:00
|
|
|
"use_system_theme": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
|
|
|
|
default: true,
|
2023-09-08 09:58:31 +01:00
|
|
|
displayName: _td("settings|appearance|match_system_theme"),
|
2019-11-20 13:41:06 +00:00
|
|
|
},
|
2023-11-23 13:04:05 +00:00
|
|
|
"useBundledEmojiFont": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
2023-11-27 09:59:09 +00:00
|
|
|
default: true,
|
2023-11-23 13:04:05 +00:00
|
|
|
displayName: _td("settings|appearance|bundled_emoji_font"),
|
|
|
|
|
controller: new SystemFontController(),
|
|
|
|
|
},
|
2020-06-15 15:33:52 +01:00
|
|
|
"useSystemFont": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
|
|
|
|
default: false,
|
2023-09-08 09:58:31 +01:00
|
|
|
displayName: _td("settings|appearance|custom_font"),
|
2023-11-23 13:04:05 +00:00
|
|
|
controller: new SystemFontController(),
|
2020-06-15 15:33:52 +01:00
|
|
|
},
|
|
|
|
|
"systemFont": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
|
|
|
|
default: "",
|
2023-09-08 09:58:31 +01:00
|
|
|
displayName: _td("settings|appearance|custom_font_name"),
|
2020-06-15 15:33:52 +01:00
|
|
|
controller: new SystemFontController(),
|
|
|
|
|
},
|
2019-02-13 11:51:32 +00:00
|
|
|
"webRtcAllowPeerToPeer": {
|
2017-11-03 23:19:45 -06:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|voip|allow_p2p"),
|
|
|
|
|
description: _td("settings|voip|allow_p2p_description"),
|
2019-01-24 20:57:40 -07:00
|
|
|
default: true,
|
|
|
|
|
invertedSettingName: "webRtcForceTURN",
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
2018-05-26 17:22:23 +01:00
|
|
|
"webrtc_audiooutput": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
2022-05-04 16:41:56 +02:00
|
|
|
default: "default",
|
2018-05-26 17:22:23 +01:00
|
|
|
},
|
2017-11-03 23:19:45 -06:00
|
|
|
"webrtc_audioinput": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
2022-05-04 16:41:56 +02:00
|
|
|
default: "default",
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
|
|
|
|
"webrtc_videoinput": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
2022-05-04 16:41:56 +02:00
|
|
|
default: "default",
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
2022-11-09 21:14:55 +01:00
|
|
|
"webrtc_audio_autoGainControl": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|voip|auto_gain_control"),
|
2022-11-09 21:14:55 +01:00
|
|
|
default: true,
|
|
|
|
|
},
|
|
|
|
|
"webrtc_audio_echoCancellation": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|voip|echo_cancellation"),
|
2022-11-09 21:14:55 +01:00
|
|
|
default: true,
|
|
|
|
|
},
|
|
|
|
|
"webrtc_audio_noiseSuppression": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|voip|noise_suppression"),
|
2022-11-09 21:14:55 +01:00
|
|
|
default: true,
|
|
|
|
|
},
|
2017-11-03 23:19:45 -06:00
|
|
|
"language": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
2017-11-05 15:37:06 -07:00
|
|
|
default: "en",
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
2019-04-04 15:06:03 -06:00
|
|
|
"breadcrumb_rooms": {
|
2020-07-16 04:15:32 +01:00
|
|
|
// not really a setting
|
2020-07-28 12:02:02 -06:00
|
|
|
supportedLevels: [SettingLevel.ACCOUNT],
|
2020-07-16 04:15:32 +01:00
|
|
|
default: [],
|
|
|
|
|
},
|
|
|
|
|
"recent_emoji": {
|
|
|
|
|
// not really a setting
|
2020-07-28 12:02:02 -06:00
|
|
|
supportedLevels: [SettingLevel.ACCOUNT],
|
2019-04-04 15:06:03 -06:00
|
|
|
default: [],
|
|
|
|
|
},
|
2021-12-10 11:50:01 +00:00
|
|
|
"SpotlightSearch.recentSearches": {
|
|
|
|
|
// not really a setting
|
|
|
|
|
supportedLevels: [SettingLevel.ACCOUNT],
|
|
|
|
|
default: [], // list of room IDs, most recent first
|
|
|
|
|
},
|
2023-02-22 23:23:52 +13:00
|
|
|
"SpotlightSearch.showNsfwPublicRooms": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|show_nsfw_content"),
|
2023-02-22 23:23:52 +13:00
|
|
|
default: false,
|
|
|
|
|
},
|
2020-03-13 00:02:50 +00:00
|
|
|
"room_directory_servers": {
|
2020-07-28 12:02:02 -06:00
|
|
|
supportedLevels: [SettingLevel.ACCOUNT],
|
2020-03-13 00:02:50 +00:00
|
|
|
default: [],
|
|
|
|
|
},
|
2019-10-29 14:26:35 -06:00
|
|
|
"integrationProvisioning": {
|
2020-07-28 12:02:02 -06:00
|
|
|
supportedLevels: [SettingLevel.ACCOUNT],
|
2019-10-29 14:20:53 -06:00
|
|
|
default: true,
|
|
|
|
|
},
|
2019-10-29 14:35:35 -06:00
|
|
|
"allowedWidgets": {
|
2021-01-14 17:30:25 +00:00
|
|
|
supportedLevels: [SettingLevel.ROOM_ACCOUNT, SettingLevel.ROOM_DEVICE],
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2019-10-29 14:35:35 -06:00
|
|
|
default: {}, // none allowed
|
|
|
|
|
},
|
2022-06-14 17:51:51 +01:00
|
|
|
// Legacy, kept around for transitionary purposes
|
2018-05-15 13:15:40 +01:00
|
|
|
"analyticsOptIn": {
|
2017-11-03 23:19:45 -06:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
2021-12-06 09:39:33 +11:00
|
|
|
"pseudonymousAnalyticsOptIn": {
|
|
|
|
|
supportedLevels: [SettingLevel.ACCOUNT],
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|security|send_analytics"),
|
2021-12-06 09:39:33 +11:00
|
|
|
default: null,
|
|
|
|
|
},
|
2022-10-04 09:53:23 +02:00
|
|
|
"deviceClientInformationOptIn": {
|
|
|
|
|
supportedLevels: [SettingLevel.ACCOUNT],
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|security|record_session_details"),
|
2022-10-04 09:53:23 +02:00
|
|
|
default: false,
|
|
|
|
|
},
|
2022-07-13 15:43:44 +02:00
|
|
|
"FTUE.useCaseSelection": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
|
|
|
|
default: null,
|
|
|
|
|
},
|
2017-11-03 23:19:45 -06:00
|
|
|
"autocompleteDelay": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
|
|
|
|
default: 200,
|
|
|
|
|
},
|
2019-09-17 17:34:30 +01:00
|
|
|
"readMarkerInViewThresholdMs": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
|
|
|
|
default: 3000,
|
|
|
|
|
},
|
|
|
|
|
"readMarkerOutOfViewThresholdMs": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
|
|
|
|
default: 30000,
|
|
|
|
|
},
|
2017-11-03 23:19:45 -06:00
|
|
|
"blacklistUnverifiedDevices": {
|
2017-11-08 17:41:32 -07:00
|
|
|
// We specifically want to have room-device > device so that users may set a device default
|
|
|
|
|
// with a per-room override.
|
2020-07-29 21:00:32 -06:00
|
|
|
supportedLevels: [SettingLevel.ROOM_DEVICE, SettingLevel.DEVICE],
|
2017-11-08 17:41:32 -07:00
|
|
|
supportedLevelsAreOrdered: true,
|
2017-11-04 19:15:55 -07:00
|
|
|
displayName: {
|
2023-09-19 17:16:38 +01:00
|
|
|
"default": _td("settings|security|strict_encryption"),
|
|
|
|
|
"room-device": _td("room_settings|security|strict_encryption"),
|
2017-11-04 19:15:55 -07:00
|
|
|
},
|
2017-11-03 23:19:45 -06:00
|
|
|
default: false,
|
2020-09-18 11:33:02 -06:00
|
|
|
controller: new UIFeatureController(UIFeature.AdvancedEncryption),
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
|
|
|
|
"urlPreviewsEnabled": {
|
|
|
|
|
supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,
|
|
|
|
|
displayName: {
|
2023-09-01 10:53:32 +01:00
|
|
|
"default": _td("settings|inline_url_previews_default"),
|
2023-09-19 07:17:31 +01:00
|
|
|
"room-account": _td("settings|inline_url_previews_room_account"),
|
|
|
|
|
"room": _td("settings|inline_url_previews_room"),
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
|
|
|
|
default: true,
|
2020-09-14 22:27:40 -06:00
|
|
|
controller: new UIFeatureController(UIFeature.URLPreviews),
|
2017-11-03 23:19:45 -06:00
|
|
|
},
|
2018-06-22 18:44:54 +01:00
|
|
|
"urlPreviewsEnabled_e2ee": {
|
2020-07-28 12:02:02 -06:00
|
|
|
supportedLevels: [SettingLevel.ROOM_DEVICE, SettingLevel.ROOM_ACCOUNT],
|
2018-06-22 18:44:54 +01:00
|
|
|
displayName: {
|
2023-09-19 07:17:31 +01:00
|
|
|
"room-account": _td("settings|inline_url_previews_room_account"),
|
2018-06-22 18:44:54 +01:00
|
|
|
},
|
|
|
|
|
default: false,
|
2020-09-14 22:27:40 -06:00
|
|
|
controller: new UIFeatureController(UIFeature.URLPreviews),
|
2018-06-22 18:44:54 +01:00
|
|
|
},
|
2017-11-04 21:47:18 -07:00
|
|
|
"notificationsEnabled": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
|
|
|
|
default: false,
|
2017-11-04 22:28:35 -07:00
|
|
|
controller: new NotificationsEnabledController(),
|
2017-11-04 21:47:18 -07:00
|
|
|
},
|
2022-09-28 18:13:09 +01:00
|
|
|
"deviceNotificationsEnabled": {
|
|
|
|
|
supportedLevels: [SettingLevel.DEVICE],
|
2022-09-30 16:11:04 +01:00
|
|
|
default: true,
|
2022-09-28 18:13:09 +01:00
|
|
|
},
|
2019-04-19 22:31:51 +01:00
|
|
|
"notificationSound": {
|
|
|
|
|
supportedLevels: LEVELS_ROOM_OR_ACCOUNT,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
2017-11-04 21:47:18 -07:00
|
|
|
"notificationBodyEnabled": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
2017-11-04 22:28:35 -07:00
|
|
|
default: true,
|
|
|
|
|
controller: new NotificationBodyEnabledController(),
|
2017-11-04 21:47:18 -07:00
|
|
|
},
|
|
|
|
|
"audioNotificationsEnabled": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
2017-11-04 22:28:35 -07:00
|
|
|
default: true,
|
2017-11-04 21:47:18 -07:00
|
|
|
},
|
2018-05-12 14:29:37 -06:00
|
|
|
"enableWidgetScreenshots": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("devtools|widget_screenshots"),
|
2018-05-12 14:29:37 -06:00
|
|
|
default: false,
|
|
|
|
|
},
|
2019-01-16 15:07:30 +00:00
|
|
|
"promptBeforeInviteUnknownUsers": {
|
2019-01-10 21:43:21 -07:00
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|prompt_invite"),
|
2019-01-16 15:07:30 +00:00
|
|
|
default: true,
|
2019-01-10 21:43:21 -07:00
|
|
|
},
|
2019-03-15 21:33:31 -06:00
|
|
|
"widgetOpenIDPermissions": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
|
|
|
|
default: {
|
2019-03-25 21:14:21 -06:00
|
|
|
allow: [],
|
|
|
|
|
deny: [],
|
2019-03-15 21:33:31 -06:00
|
|
|
},
|
|
|
|
|
},
|
2019-06-03 00:15:33 -06:00
|
|
|
"breadcrumbs": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|show_breadcrumbs"),
|
2019-06-03 00:15:33 -06:00
|
|
|
default: true,
|
|
|
|
|
},
|
2022-08-12 12:55:31 +02:00
|
|
|
"FTUE.userOnboardingButton": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|preferences|show_checklist_shortcuts"),
|
2022-08-12 12:55:31 +02:00
|
|
|
default: true,
|
|
|
|
|
},
|
2019-05-17 17:43:08 +01:00
|
|
|
"showHiddenEventsInTimeline": {
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("devtools|show_hidden_events"),
|
2019-05-17 17:43:08 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
2019-02-08 16:44:03 +00:00
|
|
|
"lowBandwidth": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("devtools|low_bandwidth_mode"),
|
|
|
|
|
description: _td("devtools|low_bandwidth_mode_description"),
|
2019-02-08 16:44:03 +00:00
|
|
|
default: false,
|
2019-11-15 11:31:19 +00:00
|
|
|
controller: new ReloadOnChangeController(),
|
2022-11-30 22:20:26 +01:00
|
|
|
shouldWarn: true,
|
2019-02-08 16:44:03 +00:00
|
|
|
},
|
2019-08-14 14:02:25 +01:00
|
|
|
"fallbackICEServerAllowed": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
2023-09-19 17:16:38 +01:00
|
|
|
description: _td("settings|voip|enable_fallback_ice_server_description"),
|
2019-08-14 14:02:25 +01:00
|
|
|
// This is a tri-state value, where `null` means "prompt the user".
|
|
|
|
|
default: null,
|
|
|
|
|
},
|
2019-09-27 21:08:31 -06:00
|
|
|
"showImages": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|image_thumbnails"),
|
2019-09-27 21:08:31 -06:00
|
|
|
default: true,
|
|
|
|
|
},
|
2022-01-05 16:14:44 +01:00
|
|
|
"RightPanel.phasesGlobal": {
|
|
|
|
|
supportedLevels: [SettingLevel.DEVICE],
|
|
|
|
|
default: null,
|
2019-12-05 15:31:01 -07:00
|
|
|
},
|
2022-01-05 16:14:44 +01:00
|
|
|
"RightPanel.phases": {
|
|
|
|
|
supportedLevels: [SettingLevel.ROOM_DEVICE],
|
|
|
|
|
default: null,
|
2019-12-05 15:31:01 -07:00
|
|
|
},
|
2020-01-23 12:24:54 +01:00
|
|
|
"enableEventIndexing": {
|
2019-11-26 13:31:16 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|security|enable_message_search"),
|
2019-11-26 13:31:16 +01:00
|
|
|
default: true,
|
2019-11-26 15:06:04 +01:00
|
|
|
},
|
2020-01-31 18:44:52 +01:00
|
|
|
"crawlerSleepTime": {
|
2020-01-30 14:18:12 +00:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|security|message_search_sleep_time"),
|
2020-01-31 18:44:52 +01:00
|
|
|
default: 3000,
|
2020-01-30 14:18:12 +00:00
|
|
|
},
|
2020-03-17 11:33:10 +00:00
|
|
|
"showCallButtonsInComposer": {
|
2021-02-26 13:46:39 -07:00
|
|
|
// Dev note: This is no longer "in composer" but is instead "in room header".
|
|
|
|
|
// TODO: Rename with settings v3
|
2020-03-17 11:33:10 +00:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
|
|
|
|
default: true,
|
2020-09-16 13:40:27 +01:00
|
|
|
controller: new UIFeatureController(UIFeature.Voip),
|
2020-03-17 11:33:10 +00:00
|
|
|
},
|
2020-03-25 18:38:12 +00:00
|
|
|
"e2ee.manuallyVerifyAllSessions": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|security|manually_verify_all_sessions"),
|
2020-03-25 18:38:12 +00:00
|
|
|
default: false,
|
2020-09-18 11:33:02 -06:00
|
|
|
controller: new OrderedMultiController([
|
|
|
|
|
// Apply the feature controller first to ensure that the setting doesn't
|
|
|
|
|
// show up and can't be toggled. PushToMatrixClientController doesn't
|
|
|
|
|
// do any overrides anyways.
|
|
|
|
|
new UIFeatureController(UIFeature.AdvancedEncryption),
|
|
|
|
|
new PushToMatrixClientController(MatrixClient.prototype.setCryptoTrustCrossSignedDevices, true),
|
|
|
|
|
]),
|
2020-03-25 18:38:12 +00:00
|
|
|
},
|
2020-05-13 02:16:43 +01:00
|
|
|
"ircDisplayNameWidth": {
|
|
|
|
|
// We specifically want to have room-device > device so that users may set a device default
|
|
|
|
|
// with a per-room override.
|
2020-07-28 12:02:02 -06:00
|
|
|
supportedLevels: [SettingLevel.ROOM_DEVICE, SettingLevel.DEVICE],
|
|
|
|
|
supportedLevelsAreOrdered: true,
|
2020-05-13 02:16:43 +01:00
|
|
|
default: 80,
|
|
|
|
|
},
|
2021-01-22 13:44:45 +01:00
|
|
|
"layout": {
|
2020-06-16 17:55:19 +01:00
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2021-01-22 13:44:45 +01:00
|
|
|
default: Layout.Group,
|
2020-06-16 17:55:19 +01:00
|
|
|
},
|
2021-11-17 08:19:30 -07:00
|
|
|
"Images.size": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
|
|
|
|
default: ImageSize.Normal,
|
|
|
|
|
},
|
2020-10-19 21:25:01 +02:00
|
|
|
"showChatEffects": {
|
2021-05-20 09:10:21 -06:00
|
|
|
supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|show_chat_effects"),
|
2020-10-19 21:25:01 +02:00
|
|
|
default: true,
|
2021-02-17 17:43:31 +00:00
|
|
|
controller: new ReducedMotionController(),
|
2020-10-19 13:24:22 +02:00
|
|
|
},
|
2021-09-08 11:26:54 -06:00
|
|
|
"Performance.addSendMessageTimingMetadata": {
|
|
|
|
|
supportedLevels: [SettingLevel.CONFIG],
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
2021-01-18 17:41:42 -07:00
|
|
|
"Widgets.pinned": {
|
|
|
|
|
// deprecated
|
|
|
|
|
supportedLevels: LEVELS_ROOM_OR_ACCOUNT,
|
|
|
|
|
default: {},
|
|
|
|
|
},
|
|
|
|
|
"Widgets.layout": {
|
2020-09-08 08:48:03 +01:00
|
|
|
supportedLevels: LEVELS_ROOM_OR_ACCOUNT,
|
2020-09-08 16:27:09 +01:00
|
|
|
default: {},
|
2020-09-08 08:48:03 +01:00
|
|
|
},
|
2021-07-30 12:20:02 +01:00
|
|
|
"Spaces.allRoomsInHome": {
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|all_rooms_home"),
|
|
|
|
|
description: _td("settings|all_rooms_home_description"),
|
2021-07-28 14:39:19 +01:00
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
2021-07-27 21:17:24 +01:00
|
|
|
default: false,
|
2020-09-24 09:28:49 +01:00
|
|
|
},
|
2021-11-11 13:07:41 +00:00
|
|
|
"Spaces.enabledMetaSpaces": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
|
|
|
|
default: {
|
|
|
|
|
[MetaSpace.Home]: true,
|
|
|
|
|
},
|
|
|
|
|
},
|
2021-12-17 09:26:32 +00:00
|
|
|
"Spaces.showPeopleInSpace": {
|
|
|
|
|
supportedLevels: [SettingLevel.ROOM_ACCOUNT],
|
|
|
|
|
default: true,
|
2021-08-11 14:52:40 +01:00
|
|
|
},
|
2021-10-20 06:55:22 -06:00
|
|
|
"developerMode": {
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("devtools|developer_mode"),
|
2021-10-20 06:55:22 -06:00
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
2021-10-29 09:34:25 +01:00
|
|
|
"automaticErrorReporting": {
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("labs|automatic_debug_logs"),
|
2021-10-29 09:34:25 +01:00
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
|
|
|
|
default: false,
|
|
|
|
|
controller: new ReloadOnChangeController(),
|
|
|
|
|
},
|
2022-01-13 10:55:25 -05:00
|
|
|
"automaticDecryptionErrorReporting": {
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("labs|automatic_debug_logs_decryption"),
|
2022-01-13 10:55:25 -05:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
|
|
|
|
default: false,
|
|
|
|
|
controller: new ReloadOnChangeController(),
|
|
|
|
|
},
|
2022-02-11 14:00:37 +01:00
|
|
|
"automaticKeyBackNotEnabledReporting": {
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("labs|automatic_debug_logs_key_backup"),
|
2022-02-11 14:00:37 +01:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
2022-05-06 11:13:23 -05:00
|
|
|
"debug_scroll_panel": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
|
|
|
|
"debug_timeline_panel": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
2022-05-20 19:14:17 +02:00
|
|
|
"debug_registration": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
2022-07-29 13:43:29 +02:00
|
|
|
"debug_animation": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
2022-11-30 22:08:09 -06:00
|
|
|
"debug_legacy_call_handler": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
2022-05-16 16:54:08 -04:00
|
|
|
"audioInputMuted": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
|
|
|
|
"videoInputMuted": {
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
2022-08-30 15:13:39 -04:00
|
|
|
"activeCallRoomIds": {
|
2022-05-16 16:54:08 -04:00
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
2022-08-30 15:13:39 -04:00
|
|
|
default: [],
|
2022-05-16 16:54:08 -04:00
|
|
|
},
|
2024-04-08 10:43:59 +02:00
|
|
|
/**
|
|
|
|
|
* Enable or disable the release announcement feature
|
|
|
|
|
*/
|
|
|
|
|
[Features.ReleaseAnnouncement]: {
|
|
|
|
|
isFeature: true,
|
|
|
|
|
labsGroup: LabGroup.Ui,
|
|
|
|
|
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
|
|
|
|
default: true,
|
|
|
|
|
displayName: _td("labs|release_announcement"),
|
|
|
|
|
},
|
|
|
|
|
/**
|
|
|
|
|
* Managed by the {@link ReleaseAnnouncementStore}
|
|
|
|
|
* Store the release announcement data
|
|
|
|
|
*/
|
|
|
|
|
"releaseAnnouncementData": {
|
|
|
|
|
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
|
|
|
|
|
default: {},
|
|
|
|
|
},
|
2020-10-27 19:20:25 -06:00
|
|
|
[UIFeature.RoomHistorySettings]: {
|
|
|
|
|
supportedLevels: LEVELS_UI_FEATURE,
|
|
|
|
|
default: true,
|
|
|
|
|
},
|
2020-09-18 11:33:02 -06:00
|
|
|
[UIFeature.AdvancedEncryption]: {
|
|
|
|
|
supportedLevels: LEVELS_UI_FEATURE,
|
|
|
|
|
default: true,
|
|
|
|
|
},
|
2020-09-14 22:27:40 -06:00
|
|
|
[UIFeature.URLPreviews]: {
|
|
|
|
|
supportedLevels: LEVELS_UI_FEATURE,
|
|
|
|
|
default: true,
|
|
|
|
|
},
|
2020-09-16 11:38:50 +01:00
|
|
|
[UIFeature.Widgets]: {
|
|
|
|
|
supportedLevels: LEVELS_UI_FEATURE,
|
|
|
|
|
default: true,
|
|
|
|
|
},
|
2023-04-28 08:46:33 +01:00
|
|
|
[UIFeature.LocationSharing]: {
|
|
|
|
|
supportedLevels: LEVELS_UI_FEATURE,
|
|
|
|
|
default: true,
|
|
|
|
|
},
|
2020-09-16 13:40:27 +01:00
|
|
|
[UIFeature.Voip]: {
|
|
|
|
|
supportedLevels: LEVELS_UI_FEATURE,
|
|
|
|
|
default: true,
|
|
|
|
|
},
|
2020-09-16 10:59:14 +01:00
|
|
|
[UIFeature.Feedback]: {
|
|
|
|
|
supportedLevels: LEVELS_UI_FEATURE,
|
|
|
|
|
default: true,
|
|
|
|
|
},
|
2020-09-17 11:55:10 +01:00
|
|
|
[UIFeature.Registration]: {
|
|
|
|
|
supportedLevels: LEVELS_UI_FEATURE,
|
|
|
|
|
default: true,
|
|
|
|
|
},
|
|
|
|
|
[UIFeature.PasswordReset]: {
|
|
|
|
|
supportedLevels: LEVELS_UI_FEATURE,
|
|
|
|
|
default: true,
|
|
|
|
|
},
|
|
|
|
|
[UIFeature.Deactivate]: {
|
|
|
|
|
supportedLevels: LEVELS_UI_FEATURE,
|
|
|
|
|
default: true,
|
|
|
|
|
},
|
2020-09-16 16:06:17 +01:00
|
|
|
[UIFeature.ShareQRCode]: {
|
|
|
|
|
supportedLevels: LEVELS_UI_FEATURE,
|
|
|
|
|
default: true,
|
|
|
|
|
},
|
|
|
|
|
[UIFeature.ShareSocial]: {
|
|
|
|
|
supportedLevels: LEVELS_UI_FEATURE,
|
|
|
|
|
default: true,
|
|
|
|
|
},
|
2020-09-16 14:45:34 +01:00
|
|
|
[UIFeature.IdentityServer]: {
|
|
|
|
|
supportedLevels: LEVELS_UI_FEATURE,
|
|
|
|
|
default: true,
|
2021-07-13 15:05:27 +01:00
|
|
|
// Identity server (discovery) settings make no sense if 3PIDs in general are hidden
|
2020-09-18 11:15:48 +01:00
|
|
|
controller: new UIFeatureController(UIFeature.ThirdPartyID),
|
2020-09-16 14:45:34 +01:00
|
|
|
},
|
2020-09-17 13:25:18 +01:00
|
|
|
[UIFeature.ThirdPartyID]: {
|
|
|
|
|
supportedLevels: LEVELS_UI_FEATURE,
|
|
|
|
|
default: true,
|
|
|
|
|
},
|
2020-09-16 12:14:33 +01:00
|
|
|
[UIFeature.AdvancedSettings]: {
|
|
|
|
|
supportedLevels: LEVELS_UI_FEATURE,
|
|
|
|
|
default: true,
|
2020-08-18 09:56:38 +02:00
|
|
|
},
|
2021-12-21 10:08:22 +01:00
|
|
|
[UIFeature.TimelineEnableRelativeDates]: {
|
|
|
|
|
supportedLevels: LEVELS_UI_FEATURE,
|
|
|
|
|
default: true,
|
|
|
|
|
},
|
2022-12-02 16:24:45 +13:00
|
|
|
[UIFeature.BulkUnverifiedSessionsReminder]: {
|
|
|
|
|
supportedLevels: LEVELS_UI_FEATURE,
|
|
|
|
|
default: true,
|
|
|
|
|
},
|
2022-06-10 22:38:50 +01:00
|
|
|
|
|
|
|
|
// Electron-specific settings, they are stored by Electron and set/read over an IPC.
|
|
|
|
|
// We store them over there are they are necessary to know before the renderer process launches.
|
|
|
|
|
"Electron.autoLaunch": {
|
|
|
|
|
supportedLevels: [SettingLevel.PLATFORM],
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|start_automatically"),
|
2022-06-10 22:38:50 +01:00
|
|
|
default: false,
|
|
|
|
|
},
|
|
|
|
|
"Electron.warnBeforeExit": {
|
|
|
|
|
supportedLevels: [SettingLevel.PLATFORM],
|
2023-09-01 10:53:32 +01:00
|
|
|
displayName: _td("settings|warn_quit"),
|
2022-06-10 22:38:50 +01:00
|
|
|
default: true,
|
|
|
|
|
},
|
|
|
|
|
"Electron.alwaysShowMenuBar": {
|
|
|
|
|
supportedLevels: [SettingLevel.PLATFORM],
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|preferences|always_show_menu_bar"),
|
2022-06-10 22:38:50 +01:00
|
|
|
default: false,
|
|
|
|
|
},
|
|
|
|
|
"Electron.showTrayIcon": {
|
|
|
|
|
supportedLevels: [SettingLevel.PLATFORM],
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|preferences|enable_tray_icon"),
|
2022-06-10 22:38:50 +01:00
|
|
|
default: true,
|
|
|
|
|
},
|
|
|
|
|
"Electron.enableHardwareAcceleration": {
|
|
|
|
|
supportedLevels: [SettingLevel.PLATFORM],
|
2023-09-19 17:16:38 +01:00
|
|
|
displayName: _td("settings|preferences|enable_hardware_acceleration"),
|
2022-06-10 22:38:50 +01:00
|
|
|
default: true,
|
|
|
|
|
},
|
2017-11-05 15:37:06 -07:00
|
|
|
};
|