diff --git a/apps/client/src/translations/en/translation.json b/apps/client/src/translations/en/translation.json index d76843a27..3bffc9e31 100644 --- a/apps/client/src/translations/en/translation.json +++ b/apps/client/src/translations/en/translation.json @@ -1118,7 +1118,9 @@ "title": "Performance", "enable-motion": "Enable transitions and animations", "enable-shadows": "Enable shadows", - "enable-backdrop-effects": "Enable background effects for menus, popups and panels" + "enable-backdrop-effects": "Enable background effects for menus, popups and panels", + "enable-smooth-scroll": "Enable smooth scrolling", + "app-restart-required": "(a restart of the application is required for the change to take effect)" }, "ai_llm": { "not_started": "Not started", diff --git a/apps/client/src/translations/ro/translation.json b/apps/client/src/translations/ro/translation.json index cc068831a..69dc904b9 100644 --- a/apps/client/src/translations/ro/translation.json +++ b/apps/client/src/translations/ro/translation.json @@ -2013,7 +2013,9 @@ "title": "Setări de performanță", "enable-motion": "Activează tranzițiile și animațiile", "enable-shadows": "Activează umbrirea elementelor", - "enable-backdrop-effects": "Activează efectele de fundal pentru meniuri, popup-uri și panouri" + "enable-backdrop-effects": "Activează efectele de fundal pentru meniuri, popup-uri și panouri", + "enable-smooth-scroll": "Activează derularea lină", + "app-restart-required": "(este necesară repornirea aplicației pentru ca modificarea să aibă efect)" }, "settings": { "related_settings": "Setări similare" diff --git a/apps/client/src/widgets/type_widgets/options/appearance.tsx b/apps/client/src/widgets/type_widgets/options/appearance.tsx index a6f5a77c6..5ff2ddddc 100644 --- a/apps/client/src/widgets/type_widgets/options/appearance.tsx +++ b/apps/client/src/widgets/type_widgets/options/appearance.tsx @@ -266,9 +266,20 @@ function Performance() { label={t("ui-performance.enable-backdrop-effects")} currentValue={backdropEffectsEnabled} onChange={setBackdropEffectsEnabled} /> + + {isElectron() && } + } +function SmoothScrollEnabledOption() { + const [ smoothScrollEnabled, setSmoothScrollEnabled ] = useTriliumOptionBool("smoothScrollEnabled"); + + return +} function MaxContentWidth() { const [ maxContentWidth, setMaxContentWidth ] = useTriliumOption("maxContentWidth"); diff --git a/apps/desktop/src/main.ts b/apps/desktop/src/main.ts index d1af78e5a..673595830 100644 --- a/apps/desktop/src/main.ts +++ b/apps/desktop/src/main.ts @@ -25,6 +25,12 @@ async function main() { // needed for excalidraw export https://github.com/zadam/trilium/issues/4271 electron.app.commandLine.appendSwitch("enable-experimental-web-platform-features"); electron.app.commandLine.appendSwitch("lang", options.getOptionOrNull("formattingLocale") ?? "en"); + + // Disable smooth scroll if the option is set + const smoothScrollEnabled = options.getOptionOrNull("smoothScrollEnabled"); + if (smoothScrollEnabled === "false") { + electron.app.commandLine.appendSwitch("disable-smooth-scrolling"); + } // Electron 36 crashes with "Using GTK 2/3 and GTK 4 in the same process is not supported" on some distributions. // See https://github.com/electron/electron/issues/46538 for more info. diff --git a/apps/server/src/routes/api/options.ts b/apps/server/src/routes/api/options.ts index 290dd5743..4f76acd68 100644 --- a/apps/server/src/routes/api/options.ts +++ b/apps/server/src/routes/api/options.ts @@ -65,6 +65,7 @@ const ALLOWED_OPTIONS = new Set([ "monthlyBackupEnabled", "motionEnabled", "shadowsEnabled", + "smoothScrollEnabled", "backdropEffectsEnabled", "maxContentWidth", "compressImages", diff --git a/apps/server/src/services/options_init.ts b/apps/server/src/services/options_init.ts index e2c0a7389..1fd945cdd 100644 --- a/apps/server/src/services/options_init.ts +++ b/apps/server/src/services/options_init.ts @@ -155,7 +155,7 @@ const defaultOptions: DefaultOption[] = [ { name: "motionEnabled", value: "true", isSynced: false }, { name: "shadowsEnabled", value: "true", isSynced: false }, { name: "backdropEffectsEnabled", value: "true", isSynced: false }, - + { name: "smoothScrollEnabled", value: "true", isSynced: false }, // Internationalization { name: "locale", value: "en", isSynced: true }, diff --git a/packages/commons/src/lib/options_interface.ts b/packages/commons/src/lib/options_interface.ts index ae63d0250..a94b25857 100644 --- a/packages/commons/src/lib/options_interface.ts +++ b/packages/commons/src/lib/options_interface.ts @@ -96,6 +96,7 @@ export interface OptionDefinitions extends KeyboardShortcutsOptions