Novadesk is a open source powerful desktop widget platform built with C++. It allows users to create system monitors, custom interfaces, and desktop enhancements using familiar JavaScript syntax.
- 🌐 Official Website - Learn more about Novadesk features and updates.
- 📚 Documentation - Detailed guides on creating widgets and using the platform.
If you enjoy using Novadesk and want to support its development, consider becoming a patron:
- ☕ Patreon - Support the project's growth and get exclusive updates.
Full diagrams (all src/apps apps, novadesk/ layers, render class tree, and data flow): src/apps/ARCHITECTURE.md
flowchart TB
subgraph src_apps ["src/apps"]
Novadesk["novadesk/<br/>Runtime EXE"]
Nwm["nwm/<br/>CLI: init, run, build"]
Manage["manage_novadesk/<br/>Widget manager GUI"]
Restart["restart_novadesk/<br/>Restart helper"]
Ndpkg["ndpkg_installer/<br/>.ndpkg installer"]
Stub["installer_stub/<br/>Setup bootstrap"]
Assets["assets/images"]
end
Dev["Developer"] --> Nwm
User["User"] --> Manage
User --> Novadesk
Nwm -->|"build"| Stub
Nwm --> Novadesk
Manage --> Novadesk
Ndpkg --> Novadesk
Restart --> Manage
Stub -->|"install"| Novadesk
subgraph novadesk_layers ["novadesk/ internals"]
JS["scripting/quickjs<br/>JSEngine, PropertyParser, modules"]
Domain["domain/<br/>Widget, DesktopManager, Animation"]
Render["render/<br/>Elements, Shapes, Direct2D"]
Shared["shared/<br/>Settings, Logging, Utils"]
end
Novadesk --> JS
JS --> Domain
Domain --> Render
Domain --> Shared
Render --> Shared
