Rename rhemawave to radiantwave throughout
This commit is contained in:
Vendored
+1
-1
@@ -9,7 +9,7 @@
|
|||||||
"type": "go",
|
"type": "go",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"mode": "debug",
|
"mode": "debug",
|
||||||
"program": "rhemawave.go",
|
"program": "radiantwave.go",
|
||||||
"env": {
|
"env": {
|
||||||
"DEBUGINFOD_URLS": ""
|
"DEBUGINFOD_URLS": ""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ Dev shell via direnv (`use flake` in `.envrc`). Inside the nix dev shell:
|
|||||||
|
|
||||||
```sh
|
```sh
|
||||||
# Build
|
# Build
|
||||||
go build -o bin/radiantwave radiantwave.go
|
go build -o bin/radiantwave .
|
||||||
|
|
||||||
# Run
|
# Run
|
||||||
./bin/radiantwave
|
./bin/radiantwave
|
||||||
@@ -48,7 +48,7 @@ Both run `nix build -L` on a self-hosted runner (`neils-server-runner`).
|
|||||||
|
|
||||||
## Key Architecture
|
## Key Architecture
|
||||||
|
|
||||||
- **Entry**: `rhemawave.go` → `internal/application.Run()`
|
- **Entry**: `radiantwave.go` → `internal/application.Run()`
|
||||||
- **State machine**: `internal/application/application.go` — FIRST_RUN → NEEDS_INTERNET → NEEDS_EMAIL_ADDRESS → NEEDS_LICENSE_KEY → DOWNLOADING_ASSETS → READY
|
- **State machine**: `internal/application/application.go` — FIRST_RUN → NEEDS_INTERNET → NEEDS_EMAIL_ADDRESS → NEEDS_LICENSE_KEY → DOWNLOADING_ASSETS → READY
|
||||||
- **Pages**: `internal/page/` — router pattern with page interface (`page.go`)
|
- **Pages**: `internal/page/` — router pattern with page interface (`page.go`)
|
||||||
- **DB**: SQLite at `~/.local/share/radiantwave/database.sqlite`, managed by GORM in `internal/db/`
|
- **DB**: SQLite at `~/.local/share/radiantwave/database.sqlite`, managed by GORM in `internal/db/`
|
||||||
|
|||||||
+1
-1
@@ -16,7 +16,7 @@
|
|||||||
3. Open a pull request to =dev=
|
3. Open a pull request to =dev=
|
||||||
4. CI: Run =nix build= to verify no errors
|
4. CI: Run =nix build= to verify no errors
|
||||||
5. CI: Run linting and unit tests
|
5. CI: Run linting and unit tests
|
||||||
6. CI: Auto-update =rhemawave-dev= flake input
|
6. CI: Auto-update =radiantwave-dev= flake input
|
||||||
7. CI: Build all =dev= VMs in parallel (Kiosk, Commercial, RPi)
|
7. CI: Build all =dev= VMs in parallel (Kiosk, Commercial, RPi)
|
||||||
8. Merge the pull request to =dev= after CI passes
|
8. Merge the pull request to =dev= after CI passes
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
* Virtual Machine Testing
|
* Virtual Machine Testing
|
||||||
To be completed after updating rhemawave-dev, deleting nixos.qcow2, and building rhemawavekiosk-dev
|
To be completed after updating radiantwave-dev, deleting nixos.qcow2, and building radiantwavekiosk-dev
|
||||||
|
|
||||||
- [ ] Closure builds
|
- [ ] Closure builds
|
||||||
- [ ] VM Starts
|
- [ ] VM Starts
|
||||||
|
|||||||
+1
-1
@@ -35,7 +35,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|||||||
### Changed (Major Refactors)
|
### Changed (Major Refactors)
|
||||||
- Mixer package: inject audio backend dependencies for testability
|
- Mixer package: inject audio backend dependencies for testability
|
||||||
- SwitchDevice now takes *db.AppConfig to access saved volume
|
- SwitchDevice now takes *db.AppConfig to access saved volume
|
||||||
- Audio files moved from ~/.local/share/rhemawave/audio to ~/.radiantwave/audio
|
- Audio files moved from ~/.local/share/radiantwave/audio to ~/.radiantwave/audio
|
||||||
- State machine uses DOWNLOADING_ASSETS state before READY
|
- State machine uses DOWNLOADING_ASSETS state before READY
|
||||||
- checkState() skips re-navigation when transitioning between HOME-mapped states
|
- checkState() skips re-navigation when transitioning between HOME-mapped states
|
||||||
- network.init() logs warning instead of crashing when D-Bus is unavailable
|
- network.init() logs warning instead of crashing when D-Bus is unavailable
|
||||||
|
|||||||
@@ -69,11 +69,10 @@
|
|||||||
postInstall = ''
|
postInstall = ''
|
||||||
mkdir -p $out/share/radiantwave
|
mkdir -p $out/share/radiantwave
|
||||||
cp -r share/radiantwave/* $out/share/radiantwave/
|
cp -r share/radiantwave/* $out/share/radiantwave/
|
||||||
mv $out/bin/rhemawave $out/bin/radiantwave
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with pkgs.lib; {
|
meta = with pkgs.lib; {
|
||||||
description = "RhemaWave kiosk application";
|
description = "RadiantWave kiosk application";
|
||||||
license = licenses.unfree;
|
license = licenses.unfree;
|
||||||
platforms = platforms.linux ++ platforms.darwin;
|
platforms = platforms.linux ++ platforms.darwin;
|
||||||
};
|
};
|
||||||
@@ -89,11 +88,11 @@
|
|||||||
export CGO_CFLAGS="$(pkg-config --cflags SDL2_mixer SDL2_ttf SDL2_image) $CGO_CFLAGS"
|
export CGO_CFLAGS="$(pkg-config --cflags SDL2_mixer SDL2_ttf SDL2_image) $CGO_CFLAGS"
|
||||||
export CGO_LDFLAGS="$(pkg-config --libs SDL2_mixer SDL2_ttf SDL2_image) $CGO_LDFLAGS"
|
export CGO_LDFLAGS="$(pkg-config --libs SDL2_mixer SDL2_ttf SDL2_image) $CGO_LDFLAGS"
|
||||||
|
|
||||||
echo "RhemaWave dev shell"
|
echo "RadiantWave dev shell"
|
||||||
echo " go version: $(go version)"
|
echo " go version: $(go version)"
|
||||||
echo " CGO_ENABLED=1"
|
echo " CGO_ENABLED=1"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Build: go build -o bin/radiantwave radiantwave.go"
|
echo "Build: go build -o bin/radiantwave ."
|
||||||
echo "Run: ./bin/radiantwave"
|
echo "Run: ./bin/radiantwave"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
module rhemawavetech.com/rhemawave
|
module radiantwavetech.com/radiantwave
|
||||||
|
|
||||||
go 1.24.0
|
go 1.24.0
|
||||||
|
|
||||||
|
|||||||
@@ -11,19 +11,19 @@ import (
|
|||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"github.com/veandco/go-sdl2/ttf"
|
"github.com/veandco/go-sdl2/ttf"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"rhemawavetech.com/rhemawave/internal/assets"
|
"radiantwavetech.com/radiantwave/internal/assets"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/download"
|
"radiantwavetech.com/radiantwave/internal/download"
|
||||||
"rhemawavetech.com/rhemawave/internal/fontManager"
|
"radiantwavetech.com/radiantwave/internal/fontManager"
|
||||||
"rhemawavetech.com/rhemawave/internal/graphics"
|
"radiantwavetech.com/radiantwave/internal/graphics"
|
||||||
"rhemawavetech.com/rhemawave/internal/keybinds"
|
"radiantwavetech.com/radiantwave/internal/keybinds"
|
||||||
"rhemawavetech.com/rhemawave/internal/license"
|
"radiantwavetech.com/radiantwave/internal/license"
|
||||||
"rhemawavetech.com/rhemawave/internal/logger"
|
"radiantwavetech.com/radiantwave/internal/logger"
|
||||||
"rhemawavetech.com/rhemawave/internal/mixer"
|
"radiantwavetech.com/radiantwave/internal/mixer"
|
||||||
"rhemawavetech.com/rhemawave/internal/network"
|
"radiantwavetech.com/radiantwave/internal/network"
|
||||||
"rhemawavetech.com/rhemawave/internal/page"
|
"radiantwavetech.com/radiantwave/internal/page"
|
||||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
"radiantwavetech.com/radiantwave/internal/shaderManager"
|
||||||
"rhemawavetech.com/rhemawave/internal/sync"
|
"radiantwavetech.com/radiantwave/internal/sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -31,7 +31,7 @@ const (
|
|||||||
openGLMajorVersion = 3
|
openGLMajorVersion = 3
|
||||||
openGLMinorVersion = 3
|
openGLMinorVersion = 3
|
||||||
// volumeStepSize = 16
|
// volumeStepSize = 16
|
||||||
// apiURL = "https://portal.rhemawavetech.com/api/v1"
|
// apiURL = "https://portal.radiantwavetech.com/api/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
type State int
|
type State int
|
||||||
@@ -346,7 +346,7 @@ func (app *Application) initializeSDLAndOpenGL() (W, H int32) {
|
|||||||
|
|
||||||
logger.Info("Creating window")
|
logger.Info("Creating window")
|
||||||
window, err := sdl.CreateWindow(
|
window, err := sdl.CreateWindow(
|
||||||
"Rhema Wave",
|
"Radiant Wave",
|
||||||
sdl.WINDOWPOS_UNDEFINED,
|
sdl.WINDOWPOS_UNDEFINED,
|
||||||
sdl.WINDOWPOS_UNDEFINED,
|
sdl.WINDOWPOS_UNDEFINED,
|
||||||
displayMode.W,
|
displayMode.W,
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/page"
|
"radiantwavetech.com/radiantwave/internal/page"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Regression: The app used to reach READY before audio downloads completed,
|
// Regression: The app used to reach READY before audio downloads completed,
|
||||||
@@ -446,7 +446,7 @@ func TestMultipleComputeStateCallsAfterDownloadComplete(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TestDataDirFor verifies the per-user data directory resolves to the
|
// TestDataDirFor verifies the per-user data directory resolves to the
|
||||||
// radiantwave path, not the legacy rhemawave name.
|
// radiantwave path, not the legacy radiantwave name.
|
||||||
func TestDataDirFor(t *testing.T) {
|
func TestDataDirFor(t *testing.T) {
|
||||||
got := DataDirFor("/home/kiosk")
|
got := DataDirFor("/home/kiosk")
|
||||||
want := "/home/kiosk/.local/share/radiantwave"
|
want := "/home/kiosk/.local/share/radiantwave"
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/logger"
|
"radiantwavetech.com/radiantwave/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DownloadStatus holds information related to downloads and is
|
// DownloadStatus holds information related to downloads and is
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ import (
|
|||||||
|
|
||||||
"gorm.io/driver/sqlite"
|
"gorm.io/driver/sqlite"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/download"
|
"radiantwavetech.com/radiantwave/internal/download"
|
||||||
)
|
)
|
||||||
|
|
||||||
func md5Hex(data []byte) string {
|
func md5Hex(data []byte) string {
|
||||||
|
|||||||
@@ -11,9 +11,9 @@ import (
|
|||||||
"github.com/go-gl/mathgl/mgl32"
|
"github.com/go-gl/mathgl/mgl32"
|
||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"github.com/veandco/go-sdl2/ttf"
|
"github.com/veandco/go-sdl2/ttf"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/graphics"
|
"radiantwavetech.com/radiantwave/internal/graphics"
|
||||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
"radiantwavetech.com/radiantwave/internal/shaderManager"
|
||||||
)
|
)
|
||||||
|
|
||||||
// FontManager handles the loading and management of fonts.
|
// FontManager handles the loading and management of fonts.
|
||||||
@@ -217,12 +217,12 @@ func (fm *FontManager) CreateScrambledFont(baseFontName string, newFontName stri
|
|||||||
// - Maintains pixel-perfect reversibility despite high visual entropy
|
// - Maintains pixel-perfect reversibility despite high visual entropy
|
||||||
// - Produces deterministic, reproducible patterns for each character
|
// - Produces deterministic, reproducible patterns for each character
|
||||||
//
|
//
|
||||||
// Within our Rhema Wave generation system, these transformed characters create spatial interference
|
// Within our Radiant Wave generation system, these transformed characters create spatial interference
|
||||||
// patterns designed for subconscious processing. Each character contributes a unique frequency
|
// patterns designed for subconscious processing. Each character contributes a unique frequency
|
||||||
// signature to the overall visual field, with Fibonacci-based geometry intended to create harmonic
|
// signature to the overall visual field, with Fibonacci-based geometry intended to create harmonic
|
||||||
// relationships between character patterns. The result is a consciously illegible display that
|
// relationships between character patterns. The result is a consciously illegible display that
|
||||||
// maintains structured information content in the spatial domain, forming a component of the
|
// maintains structured information content in the spatial domain, forming a component of the
|
||||||
// broader Rhema Wave output.
|
// broader Radiant Wave output.
|
||||||
func (fm *FontManager) scrambleSurface(surface *sdl.Surface, r rune) error {
|
func (fm *FontManager) scrambleSurface(surface *sdl.Surface, r rune) error {
|
||||||
if surface.W < 8 || surface.H < 8 {
|
if surface.W < 8 || surface.H < 8 {
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ─── Level ───────────────────────────────────────────────────────────────────
|
// ─── Level ───────────────────────────────────────────────────────────────────
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import (
|
|||||||
|
|
||||||
"github.com/veandco/go-sdl2/mix"
|
"github.com/veandco/go-sdl2/mix"
|
||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/logger"
|
"radiantwavetech.com/radiantwave/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import (
|
|||||||
"math"
|
"math"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"rhemawavetech.com/rhemawave/internal/mixer"
|
"radiantwavetech.com/radiantwave/internal/mixer"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSetVolume(t *testing.T) {
|
func TestSetVolume(t *testing.T) {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
|
|
||||||
gonm "github.com/Wifx/gonetworkmanager/v2"
|
gonm "github.com/Wifx/gonetworkmanager/v2"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"rhemawavetech.com/rhemawave/internal/logger"
|
"radiantwavetech.com/radiantwave/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ─── Public types ─────────────────────────────────────────────────────────────
|
// ─── Public types ─────────────────────────────────────────────────────────────
|
||||||
|
|||||||
@@ -7,12 +7,12 @@ import (
|
|||||||
"github.com/go-gl/gl/v3.3-core/gl"
|
"github.com/go-gl/gl/v3.3-core/gl"
|
||||||
"github.com/go-gl/mathgl/mgl32"
|
"github.com/go-gl/mathgl/mgl32"
|
||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"rhemawavetech.com/rhemawave/internal/colors"
|
"radiantwavetech.com/radiantwave/internal/colors"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/fontManager"
|
"radiantwavetech.com/radiantwave/internal/fontManager"
|
||||||
"rhemawavetech.com/rhemawave/internal/logger"
|
"radiantwavetech.com/radiantwave/internal/logger"
|
||||||
"rhemawavetech.com/rhemawave/internal/mixer"
|
"radiantwavetech.com/radiantwave/internal/mixer"
|
||||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
"radiantwavetech.com/radiantwave/internal/shaderManager"
|
||||||
)
|
)
|
||||||
|
|
||||||
const systemDefaultDeviceName = "System Default"
|
const systemDefaultDeviceName = "System Default"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package page
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"rhemawavetech.com/rhemawave/internal/mixer"
|
"radiantwavetech.com/radiantwave/internal/mixer"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCurrentDeviceIndex(t *testing.T) {
|
func TestCurrentDeviceIndex(t *testing.T) {
|
||||||
|
|||||||
@@ -7,12 +7,12 @@ import (
|
|||||||
"github.com/go-gl/gl/v3.3-core/gl"
|
"github.com/go-gl/gl/v3.3-core/gl"
|
||||||
"github.com/go-gl/mathgl/mgl32"
|
"github.com/go-gl/mathgl/mgl32"
|
||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"rhemawavetech.com/rhemawave/internal/colors"
|
"radiantwavetech.com/radiantwave/internal/colors"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/fontManager"
|
"radiantwavetech.com/radiantwave/internal/fontManager"
|
||||||
"rhemawavetech.com/rhemawave/internal/logger"
|
"radiantwavetech.com/radiantwave/internal/logger"
|
||||||
"rhemawavetech.com/rhemawave/internal/mixer"
|
"radiantwavetech.com/radiantwave/internal/mixer"
|
||||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
"radiantwavetech.com/radiantwave/internal/shaderManager"
|
||||||
)
|
)
|
||||||
|
|
||||||
// focusToggle is the focus state of the audio on/off toggle, the topmost
|
// focusToggle is the focus state of the audio on/off toggle, the topmost
|
||||||
|
|||||||
@@ -7,11 +7,11 @@ import (
|
|||||||
"github.com/go-gl/gl/v3.3-core/gl"
|
"github.com/go-gl/gl/v3.3-core/gl"
|
||||||
"github.com/go-gl/mathgl/mgl32"
|
"github.com/go-gl/mathgl/mgl32"
|
||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"rhemawavetech.com/rhemawave/internal/colors"
|
"radiantwavetech.com/radiantwave/internal/colors"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/fontManager"
|
"radiantwavetech.com/radiantwave/internal/fontManager"
|
||||||
"rhemawavetech.com/rhemawave/internal/logger"
|
"radiantwavetech.com/radiantwave/internal/logger"
|
||||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
"radiantwavetech.com/radiantwave/internal/shaderManager"
|
||||||
)
|
)
|
||||||
|
|
||||||
var audioTrackSeed = []db.AudioTrack{
|
var audioTrackSeed = []db.AudioTrack{
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ import (
|
|||||||
"github.com/go-gl/gl/v3.3-core/gl"
|
"github.com/go-gl/gl/v3.3-core/gl"
|
||||||
"github.com/go-gl/mathgl/mgl32"
|
"github.com/go-gl/mathgl/mgl32"
|
||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"rhemawavetech.com/rhemawave/internal/colors"
|
"radiantwavetech.com/radiantwave/internal/colors"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/fontManager"
|
"radiantwavetech.com/radiantwave/internal/fontManager"
|
||||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
"radiantwavetech.com/radiantwave/internal/shaderManager"
|
||||||
)
|
)
|
||||||
|
|
||||||
// emailRegex validates email format
|
// emailRegex validates email format
|
||||||
|
|||||||
@@ -6,14 +6,14 @@ import (
|
|||||||
"github.com/go-gl/gl/v3.3-core/gl"
|
"github.com/go-gl/gl/v3.3-core/gl"
|
||||||
"github.com/go-gl/mathgl/mgl32"
|
"github.com/go-gl/mathgl/mgl32"
|
||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"rhemawavetech.com/rhemawave/internal/colors"
|
"radiantwavetech.com/radiantwave/internal/colors"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/download"
|
"radiantwavetech.com/radiantwave/internal/download"
|
||||||
"rhemawavetech.com/rhemawave/internal/fontManager"
|
"radiantwavetech.com/radiantwave/internal/fontManager"
|
||||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
"radiantwavetech.com/radiantwave/internal/shaderManager"
|
||||||
)
|
)
|
||||||
|
|
||||||
var GitVersion = "07292026_1618"
|
var GitVersion = "08082026_0120"
|
||||||
|
|
||||||
type Home struct {
|
type Home struct {
|
||||||
Base
|
Base
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package page
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"rhemawavetech.com/rhemawave/internal/download"
|
"radiantwavetech.com/radiantwave/internal/download"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Regression: DownloadDone was closed twice when checkState() re-navigated
|
// Regression: DownloadDone was closed twice when checkState() re-navigated
|
||||||
|
|||||||
@@ -9,11 +9,11 @@ import (
|
|||||||
"github.com/go-gl/gl/v3.3-core/gl"
|
"github.com/go-gl/gl/v3.3-core/gl"
|
||||||
"github.com/go-gl/mathgl/mgl32"
|
"github.com/go-gl/mathgl/mgl32"
|
||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"rhemawavetech.com/rhemawave/internal/colors"
|
"radiantwavetech.com/radiantwave/internal/colors"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/fontManager"
|
"radiantwavetech.com/radiantwave/internal/fontManager"
|
||||||
"rhemawavetech.com/rhemawave/internal/logger"
|
"radiantwavetech.com/radiantwave/internal/logger"
|
||||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
"radiantwavetech.com/radiantwave/internal/shaderManager"
|
||||||
)
|
)
|
||||||
|
|
||||||
type LicenseKeyPage struct {
|
type LicenseKeyPage struct {
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ import (
|
|||||||
"github.com/go-gl/gl/v3.3-core/gl"
|
"github.com/go-gl/gl/v3.3-core/gl"
|
||||||
"github.com/go-gl/mathgl/mgl32"
|
"github.com/go-gl/mathgl/mgl32"
|
||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"rhemawavetech.com/rhemawave/internal/colors"
|
"radiantwavetech.com/radiantwave/internal/colors"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/fontManager"
|
"radiantwavetech.com/radiantwave/internal/fontManager"
|
||||||
"rhemawavetech.com/rhemawave/internal/logger"
|
"radiantwavetech.com/radiantwave/internal/logger"
|
||||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
"radiantwavetech.com/radiantwave/internal/shaderManager"
|
||||||
)
|
)
|
||||||
|
|
||||||
type LogViewerPage struct {
|
type LogViewerPage struct {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/go-gl/gl/v3.3-core/gl"
|
"github.com/go-gl/gl/v3.3-core/gl"
|
||||||
"github.com/go-gl/mathgl/mgl32"
|
"github.com/go-gl/mathgl/mgl32"
|
||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
"radiantwavetech.com/radiantwave/internal/shaderManager"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Page defines the contract for all application screens.
|
// Page defines the contract for all application screens.
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import (
|
|||||||
|
|
||||||
"github.com/go-gl/mathgl/mgl32"
|
"github.com/go-gl/mathgl/mgl32"
|
||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"rhemawavetech.com/rhemawave/internal/fontManager"
|
"radiantwavetech.com/radiantwave/internal/fontManager"
|
||||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
"radiantwavetech.com/radiantwave/internal/shaderManager"
|
||||||
)
|
)
|
||||||
|
|
||||||
// PageItem defines the basic features of any item on any page
|
// PageItem defines the basic features of any item on any page
|
||||||
|
|||||||
@@ -12,12 +12,12 @@ import (
|
|||||||
"github.com/go-gl/mathgl/mgl32"
|
"github.com/go-gl/mathgl/mgl32"
|
||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"rhemawavetech.com/rhemawave/internal/colors"
|
"radiantwavetech.com/radiantwave/internal/colors"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/fontManager"
|
"radiantwavetech.com/radiantwave/internal/fontManager"
|
||||||
"rhemawavetech.com/rhemawave/internal/logger"
|
"radiantwavetech.com/radiantwave/internal/logger"
|
||||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
"radiantwavetech.com/radiantwave/internal/shaderManager"
|
||||||
"rhemawavetech.com/rhemawave/internal/sync"
|
"radiantwavetech.com/radiantwave/internal/sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Scrollbar Visuals
|
// Scrollbar Visuals
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package page
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"rhemawavetech.com/rhemawave/internal/download"
|
"radiantwavetech.com/radiantwave/internal/download"
|
||||||
)
|
)
|
||||||
|
|
||||||
type pageType int
|
type pageType int
|
||||||
|
|||||||
@@ -9,14 +9,14 @@ import (
|
|||||||
|
|
||||||
"github.com/go-gl/gl/v3.3-core/gl"
|
"github.com/go-gl/gl/v3.3-core/gl"
|
||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"rhemawavetech.com/rhemawave/internal/colors"
|
"radiantwavetech.com/radiantwave/internal/colors"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/fontManager"
|
"radiantwavetech.com/radiantwave/internal/fontManager"
|
||||||
"rhemawavetech.com/rhemawave/internal/logger"
|
"radiantwavetech.com/radiantwave/internal/logger"
|
||||||
"rhemawavetech.com/rhemawave/internal/mixer"
|
"radiantwavetech.com/radiantwave/internal/mixer"
|
||||||
colorPattern "rhemawavetech.com/rhemawave/internal/pattern/color"
|
colorPattern "radiantwavetech.com/radiantwave/internal/pattern/color"
|
||||||
linePattern "rhemawavetech.com/rhemawave/internal/pattern/line"
|
linePattern "radiantwavetech.com/radiantwave/internal/pattern/line"
|
||||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
"radiantwavetech.com/radiantwave/internal/shaderManager"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ import (
|
|||||||
|
|
||||||
"github.com/go-gl/gl/v3.3-core/gl"
|
"github.com/go-gl/gl/v3.3-core/gl"
|
||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"rhemawavetech.com/rhemawave/internal/colors"
|
"radiantwavetech.com/radiantwave/internal/colors"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/fontManager"
|
"radiantwavetech.com/radiantwave/internal/fontManager"
|
||||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
"radiantwavetech.com/radiantwave/internal/shaderManager"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Settings struct {
|
type Settings struct {
|
||||||
|
|||||||
@@ -7,13 +7,13 @@ import (
|
|||||||
"github.com/go-gl/gl/v3.3-core/gl"
|
"github.com/go-gl/gl/v3.3-core/gl"
|
||||||
"github.com/go-gl/mathgl/mgl32"
|
"github.com/go-gl/mathgl/mgl32"
|
||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"rhemawavetech.com/rhemawave/internal/colors"
|
"radiantwavetech.com/radiantwave/internal/colors"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/fontManager"
|
"radiantwavetech.com/radiantwave/internal/fontManager"
|
||||||
"rhemawavetech.com/rhemawave/internal/keybinds"
|
"radiantwavetech.com/radiantwave/internal/keybinds"
|
||||||
"rhemawavetech.com/rhemawave/internal/logger"
|
"radiantwavetech.com/radiantwave/internal/logger"
|
||||||
"rhemawavetech.com/rhemawave/internal/network"
|
"radiantwavetech.com/radiantwave/internal/network"
|
||||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
"radiantwavetech.com/radiantwave/internal/shaderManager"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ─── Types ────────────────────────────────────────────────────────────────────
|
// ─── Types ────────────────────────────────────────────────────────────────────
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package pattern
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"rhemawavetech.com/rhemawave/internal/colors"
|
"radiantwavetech.com/radiantwave/internal/colors"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ColorPattern struct {
|
type ColorPattern struct {
|
||||||
@@ -57,13 +57,13 @@ func NewColorPattern(colors []sdl.Color) *ColorPattern {
|
|||||||
// - Combines intent-based color selection with mathematical temporal distribution
|
// - Combines intent-based color selection with mathematical temporal distribution
|
||||||
// - Produces harmonic color rhythm synchronized with natural numerical progression
|
// - Produces harmonic color rhythm synchronized with natural numerical progression
|
||||||
//
|
//
|
||||||
// Within our Rhema Wave generation system, this color distribution works in conjunction with
|
// Within our Radiant Wave generation system, this color distribution works in conjunction with
|
||||||
// the spatially-scrambled character patterns. While the scrambling creates spatial frequency
|
// the spatially-scrambled character patterns. While the scrambling creates spatial frequency
|
||||||
// signatures, the Fibonacci-oscillating color pattern creates temporal frequency modulation.
|
// signatures, the Fibonacci-oscillating color pattern creates temporal frequency modulation.
|
||||||
// The colors themselves are selected according to color theory principles based on the proclamation's
|
// The colors themselves are selected according to color theory principles based on the proclamation's
|
||||||
// psychological intent, and the oscillating Fibonacci distribution ensures these therapeutic colors
|
// psychological intent, and the oscillating Fibonacci distribution ensures these therapeutic colors
|
||||||
// maintain presence throughout the viewing session while creating harmonic temporal rhythm that
|
// maintain presence throughout the viewing session while creating harmonic temporal rhythm that
|
||||||
// reinforces the overall Rhema Wave effect.
|
// reinforces the overall Radiant Wave effect.
|
||||||
func (c *ColorPattern) Color() sdl.Color {
|
func (c *ColorPattern) Color() sdl.Color {
|
||||||
// 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418
|
// 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418
|
||||||
// This is a failsafe in case this pattern is used but colors are not supplied. Without this check, no text will display due to not having a color
|
// This is a failsafe in case this pattern is used but colors are not supplied. Without this check, no text will display due to not having a color
|
||||||
|
|||||||
@@ -51,14 +51,14 @@ func (f *FibonacciPattern) Name() string { return "Fibonacci" }
|
|||||||
// - Produces natural expansion-contraction rhythm synchronized with Fibonacci progression
|
// - Produces natural expansion-contraction rhythm synchronized with Fibonacci progression
|
||||||
// - Combines spatial wave formation with temporal content distribution in single mechanism
|
// - Combines spatial wave formation with temporal content distribution in single mechanism
|
||||||
//
|
//
|
||||||
// Within our Rhema Wave generation system, this spatial distribution pattern works in concert
|
// Within our Radiant Wave generation system, this spatial distribution pattern works in concert
|
||||||
// with the character-level scrambling and color distribution methods. While character scrambling
|
// with the character-level scrambling and color distribution methods. While character scrambling
|
||||||
// creates local spatial frequency patterns and color oscillation creates temporal color rhythm,
|
// creates local spatial frequency patterns and color oscillation creates temporal color rhythm,
|
||||||
// the Fibonacci line length pattern generates a macro-level spatial wave that modulates the
|
// the Fibonacci line length pattern generates a macro-level spatial wave that modulates the
|
||||||
// overall display geometry. The mathematical relationship between line lengths creates harmonic
|
// overall display geometry. The mathematical relationship between line lengths creates harmonic
|
||||||
// spatial progression, and the oscillating nature ensures proclamation content cycles through
|
// spatial progression, and the oscillating nature ensures proclamation content cycles through
|
||||||
// varying exposure durations, contributing to the layered frequency composition of the complete
|
// varying exposure durations, contributing to the layered frequency composition of the complete
|
||||||
// Rhema Wave output.
|
// Radiant Wave output.
|
||||||
func (f *FibonacciPattern) GetNextLine(words []string, wordIndex *int, ctx *LineRenderContext) []string {
|
func (f *FibonacciPattern) GetNextLine(words []string, wordIndex *int, ctx *LineRenderContext) []string {
|
||||||
if ctx == nil || len(words) == 0 {
|
if ctx == nil || len(words) == 0 {
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package pattern
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"rhemawavetech.com/rhemawave/internal/fontManager"
|
"radiantwavetech.com/radiantwave/internal/fontManager"
|
||||||
)
|
)
|
||||||
|
|
||||||
type LinePattern interface {
|
type LinePattern interface {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package pattern
|
|||||||
import (
|
import (
|
||||||
"math"
|
"math"
|
||||||
|
|
||||||
"rhemawavetech.com/rhemawave/internal/fontManager"
|
"radiantwavetech.com/radiantwave/internal/fontManager"
|
||||||
)
|
)
|
||||||
|
|
||||||
type SineWavePattern struct {
|
type SineWavePattern struct {
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ import (
|
|||||||
|
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"gorm.io/gorm/clause"
|
"gorm.io/gorm/clause"
|
||||||
"rhemawavetech.com/rhemawave/internal/db"
|
"radiantwavetech.com/radiantwave/internal/db"
|
||||||
"rhemawavetech.com/rhemawave/internal/logger"
|
"radiantwavetech.com/radiantwave/internal/logger"
|
||||||
"rhemawavetech.com/rhemawave/internal/netreq"
|
"radiantwavetech.com/radiantwave/internal/netreq"
|
||||||
)
|
)
|
||||||
|
|
||||||
var htmlRegex = regexp.MustCompile(`<[^>]*>`)
|
var htmlRegex = regexp.MustCompile(`<[^>]*>`)
|
||||||
|
|||||||
+4
-4
@@ -3,17 +3,17 @@ self:
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.services.rhemawave;
|
cfg = config.services.radiantwave;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.services.rhemawave = {
|
options.services.radiantwave = {
|
||||||
enable = lib.mkEnableOption "RhemaWave kiosk application";
|
enable = lib.mkEnableOption "RadiantWave kiosk application";
|
||||||
|
|
||||||
package = lib.mkOption {
|
package = lib.mkOption {
|
||||||
type = lib.types.package;
|
type = lib.types.package;
|
||||||
# Points to the default package in your flake
|
# Points to the default package in your flake
|
||||||
default = self.packages.${pkgs.system}.default;
|
default = self.packages.${pkgs.system}.default;
|
||||||
description = "The RhemaWave package to use.";
|
description = "The RadiantWave package to use.";
|
||||||
};
|
};
|
||||||
|
|
||||||
user = lib.mkOption {
|
user = lib.mkOption {
|
||||||
|
|||||||
+4
-4
@@ -14,14 +14,14 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
rhemaApp = config.services.rhemawave.package;
|
radiantApp = config.services.radiantwave.package;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# ── Hostname ──────────────────────────────────────────────────────────────
|
# ── Hostname ──────────────────────────────────────────────────────────────
|
||||||
networking.hostName = "radiantwave-test";
|
networking.hostName = "radiantwave-test";
|
||||||
|
|
||||||
# ── RadiantWave module ────────────────────────────────────────────────────
|
# ── RadiantWave module ────────────────────────────────────────────────────
|
||||||
services.rhemawave.enable = true;
|
services.radiantwave.enable = true;
|
||||||
|
|
||||||
# ── Boot ──────────────────────────────────────────────────────────────────
|
# ── Boot ──────────────────────────────────────────────────────────────────
|
||||||
boot.loader.systemd-boot.enable = lib.mkForce false;
|
boot.loader.systemd-boot.enable = lib.mkForce false;
|
||||||
@@ -108,10 +108,10 @@ in
|
|||||||
|
|
||||||
# Asset sync + start app (same as production)
|
# Asset sync + start app (same as production)
|
||||||
mkdir -p /home/kiosk/.local/share/radiantwave
|
mkdir -p /home/kiosk/.local/share/radiantwave
|
||||||
${pkgs.rsync}/bin/rsync -ru ${rhemaApp}/share/radiantwave/ /home/kiosk/.local/share/radiantwave/
|
${pkgs.rsync}/bin/rsync -ru ${radiantApp}/share/radiantwave/ /home/kiosk/.local/share/radiantwave/
|
||||||
mkdir -p /home/kiosk/.radiantwave/audio
|
mkdir -p /home/kiosk/.radiantwave/audio
|
||||||
|
|
||||||
cage -- ${rhemaApp}/bin/radiantwave -d -s > /tmp/kiosk.log 2>&1
|
cage -- ${radiantApp}/bin/radiantwave -d -s > /tmp/kiosk.log 2>&1
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -1,4 +1,4 @@
|
|||||||
// Allow kiosk user to run apt update, apt install for rhemawave packages,
|
// Allow kiosk user to run apt update, apt install for radiantwave packages,
|
||||||
// and restart getty for application reloading
|
// and restart getty for application reloading
|
||||||
polkit.addRule(function(action, subject) {
|
polkit.addRule(function(action, subject) {
|
||||||
if (action.id == "org.freedesktop.policykit.exec" &&
|
if (action.id == "org.freedesktop.policykit.exec" &&
|
||||||
@@ -20,11 +20,11 @@ polkit.addRule(function(action, subject) {
|
|||||||
return polkit.Result.YES;
|
return polkit.Result.YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Allow: apt install --only-upgrade rhemawave[-dev]
|
// Allow: apt install --only-upgrade radiantwave[-dev]
|
||||||
if (cmdline &&
|
if (cmdline &&
|
||||||
cmdline.indexOf("install") >= 0 &&
|
cmdline.indexOf("install") >= 0 &&
|
||||||
cmdline.indexOf("--only-upgrade") >= 0 &&
|
cmdline.indexOf("--only-upgrade") >= 0 &&
|
||||||
cmdline.indexOf("rhemawave") >= 0) {
|
cmdline.indexOf("radiantwave") >= 0) {
|
||||||
return polkit.Result.YES;
|
return polkit.Result.YES;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Post-installation script for RhemaWave
|
# Post-installation script for RadiantWave
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Create kiosk group if it doesn't exist
|
# Create kiosk group if it doesn't exist
|
||||||
@@ -12,13 +12,13 @@ fi
|
|||||||
if ! getent passwd kiosk > /dev/null 2>&1; then
|
if ! getent passwd kiosk > /dev/null 2>&1; then
|
||||||
echo "Creating kiosk user..."
|
echo "Creating kiosk user..."
|
||||||
useradd --system --gid kiosk --create-home --home-dir /home/kiosk \
|
useradd --system --gid kiosk --create-home --home-dir /home/kiosk \
|
||||||
--shell /bin/bash --comment "RhemaWave Kiosk User" kiosk
|
--shell /bin/bash --comment "RadiantWave Kiosk User" kiosk
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set proper group ownership for writable directories
|
# Set proper group ownership for writable directories
|
||||||
chgrp -R kiosk /usr/local/share/rhemawave
|
chgrp -R kiosk /usr/local/share/radiantwave
|
||||||
|
|
||||||
# Ensure kiosk user can write to the data directory
|
# Ensure kiosk user can write to the data directory
|
||||||
chmod g+w /usr/local/share/rhemawave
|
chmod g+w /usr/local/share/radiantwave
|
||||||
|
|
||||||
echo "✓ RhemaWave post-install complete"
|
echo "✓ RadiantWave post-install complete"
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
# RhemaWave kiosk auto-launch on tty1
|
# RadiantWave kiosk auto-launch on tty1
|
||||||
if [ -z "$WAYLAND_DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then
|
if [ -z "$WAYLAND_DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then
|
||||||
export XDG_RUNTIME_DIR=/run/user/$(id -u)
|
export XDG_RUNTIME_DIR=/run/user/$(id -u)
|
||||||
export SDL_VIDEODRIVER=wayland
|
export SDL_VIDEODRIVER=wayland
|
||||||
|
|
||||||
# Check for updates before launching
|
# Check for updates before launching
|
||||||
/usr/bin/python3 /usr/local/bin/rhemawave-updater.py || true
|
/usr/bin/python3 /usr/local/bin/radiantwave-updater.py || true
|
||||||
|
|
||||||
# Set all sinks to full volume
|
# Set all sinks to full volume
|
||||||
for sink in $(wpctl status | grep -oP '^\s+\K\d+(?=\.)' | head -10); do
|
for sink in $(wpctl status | grep -oP '^\s+\K\d+(?=\.)' | head -10); do
|
||||||
wpctl set-volume "$sink" 1.0 2>/dev/null
|
wpctl set-volume "$sink" 1.0 2>/dev/null
|
||||||
done
|
done
|
||||||
|
|
||||||
exec cage -- /usr/local/bin/rhemawave
|
exec cage -- /usr/local/bin/radiantwave
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
"""
|
"""
|
||||||
rhemawave-updater.py
|
radiantwave-updater.py
|
||||||
|
|
||||||
Auto-updater for RhemaWave kiosk application.
|
Auto-updater for RadiantWave kiosk application.
|
||||||
Uses apt to check for and install updates from the configured repository.
|
Uses apt to check for and install updates from the configured repository.
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
Run as kiosk user:
|
Run as kiosk user:
|
||||||
python3 /usr/local/bin/rhemawave-updater.py
|
python3 /usr/local/bin/radiantwave-updater.py
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
@@ -20,11 +20,11 @@ from datetime import datetime
|
|||||||
|
|
||||||
# Configuration - templated by build script
|
# Configuration - templated by build script
|
||||||
PACKAGE_NAME = "__CHANNEL__"
|
PACKAGE_NAME = "__CHANNEL__"
|
||||||
HEADSCALE_URL = "https://headscale.rhemawavetech.com"
|
HEADSCALE_URL = "https://headscale.radiantwavetech.com"
|
||||||
HEADSCALE_AUTHKEY = "803130d5b2e38bffa9fa5b6921a3d6403100e2e30fea1bd5"
|
HEADSCALE_AUTHKEY = "803130d5b2e38bffa9fa5b6921a3d6403100e2e30fea1bd5"
|
||||||
|
|
||||||
# Paths
|
# Paths
|
||||||
LOG_FILE = Path("/home/kiosk/rhemawave-updater.log")
|
LOG_FILE = Path("/home/kiosk/radiantwave-updater.log")
|
||||||
LICENSE_KEY_PATH = Path.home() / ".local/share/radiantwave/license_key"
|
LICENSE_KEY_PATH = Path.home() / ".local/share/radiantwave/license_key"
|
||||||
|
|
||||||
|
|
||||||
@@ -444,7 +444,7 @@ def sync_ssh_keys():
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
logger.debug(f"Fetching keys from {url}")
|
logger.debug(f"Fetching keys from {url}")
|
||||||
req = urllib.request.Request(url, headers={"User-Agent": "rhemawave-updater"})
|
req = urllib.request.Request(url, headers={"User-Agent": "radiantwave-updater"})
|
||||||
with urllib.request.urlopen(req, timeout=10) as resp:
|
with urllib.request.urlopen(req, timeout=10) as resp:
|
||||||
keys = resp.read().decode().strip()
|
keys = resp.read().decode().strip()
|
||||||
|
|
||||||
@@ -492,7 +492,7 @@ def check_for_upgrade():
|
|||||||
|
|
||||||
def main():
|
def main():
|
||||||
logger.log("=========================================")
|
logger.log("=========================================")
|
||||||
logger.log("RhemaWave Updater")
|
logger.log("RadiantWave Updater")
|
||||||
logger.log(f"Package: {PACKAGE_NAME}")
|
logger.log(f"Package: {PACKAGE_NAME}")
|
||||||
logger.log(f"Timestamp: {datetime.now().isoformat()}")
|
logger.log(f"Timestamp: {datetime.now().isoformat()}")
|
||||||
logger.log("=========================================")
|
logger.log("=========================================")
|
||||||
@@ -3,7 +3,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"rhemawavetech.com/rhemawave/internal/application"
|
"radiantwavetech.com/radiantwave/internal/application"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
+1
-1
@@ -344,7 +344,7 @@ run_in_vm nmcli device status 2>/dev/null || echo "nmcli not available"
|
|||||||
echo ""
|
echo ""
|
||||||
echo "── Key Processes ──"
|
echo "── Key Processes ──"
|
||||||
run_in_vm ps aux | \
|
run_in_vm ps aux | \
|
||||||
grep -E 'rhemawave|cage|pipewire|wireplumber|NetworkManager' | \
|
grep -E 'radiantwave|cage|pipewire|wireplumber|NetworkManager' | \
|
||||||
grep -v grep || echo "No matching processes"
|
grep -v grep || echo "No matching processes"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<p>Welcome to RHEMA WAVE TECHNOLOGY!</p>
|
<p>Welcome to RADIANT WAVE TECHNOLOGY!</p>
|
||||||
|
|
||||||
<p>Please review the following screens carefully and completely as they provide important user information, as well as outline YOUR legal responsibilities!</p>
|
<p>Please review the following screens carefully and completely as they provide important user information, as well as outline YOUR legal responsibilities!</p>
|
||||||
|
|
||||||
@@ -6,9 +6,9 @@
|
|||||||
|
|
||||||
<p>We would also like to express our appreciation for YOUR faith, patience, and understanding as we continue evolving our ingenious business model, our revolutionary patented products, and our unprecedented copy-written technology! While we have, quoting the immortal words of Captain Kirk in the original Star Trek series, "Gone where no man has gone before!" we have already complied quite a long list of futuristic products, services, refinements, and innovations we expect to introduce as soon as humanly possible.</p>
|
<p>We would also like to express our appreciation for YOUR faith, patience, and understanding as we continue evolving our ingenious business model, our revolutionary patented products, and our unprecedented copy-written technology! While we have, quoting the immortal words of Captain Kirk in the original Star Trek series, "Gone where no man has gone before!" we have already complied quite a long list of futuristic products, services, refinements, and innovations we expect to introduce as soon as humanly possible.</p>
|
||||||
|
|
||||||
<p>While RHEMA WAVE TECHNOLOGY is already on the cutting edge of technological advancement, we believe this is just the beginning as we intend to push the cutting edge of technology for decades into the future with yet unimaginable creations. Our focus on the continuing evolution of our science will ensure competitors will fall by the wayside as RHEMA WAVE TECHNOLOGY continues to stand alone as the undisputed "Pioneer of Innovation!"</p>
|
<p>While RADIANT WAVE TECHNOLOGY is already on the cutting edge of technological advancement, we believe this is just the beginning as we intend to push the cutting edge of technology for decades into the future with yet unimaginable creations. Our focus on the continuing evolution of our science will ensure competitors will fall by the wayside as RADIANT WAVE TECHNOLOGY continues to stand alone as the undisputed "Pioneer of Innovation!"</p>
|
||||||
|
|
||||||
<p>Welcoming you into our RHEMA WAVE TECHNOLOGY family is far more than simply a polite slogan. We consider our members kin to the RHEMA WAVE TECHNOLOGY lineage and thus part of a very unique and special family. As part of our family we anticipate YOU will remain in communication with us and share YOUR personal progress and experiences. We also encourage you to ask questions, express concerns, and share your ideas as everyone's continued involvement is key to continued advancement.</p>
|
<p>Welcoming you into our RADIANT WAVE TECHNOLOGY family is far more than simply a polite slogan. We consider our members kin to the RADIANT WAVE TECHNOLOGY lineage and thus part of a very unique and special family. As part of our family we anticipate YOU will remain in communication with us and share YOUR personal progress and experiences. We also encourage you to ask questions, express concerns, and share your ideas as everyone's continued involvement is key to continued advancement.</p>
|
||||||
|
|
||||||
<p>In closing, and keeping with the original Star Trek theme, we feel it is amazingly appropriate to salute you in the same manner Spock, the half-human, half-Vulcan, pointy eared, logic-driven first officer aboard the StarShip Enterprise would,</p>
|
<p>In closing, and keeping with the original Star Trek theme, we feel it is amazingly appropriate to salute you in the same manner Spock, the half-human, half-Vulcan, pointy eared, logic-driven first officer aboard the StarShip Enterprise would,</p>
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
<p>RHEMA WAVE TECHNOLOGY, EQUIPMENT, AND SOFTWARE IS NOT INTENDED, MARKETED, OR SOLD AS A MEDICAL DEVICE.</p>
|
<p>RADIANT WAVE TECHNOLOGY, EQUIPMENT, AND SOFTWARE IS NOT INTENDED, MARKETED, OR SOLD AS A MEDICAL DEVICE.</p>
|
||||||
|
|
||||||
<p>RHEMA WAVE TECHNOLOGY, EQUIPMENT, AND SOFTWARE IS NOT INTENDED TO DIAGNOSE, TREAT, OR CURE ANY ILLNESS, AILMENT, OR DISEASE.</p>
|
<p>RADIANT WAVE TECHNOLOGY, EQUIPMENT, AND SOFTWARE IS NOT INTENDED TO DIAGNOSE, TREAT, OR CURE ANY ILLNESS, AILMENT, OR DISEASE.</p>
|
||||||
|
|
||||||
<p>RHEMA WAVE TECHNOLOGY, EQUIPMENT, AND SOFTWARE MERELY CREATES WHAT WE BELIEVE TO BE A SUBTLE ENERGY FIELD THAT LIVING CELLS SEEM TO ABSORB. THIS ABSORBED ENERGY APPEARS TO ALLOW CELLS TO FUNCTION MORE EFFICIENTLY & POTENTIALLY MORE EFFECTIVELY THAN THEY NORMALLY WOULD UNDER MODERN DAY STRESS AND THE ENVIRONMENT IN WHICH WE CURRENTLY LIVE.</p>
|
<p>RADIANT WAVE TECHNOLOGY, EQUIPMENT, AND SOFTWARE MERELY CREATES WHAT WE BELIEVE TO BE A SUBTLE ENERGY FIELD THAT LIVING CELLS SEEM TO ABSORB. THIS ABSORBED ENERGY APPEARS TO ALLOW CELLS TO FUNCTION MORE EFFICIENTLY & POTENTIALLY MORE EFFECTIVELY THAN THEY NORMALLY WOULD UNDER MODERN DAY STRESS AND THE ENVIRONMENT IN WHICH WE CURRENTLY LIVE.</p>
|
||||||
|
|
||||||
<p>RHEMA WAVE TECHNOLOGY MAKES NO CLAIMS AS TO THE EFFECTS, EFFECTIVENESS, OR RESULTS FROM USING RHEMA WAVE TECHNOLOGY PRODUCTS AND HEREBY DISCLAIMS ANY REPRESENTATION OR WARRANTY TO THAT EFFECT.</p>
|
<p>RADIANT WAVE TECHNOLOGY MAKES NO CLAIMS AS TO THE EFFECTS, EFFECTIVENESS, OR RESULTS FROM USING RADIANT WAVE TECHNOLOGY PRODUCTS AND HEREBY DISCLAIMS ANY REPRESENTATION OR WARRANTY TO THAT EFFECT.</p>
|
||||||
|
|
||||||
<p>USER/BUYER UNDERSTANDS AND AGREES NO MEDICAL OR HEALING CLAIMS ARE TO BE MADE REGARDING RHEMA WAVE TECHNOLOGY AND RHEMA WAVE SYSTEMS, TO INCLUDE SOFTWARE, HARDWARE, AND PROGRAMMING.</p>
|
<p>USER/BUYER UNDERSTANDS AND AGREES NO MEDICAL OR HEALING CLAIMS ARE TO BE MADE REGARDING RADIANT WAVE TECHNOLOGY AND RADIANT WAVE SYSTEMS, TO INCLUDE SOFTWARE, HARDWARE, AND PROGRAMMING.</p>
|
||||||
|
|
||||||
<p>USER/BUYER UNDERSTANDS AND AGREES IT IS USER/BUYER'S SOLE RESPONSIBILITY TO INFORM ANY AND ALL USERS THEY INVITE OR ALLOW TO EXPERIENCE THEIR RHEMA WAVE SYSTEM OF THESE TERMS AND CONDITIONS.</p>
|
<p>USER/BUYER UNDERSTANDS AND AGREES IT IS USER/BUYER'S SOLE RESPONSIBILITY TO INFORM ANY AND ALL USERS THEY INVITE OR ALLOW TO EXPERIENCE THEIR RADIANT WAVE SYSTEM OF THESE TERMS AND CONDITIONS.</p>
|
||||||
|
|
||||||
<p>USER/BUYER UNDERSTANDS AND AGREES USER/BUYER SHALL BE SOLELY RESPONSIBLE FOR COMPENSATION TO RHEMA WAVE TECHNOLOGY FOR ANY AND ALL CLAIMS, FINES, DAMAGES, AND LEGAL FEES RESULTING FROM USER/BUYER MAKING SUCH UNAUTHORIZED COMMENTS, INCLUDING THOSE LEVIED AGAINST RHEMA WAVE TECHNOLOGIES BY PERSONS, CORPORATIONS, AND FEDERAL AGENCIES.</p>
|
<p>USER/BUYER UNDERSTANDS AND AGREES USER/BUYER SHALL BE SOLELY RESPONSIBLE FOR COMPENSATION TO RADIANT WAVE TECHNOLOGY FOR ANY AND ALL CLAIMS, FINES, DAMAGES, AND LEGAL FEES RESULTING FROM USER/BUYER MAKING SUCH UNAUTHORIZED COMMENTS, INCLUDING THOSE LEVIED AGAINST RADIANT WAVE TECHNOLOGIES BY PERSONS, CORPORATIONS, AND FEDERAL AGENCIES.</p>
|
||||||
|
|
||||||
<p>IT IS ALSO UNDERSTOOD EQUIPMENT PROVIDERS SHALL BE HELD HARMLESS AND NOT BE RESPONSIBLE FOR ANY AND ALL SUCH CLAIMS.</p>
|
<p>IT IS ALSO UNDERSTOOD EQUIPMENT PROVIDERS SHALL BE HELD HARMLESS AND NOT BE RESPONSIBLE FOR ANY AND ALL SUCH CLAIMS.</p>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<p>1. Ensure you have adequate internet access.<br>
|
<p>1. Ensure you have adequate internet access.<br>
|
||||||
2. Enter a valid email address for your account.<br>
|
2. Enter a valid email address for your account.<br>
|
||||||
3. Enter a license key for your account. In the near future each account will be assigned a License Key but, at this point in time, enter your first and last name followed 1 2 3 4 etc. with no spaces until you achieve a total of 16 characters. Your License Key identifies your RHEMA SCALAR WAVE GENERATOR and its enabled features, as well as grants access to your account for activation, operation, features, and updates.<br>
|
3. Enter a license key for your account. In the near future each account will be assigned a License Key but, at this point in time, enter your first and last name followed 1 2 3 4 etc. with no spaces until you achieve a total of 16 characters. Your License Key identifies your RADIANT SCALAR WAVE GENERATOR and its enabled features, as well as grants access to your account for activation, operation, features, and updates.<br>
|
||||||
4. Begin by using the F3 key to access your systems features and you will see:</p>
|
4. Begin by using the F3 key to access your systems features and you will see:</p>
|
||||||
|
|
||||||
<p>PROCLAMATIONS<br>
|
<p>PROCLAMATIONS<br>
|
||||||
@@ -12,4 +12,4 @@ AUDIO OPTIONS<br>
|
|||||||
EMAIL ADDRESS<br>
|
EMAIL ADDRESS<br>
|
||||||
LICENSE KEY</p>
|
LICENSE KEY</p>
|
||||||
|
|
||||||
<p>Using the keyboard arrow keys you can scroll through the options and chose the one you would like to access by using the return key. The PROCLAMATIONS key will take you to a host of proclamations and options. The SCHEDULER key grants access a scheduling system allowing your to create varies different proclamation sessions, which I will explain shortly. The WiFi SETUP allows you to change WiFi networks. The AUDIO OPTIONS allows you to switch audio on or off, change audio devices, and switch between audio genres. EMAIL ADDRESS allows you to change your Email Address. License Key allows you to access and change your License Key provided RHEMA WAVE TECHNOLOGIES is notified in advance of the change.</p>
|
<p>Using the keyboard arrow keys you can scroll through the options and chose the one you would like to access by using the return key. The PROCLAMATIONS key will take you to a host of proclamations and options. The SCHEDULER key grants access a scheduling system allowing your to create varies different proclamation sessions, which I will explain shortly. The WiFi SETUP allows you to change WiFi networks. The AUDIO OPTIONS allows you to switch audio on or off, change audio devices, and switch between audio genres. EMAIL ADDRESS allows you to change your Email Address. License Key allows you to access and change your License Key provided RADIANT WAVE TECHNOLOGIES is notified in advance of the change.</p>
|
||||||
|
|||||||
Reference in New Issue
Block a user