Files
animated_wallpaper/config.js
T
Richard Zink c6764fd534 Fix clouds2d: create own canvas element
The 2D WebGL renderer now creates its own <canvas> overlay inside
the target element, instead of expecting the target to already be a
canvas. This fixes 'canvas.getContext is not a function' when the
target is a <div>.
2026-10-07 18:49:42 +02:00

97 lines
4.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* Application configuration
*
* debug - Show debug panel (0/1)
*
* 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
*/
window.CONFIG = {
debug: 0,
theme: 'ash',
units: 'metric',
renderer: 'clouds2d', // 'vanta' or 'clouds2d'
language: 'de',
timeFormat: 'DD. MMMM, YYYY ‒ HH:mm:SS',
location: {
// Latitude and longitude for sun/moon calculations
// Default: Passau, Germany
lat: 48.5667,
lon: 13.4319
}
};
// List of available themes. The key is the theme id (used in config.theme),
// the value is the CSS file name. Add a new theme by adding a new entry here
// and dropping the corresponding CSS file in the same directory.
window.THEMES = {
'ash': 'ash.css',
'gruvbox': 'gruvbox.css',
'nord': 'nord.css'
};