2026-03-13 20:26:16 -05:00
2026-03-12 08:05:10 -05:00
2026-03-12 08:05:10 -05:00
2026-03-13 20:26:16 -05:00
2026-03-12 08:05:10 -05:00
2026-03-12 08:05:10 -05:00
2026-03-12 08:05:10 -05:00
2026-03-12 08:05:10 -05:00
2026-03-12 08:05:10 -05:00
2026-03-12 08:05:10 -05:00
2026-03-12 08:05:10 -05:00
2026-03-12 08:05:10 -05:00
2026-03-13 20:14:01 -05:00
2026-03-12 08:05:10 -05:00
2026-03-12 08:05:10 -05:00
2026-03-12 08:05:10 -05:00
2026-03-12 08:05:10 -05:00
2026-03-12 08:05:10 -05:00

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.

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.

S
Description
Legacy Go implementation of Radiant Wave
Readme
36 MiB
Languages
Go 86.1%
Shell 4.9%
Python 4.5%
Nix 2.5%
HTML 1.4%
Other 0.6%