Initial release: RadiantWave v1.0
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
# RhemaWave
|
||||
|
||||
A Go-based fullscreen SDL2/OpenGL application for Linux kiosk systems. Displays proclamations with audio playback and animated visual patterns.
|
||||
|
||||
## Development
|
||||
|
||||
Development uses Nix for a reproducible build environment.
|
||||
|
||||
```bash
|
||||
nix develop # enter dev shell
|
||||
go build -o bin/rhemawave rhemawave.go # build
|
||||
./bin/rhemawave # run
|
||||
./dev_scripts/reset.sh # reset database (if needed)
|
||||
```
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Nix with flakes enabled
|
||||
- A display server (X11/Wayland) and audio device for running the application
|
||||
|
||||
## Architecture
|
||||
|
||||
- **Page-based UI** — SDL2/OpenGL 3.3 fullscreen rendering with a page stack for navigation
|
||||
- **Proclamation player** — scrolling text display with synchronized audio playback
|
||||
- **Startup validation** — WiFi, TOS acceptance, email, license key checks
|
||||
- **Singleton managers** — ShaderManager, FontManager, Logger (initialized once via `sync.Once`)
|
||||
|
||||
### Key Directories
|
||||
|
||||
```
|
||||
bin/ # build output (gitignored)
|
||||
share/rhemawave/ # assets (fonts, shaders, proclamations, TOS)
|
||||
internal/ # Go source packages
|
||||
packaging/ # deployment configs (kiosk, updater, polkit)
|
||||
dev_scripts/ # developer utilities
|
||||
```
|
||||
|
||||
### Runtime Data
|
||||
|
||||
Stored in `~/.local/share/rhemawave/`:
|
||||
- `data.db` — SQLite database (config, proclamations, logs)
|
||||
- `log.txt` — application log
|
||||
- `license_key` — license key file
|
||||
|
||||
## Deployment
|
||||
|
||||
Deployed to kiosk hardware via NixOS-Anywhere. See `packaging/` for kiosk system configs.
|
||||
Reference in New Issue
Block a user