electron app: add an option to disable smooth scrolling

This commit is contained in:
Adorian Doran 2025-09-06 19:00:45 +03:00
parent 5d8f789791
commit 97aa00e18b
6 changed files with 17 additions and 2 deletions

View File

@ -1118,7 +1118,8 @@
"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"
},
"ai_llm": {
"not_started": "Not started",

View File

@ -250,6 +250,7 @@ function Performance() {
const [ motionEnabled, setMotionEnabled ] = useTriliumOptionBool("motionEnabled");
const [ shadowsEnabled, setShadowsEnabled ] = useTriliumOptionBool("shadowsEnabled");
const [ backdropEffectsEnabled, setBackdropEffectsEnabled ] = useTriliumOptionBool("backdropEffectsEnabled");
const [ smoothScrollEnabled, setSmoothScrollEnabled ] = useTriliumOptionBool("smoothScrollEnabled");
return <OptionsSection title={t("ui-performance.title")}>
<FormCheckbox
@ -266,6 +267,11 @@ function Performance() {
label={t("ui-performance.enable-backdrop-effects")}
currentValue={backdropEffectsEnabled} onChange={setBackdropEffectsEnabled}
/>
<FormCheckbox
label={t("ui-performance.enable-smooth-scroll")}
currentValue={smoothScrollEnabled} onChange={setSmoothScrollEnabled}
/>
</OptionsSection>
}

View File

@ -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.

View File

@ -65,6 +65,7 @@ const ALLOWED_OPTIONS = new Set<OptionNames>([
"monthlyBackupEnabled",
"motionEnabled",
"shadowsEnabled",
"smoothScrollEnabled",
"backdropEffectsEnabled",
"maxContentWidth",
"compressImages",

View File

@ -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 },

View File

@ -96,6 +96,7 @@ export interface OptionDefinitions extends KeyboardShortcutsOptions<KeyboardActi
motionEnabled: boolean;
shadowsEnabled: boolean;
backdropEffectsEnabled: boolean;
smoothScrollEnabled: boolean;
codeNoteTheme: string;
initialized: boolean;