diff --git a/npm_install.py b/npm_install.py index 622f808..670d324 100644 --- a/npm_install.py +++ b/npm_install.py @@ -14,6 +14,13 @@ MIN_NODEJS_VERSION = 18 # Maximum supported Node.js version MAX_NODEJS_VERSION = 21 +# Theme.Park settings (for --dark-mode or --tp-theme) +# Popular themes: organizr, dark, plex, nord, dracula, space-gray, hotline, aquamarine +TP_DOMAIN = "theme-park.dev" +TP_SCHEME = "https" +TP_COMMUNITY_THEME = "false" +TP_DEFAULT_THEME = "organizr" + # ========== UI / Spinner ========== class Spinner: @@ -1678,15 +1685,9 @@ def main(): parser.add_argument("--update", action="store_true", help="Update mode: upgrade packages + rebuild frontend/backend without reconfiguring Angie.") parser.add_argument("--dark-mode", action="store_true", - help="Inject Theme.Park CSS into frontend (see TP_* vars).") - parser.add_argument("--tp-domain", default=os.environ.get("TP_DOMAIN", ""), - help="Theme.Park domain (e.g. theme-park.dev or *.github.io).") - parser.add_argument("--tp-community-theme", default=os.environ.get("TP_COMMUNITY_THEME", "false"), - help="true = community-theme-options; false = theme-options.") - parser.add_argument("--tp-scheme", default=os.environ.get("TP_SCHEME", "https"), - help="URL scheme (http/https).") - parser.add_argument("--tp-theme", default=os.environ.get("TP_THEME", "organizr"), - help="Theme.Park theme name (e.g. organizr, catppuccin).") + help=f"Enable dark theme (default: {TP_DEFAULT_THEME} from theme-park.dev)") + parser.add_argument("--tp-theme", default=None, + help="Enable dark theme with specific theme name (e.g. nord, dracula, plex). Implies --dark-mode.") parser.add_argument("--debug", action="store_true", help="Show detailed logs and progress.") @@ -1755,12 +1756,24 @@ def main(): else: print("IPv6: leaving entries (skipped IPv6 cleanup).") - if args.dark_mode: - apply_dark_mode(APP_FILEPATH="/opt/npm/frontend", - TP_DOMAIN=args.tp_domain, - TP_COMMUNITY_THEME=args.tp_community_theme, - TP_SCHEME=args.tp_scheme, - TP_THEME=args.tp_theme) + if args.tp_theme: + dark_mode_enabled = True + selected_theme = args.tp_theme + elif args.dark_mode: + dark_mode_enabled = True + selected_theme = TP_DEFAULT_THEME + else: + dark_mode_enabled = False + selected_theme = None + + if dark_mode_enabled: + apply_dark_mode( + APP_FILEPATH="/opt/npm/frontend", + TP_DOMAIN=TP_DOMAIN, + TP_COMMUNITY_THEME=TP_COMMUNITY_THEME, + TP_SCHEME=TP_SCHEME, + TP_THEME=selected_theme + ) create_systemd_units(ipv6_enabled=args.enable_ipv6)