feat(settings): add screensaver toggle in Language tab (default off)

Toggle appears in the Language settings tab, below the language selector.
Default: disabled. When disabled, initInactivityWatcher() exits early so
the screensaver never activates. i18n added for it/en/de.
This commit is contained in:
dadaloop82
2026-05-04 16:17:36 +00:00
parent bc0beea090
commit 108f3ef283
5 changed files with 28 additions and 0 deletions
+8
View File
@@ -1101,6 +1101,9 @@ function translatePage() {
// Populate the language selector dropdown
function _populateLanguageSelector() {
const sel = document.getElementById('setting-language');
// Screensaver toggle
const ssEl = document.getElementById('setting-screensaver-enabled');
if (ssEl) ssEl.checked = s.screensaver_enabled === true;
if (!sel) return;
sel.innerHTML = '';
for (const [code, name] of Object.entries(_SUPPORTED_LANGS)) {
@@ -2124,6 +2127,9 @@ async function saveSettings() {
s.dietary = document.getElementById('setting-dietary').value.trim();
// Camera
s.camera_facing = document.getElementById('setting-camera-facing').value;
// Screensaver
const ssEl = document.getElementById('setting-screensaver-enabled');
if (ssEl) s.screensaver_enabled = ssEl.checked;
// Meal plan enabled toggle
const mpEnabledEl = document.getElementById('setting-meal-plan-enabled');
if (mpEnabledEl) s.meal_plan_enabled = mpEnabledEl.checked;
@@ -11691,6 +11697,8 @@ function initScreensaverShortcuts() {
}
function initInactivityWatcher() {
const s = getSettings();
if (!s.screensaver_enabled) return; // disabled by default
const events = ['pointerdown', 'pointermove', 'keydown', 'scroll', 'touchstart'];
events.forEach(evt => {
document.addEventListener(evt, () => {