97 lines
4.5 KiB
JavaScript
97 lines
4.5 KiB
JavaScript
/* 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'
|
||
}; |