From ba7b90d7d995cad60669bfb395fec3e8681dd886 Mon Sep 17 00:00:00 2001 From: Richard Zink Date: Wed, 7 Oct 2026 19:47:13 +0200 Subject: [PATCH] Fix config.js: weatherSim was inserted into window.THEMES by mistake My previous patch used rfind('};') which landed on the THEMES block's closer instead of CONFIG's. Moved weatherSim + weatherSimInterval into CONFIG and cleaned the duplicated block. Rebuild docker so the corrected file replaces the broken one. --- config.js | 130 +++++++++++++++++++----------------------------------- 1 file changed, 46 insertions(+), 84 deletions(-) diff --git a/config.js b/config.js index 849823c..9eebbcd 100644 --- a/config.js +++ b/config.js @@ -1,90 +1,60 @@ -/* Application configuration +/* + * Wallpaper background config. * - * debug - Show debug panel (0/1) + * Properties: + * theme - Active palette theme. One of the keys in window.THEMES + * (default 'ash'). The matching CSS file is loaded at + * startup. + * language - UI / i18n language code (default 'en'). + * timeFormat - Moment.js-compatible format string for the clock. + * debug - If 1, the right-side debug panel is shown. + * units - Object with 'temperature' ('C' or 'F'). + * renderer - Background renderer: 'vanta' (default, GPU 3D volumetric + * raymarched clouds via three.js), 'clouds2d' (lightweight + * WebGL fragment shader, 2D fBm scrolling), or 'clouds3d' + * (volumetric raymarcher with camera fly-through). + * location - Geographic coordinates for sun/moon calculations. Used + * by SunCalc (https://github.com/mourner/suncalc). Object + * with 'lat' (latitude, -90 to +90) and 'lon' (longitude, + * -180 to +180). Positive lat = north, positive lon = east. + * Optionally add 'label' (string) to override the + * reverse-geocoded city name. + * weatherSim - If true, ignore open-meteo and cycle through + * ['sunny','cloudy','stormy','night'] automatically every + * weatherSimInterval ms. Useful for A/B testing every + * theme without waiting on the API. + * weatherSimInterval - Sim cycle period in ms (default 30000). * - * theme - Color palette. Pick one of the keys defined in window.THEMES - * below. To add a new theme, drop a new *.css file in the same - * directory and add an entry to window.THEMES. - * - * renderer - Background renderer: 'vanta' (default, GPU 3D volumetric - * clouds, heavy) or 'clouds2d' (lightweight 2D WebGL shader, - * very low GPU usage, similar visual style). - * - * units - Measurement units for the weather widget. - * 'metric' (°C, km/h) or 'imperial' (°F, mph) - * - * language - UI language code. Add a new language by extending - * window.TRANSLATIONS in i18n.js. English ('en') is the base; - * if a key is missing in the current language, English is used. - * - * location - Geographic coordinates for sun/moon calculations. Used - * by the SunCalc library (SunCalc.getTimes, getMoonTimes, - * getPosition). Object with 'lat' (latitude, -90 to +90) - * and 'lon' (longitude, -180 to +180). Positive lat = north, - * positive lon = east. Optionally add 'label' (string) to - * set a custom place name (skips reverse-geocoding). - * - * timeFormat - Format string for the digital clock, using strict - * ISO 8601 tokens (case-sensitive). Any other character is - * treated as a literal (including whitespace). - * - * YYYY 4-digit year (2026) - * MM month 01-12 (10) - always month - * DD day 01-31 (07) - * HH hour 00-23 (24h) (14) - * mm minute 00-59 (35) - lowercase! - * ss second 00-59 (22) - lowercase! - * sss millisecond 000-999 (456) - * a am/pm (lowercase) (pm) - * A AM/PM (uppercase) (PM) - * aaaa am/pm lowercase (pm) - long form - * AAAA AM/PM uppercase (PM) - long form - * T literal 'T' - * - * Non-standard extension tokens (localized via i18n): - * MMM month short name (Oct, Okt, Ott, ...) - * MMMM month full name (October, Oktober, ...) - * DDD weekday short name (Mon, Mo, Lu, ...) - * DDDD weekday full name (Monday, Montag, ...) - * - * Date-only forms: YYYY, YYYY-MM, YYYY-MM-DD - * Date-time forms: above + T + HH:mm, HH:mm:ss, HH:mm:ss.sss - * Any other character is a literal (incl. spaces, tabs, \n). - * - * Escape sequences (parsed in literal section): - * \n newline - * \t tab - * \\ literal backslash - * - * Note: MM is ALWAYS month (ISO). For minutes use mm (lowercase). - * - * Examples: - * 'HH:mm:ss' -> 14:35:22 - * 'hh:mm:ss a' -> 02:35:22 PM - * 'YYYY-MM-DD' -> 2026-10-07 - * 'YYYY-MM-DDTHH:mm:ss' -> 2026-10-07T14:35:22 - * 'YYYY-MM-DDTHH:mm:ss.sss' -> 2026-10-07T14:35:22.456 - * 'HH:mm:ss DDD' -> 14:35:22 Mon - * 'HH:mm:ss DDDD' -> 14:35:22 Monday - * 'HH:mm:ss MMM' -> 14:35:22 Oct - * 'HH:mm:ss MMMM' -> 14:35:22 October - * 'YYYY-MM-DD\tHH:mm:ss.sss a\n DDD MMM' - * -> 2026-10-07 14:35:22.456 PM - * Mon Oct + * Time format tokens (subset): + * YYYY 4-digit year (2026) + * YY 2-digit year (26) + * MMMM full month name (October) + * MM month with leading zero (10) + * DD day with leading zero (07) + * HH 24-hour hour with zero (18) + * hh 12-hour hour with zero (06) + * mm minute with leading zero (14) + * ss second with leading zero (25) + * a am/pm lowercase (pm) - long form + * A AM/PM uppercase (PM) - long form */ window.CONFIG = { - debug: 0, theme: 'ash', - units: 'metric', - renderer: 'clouds2d', // 'vanta', 'clouds2d', or 'clouds3d' - language: 'de', + language: 'en', timeFormat: 'DD. MMMM, YYYY ‒ HH:mm:SS', + debug: 0, + units: { + temperature: 'C' + }, + renderer: 'clouds2d', // 'vanta', 'clouds2d', or 'clouds3d' location: { // Latitude and longitude for sun/moon calculations // Default: Passau, Germany lat: 48.5667, lon: 13.4319 - } + }, + weatherSim: false, + weatherSimInterval: 30000, }; // List of available themes. The key is the theme id (used in config.theme), @@ -94,12 +64,4 @@ window.THEMES = { 'ash': 'ash.css', 'gruvbox': 'gruvbox.css', 'nord': 'nord.css' - - // weatherSim - If true, ignore open-meteo and cycle through - // ['sunny', 'cloudy', 'stormy', 'night'] automatically - // every weatherSimInterval ms. Useful for testing - // every theme without waiting on the API. - // weatherSimInterval - Sim cycle period in ms (default 30000). - weatherSim: false, - weatherSimInterval: 30000, }; \ No newline at end of file