A fancy status monitor built with the Godot Engine. V stands for the Roman numeral 5 — a nod to my online handle, **Fifthdread**.
## Overview
V Panel is a visually rich, real-time status monitoring dashboard built entirely in Godot. Designed to be both functional and aesthetically polished, it serves as a showcase for Godot's UI capabilities outside of gaming — custom shaders, smooth animations, reactive layouts, and system integration.
- **Animated splash screen** — Fullscreen splash with "V" and "Panel" text using Orbitron variable font. Font-size zoom animation via `tween_method` with overshoot (TRANS_BACK), then crossfades to dashboard with no black flash.
- **Shader preset system** — Long-press (500ms) or double-click any module to open an action menu with 7 visual presets (Vivid Vial, Emerald Deep, Lava Flow, Neon Dream, Deep Purple, Rainbow Swirl, Frostbite).
- **Plugin architecture** — Tiles are defined as plugins under `plugins/*/plugin.cfg`. Each plugin declares metadata, tile definitions, and optional settings. Tile IDs scoped as `{plugin_id}/{tile_id}`.
- **Plugin settings** — Per-plugin configurable values stored in `config/plugin_settings.cfg`. Settings defined in manifest `[settings]` section (int/float/bool/string types with min/max constraints).
- **Per-tile refresh intervals** — Each tile has its own configurable refresh interval (default 1000ms). Base tick runs at 100ms, tiles refresh only when their interval elapses.
- **Animation scaling** — Tween durations dynamically clamp based on each tile's refresh interval to prevent animation from outlasting the update window.
- **Layout persistence** — Named layouts saved/restored as INI files in `config/layouts/`. Grid dimensions (columns/rows) stored per-layout. Auto-saves on drag/resize.
- **Settings menu** — Modal popup with General, Plugins, and About tabs. Plugin activation toggles, per-plugin settings popups with dynamic UI controls.
- **Plugin activation** — Plugins can be deactivated from Settings → Plugins tab. Deactivation saves layout, removes tiles. Reactivation places tiles at saved positions if cells are free.
- **INI-based configuration** — Uses Godot's built-in `ConfigFile` class for human-friendly `.cfg` files. `config/default.cfg` for shipped defaults, `config/config.cfg` for user overrides (gitignored).
- **Live system monitoring** — Reads CPU usage from `/proc/stat` and memory usage from `/proc/meminfo` on Linux. Extensible module system for adding new collectors.
- **Smooth animations** — All fill level transitions use tweens with cubic easing.
Version 0.1.0-alpha. Plugin architecture, settings framework, layout persistence, per-tile refresh intervals, and animation scaling are implemented. More system modules (disk, network) are planned.