refactor: migrate from Codeberg to Gitea and rename rhemawave to radiantwave
- Update all Codeberg URLs to gitea.radiantwavetech.com/RadiantWaveTech/ - Rename flake inputs: rhemawave → radiantwave, rhemawave-dev → radiantwave-dev - Rename NixOS configs: rhemawavekiosk* → radiantwavekiosk* - Update systemd services, data paths, and binary references - Rename plymouth theme files - Update CI workflow, documentation, and build scripts
This commit is contained in:
@@ -25,16 +25,16 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
token: ${{ secrets.TOKEN }}
|
token: ${{ secrets.TOKEN }}
|
||||||
|
|
||||||
- name: Update rhemawave-dev
|
- name: Update radiantwave-dev
|
||||||
run: |
|
run: |
|
||||||
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
||||||
nix flake update rhemawave-dev
|
nix flake update radiantwave-dev
|
||||||
|
|
||||||
# This builds the system closure
|
# This builds the system closure
|
||||||
- name: Build dev VM
|
- name: Build dev VM
|
||||||
run: |
|
run: |
|
||||||
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
||||||
nix build -L .#nixosConfigurations.rhemawavekiosk-dev.config.system.build.toplevel
|
nix build -L .#nixosConfigurations.radiantwavekiosk-dev.config.system.build.toplevel
|
||||||
|
|
||||||
# If the closure builds, it's valid, even if incorrect and something is wrong.
|
# If the closure builds, it's valid, even if incorrect and something is wrong.
|
||||||
# That's why we build the ISO next, even for the dev branch, for testing
|
# That's why we build the ISO next, even for the dev branch, for testing
|
||||||
@@ -48,9 +48,9 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
git config user.email "ci@radiantwavetech.com"
|
git config user.email "ci@radiantwavetech.com"
|
||||||
git config user.name "RadiantWave CI"
|
git config user.name "RadiantWave CI"
|
||||||
git remote set-url origin https://oauth2:${{ secrets.FORGEJO_TOKEN }}@codeberg.org/RhemaWave-Technologies/KioskConfig.git
|
git remote set-url origin https://oauth2:${{ secrets.FORGEJO_TOKEN }}@gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig.git
|
||||||
git add flake.lock
|
git add flake.lock
|
||||||
git commit -m "chore: update rhemawave-dev to latest dev" || echo "Nothing to commit"
|
git commit -m "chore: update radiantwave-dev to latest dev" || echo "Nothing to commit"
|
||||||
git push
|
git push
|
||||||
|
|
||||||
- name: Notify
|
- name: Notify
|
||||||
@@ -64,4 +64,4 @@ jobs:
|
|||||||
subject: "${{ job.status == 'success' && '✅' || '❌' }} KioskConfig dev build ${{ job.status }}"
|
subject: "${{ job.status == 'success' && '✅' || '❌' }} KioskConfig dev build ${{ job.status }}"
|
||||||
to: cnclack@pm.me
|
to: cnclack@pm.me
|
||||||
from: ci@radiantwavetech.com
|
from: ci@radiantwavetech.com
|
||||||
body: "KioskConfig dev build ${{ job.status }} — rhemawave-dev updated and arstifacts copied to /ssd/radiantwave/build/"
|
body: "KioskConfig dev build ${{ job.status }} — radiantwave-dev updated and arstifacts copied to /ssd/radiantwave/build/"
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
## What this repo is
|
## What this repo is
|
||||||
|
|
||||||
NixOS flake that defines kiosk systems running the RadiantWave app. Not application code — this is the OS image and deployment configuration. The actual app lives in the `rhemawave` flake input (from Codeberg).
|
NixOS flake that defines kiosk systems running the RadiantWave app. Not application code — this is the OS image and deployment configuration. The actual app lives in the `radiantwave` flake input (from gitea.radiantwavetech.com).
|
||||||
|
|
||||||
Hosted on Codeberg: `https://codeberg.org/RhemaWave-Technologies/KioskConfig`
|
Hosted on Gitea: `https://gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig`
|
||||||
|
|
||||||
## Key commands
|
## Key commands
|
||||||
|
|
||||||
@@ -29,32 +29,32 @@ nix eval .#nixosConfigurations --apply builtins.attrNames
|
|||||||
|
|
||||||
| Name | Target hardware | Disk device | Notes |
|
| Name | Target hardware | Disk device | Notes |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| `rhemawavekiosk` | Intel NUC 14 (NVMe) | `/dev/nvme0n1` | Production, uses `rhemawave` main |
|
| `radiantwavekiosk` | Intel NUC 14 (NVMe) | `/dev/nvme0n1` | Production, uses `radiantwave` main |
|
||||||
| `rhemawavekiosk-dev` | Intel NUC 14 (NVMe) | `/dev/nvme0n1` | Dev, uses `rhemawave-dev` ref |
|
| `radiantwavekiosk-dev` | Intel NUC 14 (NVMe) | `/dev/nvme0n1` | Dev, uses `radiantwave-dev` ref |
|
||||||
| `rhemawavekiosk-commercial` | Commercial HW (SATA) | `/dev/sda` | Production |
|
| `radiantwavekiosk-commercial` | Commercial HW (SATA) | `/dev/sda` | Production |
|
||||||
| `rhemawavekiosk-commercial-dev` | Commercial HW (SATA) | `/dev/sda` | Dev |
|
| `radiantwavekiosk-commercial-dev` | Commercial HW (SATA) | `/dev/sda` | Dev |
|
||||||
| `rhemawavekiosk-android` | Intel NUC 14 | `/dev/nvme0n1` | + rotated display (portrait) |
|
| `radiantwavekiosk-android` | Intel NUC 14 | `/dev/nvme0n1` | + rotated display (portrait) |
|
||||||
| `rhemawavekiosk-rpi` | Raspberry Pi 5 | — | Uses `nixos-raspberrypi` |
|
| `radiantwavekiosk-rpi` | Raspberry Pi 5 | — | Uses `nixos-raspberrypi` |
|
||||||
| `rhemawavekiosk-rpi-dev` | Raspberry Pi 5 | — | Dev, uses `rhemawave-dev` |
|
| `radiantwavekiosk-rpi-dev` | Raspberry Pi 5 | — | Dev, uses `radiantwave-dev` |
|
||||||
|
|
||||||
ISOs: `usb-iso`, `commercial-usb-iso`, `android-iso`, `dev-iso` — each bakes in the corresponding system closure for zero-touch install.
|
ISOs: `usb-iso`, `commercial-usb-iso`, `android-iso`, `dev-iso` — each bakes in the corresponding system closure for zero-touch install.
|
||||||
|
|
||||||
## Branching model
|
## Branching model
|
||||||
|
|
||||||
Single branch (`main`). Production vs. dev split is at the **flake input** level (`rhemawave` vs `rhemawave-dev`), not at the branch level.
|
Single branch (`main`). Production vs. dev split is at the **flake input** level (`radiantwave` vs `radiantwave-dev`), not at the branch level.
|
||||||
|
|
||||||
## CI (Forgejo)
|
## CI (Forgejo)
|
||||||
|
|
||||||
`.forgejo/workflows/build-dev.yml` — triggered by `repository_dispatch` (`radiantwave-dev-built`) from the RadiantWave repo. Updates `rhemawave-dev` input, builds dev closure + ISO, commits updated `flake.lock`. Runs on `neils-server-runner`.
|
`.forgejo/workflows/build-dev.yml` — triggered by `repository_dispatch` (`radiantwave-dev-built`) from the RadiantWave repo. Updates `radiantwave-dev` input, builds dev closure + ISO, commits updated `flake.lock`. Runs on `neils-server-runner`.
|
||||||
|
|
||||||
## Important gotchas
|
## Important gotchas
|
||||||
|
|
||||||
- **Disk device differs by variant**: `disk-config.nix` uses `/dev/nvme0n1`, `commercial-disk-config.nix` uses `/dev/sda`. Don't mix them up.
|
- **Disk device differs by variant**: `disk-config.nix` uses `/dev/nvme0n1`, `commercial-disk-config.nix` uses `/dev/sda`. Don't mix them up.
|
||||||
- **ISO configs reference specific system closures**: `iso-config.nix` hardcodes `rhemawavekiosk`, `dev-iso.nix` hardcodes `rhemawavekiosk-dev`, `commercial-iso-config.nix` hardcodes `rhemawavekiosk-commercial`. Changing a config name in `flake.nix` requires updating the corresponding ISO config.
|
- **ISO configs reference specific system closures**: `iso-config.nix` hardcodes `radiantwavekiosk`, `dev-iso.nix` hardcodes `radiantwavekiosk-dev`, `commercial-iso-config.nix` hardcodes `radiantwavekiosk-commercial`. Changing a config name in `flake.nix` requires updating the corresponding ISO config.
|
||||||
- **Attic cache token**: ISO configs embed a JWT token for Attic in `/etc/nix/netrc`. If builds fail with auth errors, the token may have expired (expiry in the JWT payload).
|
- **Attic cache token**: ISO configs embed a JWT token for Attic in `/etc/nix/netrc`. If builds fail with auth errors, the token may have expired (expiry in the JWT payload).
|
||||||
- **`rotated_display.nix` uses `mkForce`** on `loginShellInit` — it replaces the entire kiosk startup script from `configuration.nix`, don't edit both.
|
- **`rotated_display.nix` uses `mkForce`** on `loginShellInit` — it replaces the entire kiosk startup script from `configuration.nix`, don't edit both.
|
||||||
- **SOPS**: `.sops.yaml` configures age-based encryption for `secrets.yaml`. You'll need the private key matching `age1t2wpzv...` to decrypt.
|
- **SOPS**: `.sops.yaml` configures age-based encryption for `secrets.yaml`. You'll need the private key matching `age1t2wpzv...` to decrypt.
|
||||||
- **Flake inputs**: `rhemawave` tracks main, `rhemawave-dev` tracks `?ref=dev`. Updating them independently is intentional.
|
- **Flake inputs**: `radiantwave` tracks main, `radiantwave-dev` tracks `?ref=dev`. Updating them independently is intentional.
|
||||||
|
|
||||||
## File map
|
## File map
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
CONFIG="rhemawavekiosk-rpi"
|
CONFIG="radiantwavekiosk-rpi"
|
||||||
VARIANT=""
|
VARIANT=""
|
||||||
|
|
||||||
for arg in "$@"; do
|
for arg in "$@"; do
|
||||||
case "$arg" in
|
case "$arg" in
|
||||||
--dev) CONFIG="rhemawavekiosk-rpi-dev"; VARIANT="-dev" ;;
|
--dev) CONFIG="radiantwavekiosk-rpi-dev"; VARIANT="-dev" ;;
|
||||||
*) echo "Unknown arg: $arg"; exit 1 ;;
|
*) echo "Unknown arg: $arg"; exit 1 ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|||||||
+5
-5
@@ -2,11 +2,11 @@ Build ISO installer
|
|||||||
nix build .#nixosConfigurations.installer-iso.config.system.build.isoImage
|
nix build .#nixosConfigurations.installer-iso.config.system.build.isoImage
|
||||||
|
|
||||||
Build kiosk system and push to Attic cache
|
Build kiosk system and push to Attic cache
|
||||||
nix build .#nixosConfigurations.rhemawavekiosk.config.system.build.toplevel
|
nix build .#nixosConfigurations.radiantwavekiosk.config.system.build.toplevel
|
||||||
attic push kiosk ./result
|
attic push kiosk ./result
|
||||||
|
|
||||||
Deploy to a specific kiosk over SSH
|
Deploy to a specific kiosk over SSH
|
||||||
nixos-rebuild switch --flake .#rhemawavekiosk --target-host root@<host>
|
nixos-rebuild switch --flake .#radiantwavekiosk --target-host root@<host>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ The build commands follow the flake output attribute tree. Start with `flake.nix
|
|||||||
|
|
||||||
```nix
|
```nix
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
rhemawavekiosk = nixpkgs.lib.nixosSystem { ... }; # production machine
|
radiantwavekiosk = nixpkgs.lib.nixosSystem { ... }; # production machine
|
||||||
installer-iso = nixpkgs.lib.nixosSystem { ... }; # USB installer
|
installer-iso = nixpkgs.lib.nixosSystem { ... }; # USB installer
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
@@ -31,7 +31,7 @@ by walking the attribute tree with dots:
|
|||||||
│ │ │ toplevel = full system closure
|
│ │ │ toplevel = full system closure
|
||||||
│ │ │ isoImage = bootable ISO
|
│ │ │ isoImage = bootable ISO
|
||||||
│ │ │
|
│ │ │
|
||||||
│ │ └─ name from flake.nix (rhemawavekiosk, installer-iso)
|
│ │ └─ name from flake.nix (radiantwavekiosk, installer-iso)
|
||||||
│ │
|
│ │
|
||||||
│ └─ nixosConfigurations = standard flake output for NixOS systems
|
│ └─ nixosConfigurations = standard flake output for NixOS systems
|
||||||
│
|
│
|
||||||
@@ -40,4 +40,4 @@ by walking the attribute tree with dots:
|
|||||||
|
|
||||||
You can explore what's available with:
|
You can explore what's available with:
|
||||||
nix eval .#nixosConfigurations --apply builtins.attrNames
|
nix eval .#nixosConfigurations --apply builtins.attrNames
|
||||||
nix eval .#nixosConfigurations.rhemawavekiosk.config.system.build --apply builtins.attrNames
|
nix eval .#nixosConfigurations.radiantwavekiosk.config.system.build --apply builtins.attrNames
|
||||||
|
|||||||
@@ -6,12 +6,12 @@
|
|||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
# TODO: Parameterize this to combine with iso-config.nix
|
# TODO: Parameterize this to combine with iso-config.nix
|
||||||
# Currently hardcoded to rhemawavekiosk-commercial; should accept target config as param
|
# Currently hardcoded to radiantwavekiosk-commercial; should accept target config as param
|
||||||
targetSystem =
|
targetSystem =
|
||||||
self.nixosConfigurations.rhemawavekiosk-commercial.config.system.build.toplevel;
|
self.nixosConfigurations.radiantwavekiosk-commercial.config.system.build.toplevel;
|
||||||
|
|
||||||
diskoScript =
|
diskoScript =
|
||||||
self.nixosConfigurations.rhemawavekiosk-commercial.config.system.build.diskoScript;
|
self.nixosConfigurations.radiantwavekiosk-commercial.config.system.build.diskoScript;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
@@ -105,7 +105,7 @@ in
|
|||||||
|
|
||||||
${diskoScript}
|
${diskoScript}
|
||||||
|
|
||||||
echo "Installing RhemaWave"
|
echo "Installing RadiantWave"
|
||||||
echo "Closure Path: ${targetSystem}"
|
echo "Closure Path: ${targetSystem}"
|
||||||
|
|
||||||
nixos-install \
|
nixos-install \
|
||||||
|
|||||||
+15
-15
@@ -1,14 +1,14 @@
|
|||||||
{ pkgs, rhemawave, upgradeFlakeRef, ... }:
|
{ pkgs, radiantwave, upgradeFlakeRef, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
rhemaApp = rhemawave.packages.${pkgs.system}.default;
|
radiantApp = radiantwave.packages.${pkgs.system}.default;
|
||||||
myKey = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB4vXx7sOOVAyxdS/N1LEI+L8wYICf+gbzs6Kz7K8Je5 cnclack@pm.me:Thinkpad" ];
|
myKey = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB4vXx7sOOVAyxdS/N1LEI+L8wYICf+gbzs6Kz7K8Je5 cnclack@pm.me:Thinkpad" ];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# Included packages
|
# Included packages
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
pkgs.cage pkgs.rsync pkgs.dbus pkgs.mesa pkgs.git pkgs.tailscale pkgs.sqlite
|
pkgs.cage pkgs.rsync pkgs.dbus pkgs.mesa pkgs.git pkgs.tailscale pkgs.sqlite
|
||||||
rhemaApp
|
radiantApp
|
||||||
];
|
];
|
||||||
|
|
||||||
# This populates the EFI partition and tells the NUC how to start NixOS.
|
# This populates the EFI partition and tells the NUC how to start NixOS.
|
||||||
@@ -53,15 +53,15 @@ in
|
|||||||
|
|
||||||
# --- Set ownership of Radiantwave files ---
|
# --- Set ownership of Radiantwave files ---
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"d /home/kiosk/.local/share/rhemawave 0770 kiosk kiosk -"
|
"d /home/kiosk/.local/share/radiantwave 0770 kiosk kiosk -"
|
||||||
];
|
];
|
||||||
|
|
||||||
system.activationScripts.cleanRadiantFiles = ''
|
system.activationScripts.cleanRadiantFiles = ''
|
||||||
rm -rf /home/kiosk/.local/share/rhemawave/audio
|
rm -rf /home/kiosk/.local/share/radiantwave/audio
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# --- Backup service: runs before nixos-upgrade ---
|
# --- Backup service: runs before nixos-upgrade ---
|
||||||
systemd.services.rhemawave-backup = {
|
systemd.services.radiantwave-backup = {
|
||||||
description = "Backup RadiantWave user data before upgrade";
|
description = "Backup RadiantWave user data before upgrade";
|
||||||
before = [ "nixos-upgrade.service" ];
|
before = [ "nixos-upgrade.service" ];
|
||||||
wantedBy = [ "nixos-upgrade.service" ];
|
wantedBy = [ "nixos-upgrade.service" ];
|
||||||
@@ -70,8 +70,8 @@ in
|
|||||||
User = "kiosk";
|
User = "kiosk";
|
||||||
};
|
};
|
||||||
script = ''
|
script = ''
|
||||||
BACKUP_DIR="/home/kiosk/.local/share/rhemawave-backup"
|
BACKUP_DIR="/home/kiosk/.local/share/radiantwave-backup"
|
||||||
SOURCE_DIR="/home/kiosk/.local/share/rhemawave"
|
SOURCE_DIR="/home/kiosk/.local/share/radiantwave"
|
||||||
|
|
||||||
mkdir -p "$BACKUP_DIR"
|
mkdir -p "$BACKUP_DIR"
|
||||||
|
|
||||||
@@ -84,17 +84,17 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
# --- Health check service: runs after nixos-upgrade ---
|
# --- Health check service: runs after nixos-upgrade ---
|
||||||
systemd.services.rhemawave-healthcheck = {
|
systemd.services.radiantwave-healthcheck = {
|
||||||
description = "Verify RadiantWave is running after upgrade, rollback if not";
|
description = "Verify RadiantWave is running after upgrade, rollback if not";
|
||||||
after = [ "nixos-upgrade.service" ];
|
after = [ "nixos-upgrade.service" ];
|
||||||
wantedBy = [ "nixos-upgrade.service" ];
|
wantedBy = [ "nixos-upgrade.service" ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
# Give cage time to start rhemawave after the switch
|
# Give cage time to start radiantwave after the switch
|
||||||
ExecStartPre = "${pkgs.coreutils}/bin/sleep 90";
|
ExecStartPre = "${pkgs.coreutils}/bin/sleep 90";
|
||||||
};
|
};
|
||||||
script = ''
|
script = ''
|
||||||
if ${pkgs.procps}/bin/pgrep -x rhemawave > /dev/null; then
|
if ${pkgs.procps}/bin/pgrep -x radiantwave > /dev/null; then
|
||||||
echo "RadiantWave is running, upgrade successful"
|
echo "RadiantWave is running, upgrade successful"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@@ -130,10 +130,10 @@ in
|
|||||||
export WLR_NO_HARDWARE_CURSORS=1
|
export WLR_NO_HARDWARE_CURSORS=1
|
||||||
|
|
||||||
# Asset sync + start app
|
# Asset sync + start app
|
||||||
mkdir -p /home/kiosk/.local/share/rhemawave
|
mkdir -p /home/kiosk/.local/share/radiantwave
|
||||||
${pkgs.rsync}/bin/rsync -ru ${rhemaApp}/share/rhemawave/ /home/kiosk/.local/share/rhemawave/
|
${pkgs.rsync}/bin/rsync -ru ${radiantApp}/share/radiantwave/ /home/kiosk/.local/share/radiantwave/
|
||||||
|
|
||||||
exec dbus-run-session cage -- ${rhemaApp}/bin/rhemawave -d -s > /tmp/kiosk.log 2>&1
|
exec dbus-run-session cage -- ${radiantApp}/bin/radiantwave -d -s > /tmp/kiosk.log 2>&1
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
|
||||||
@@ -154,7 +154,7 @@ in
|
|||||||
# };
|
# };
|
||||||
|
|
||||||
# systemd.services.tailscale-set-hostname = {
|
# systemd.services.tailscale-set-hostname = {
|
||||||
# description = "Set Tailscale hostname based on the RhemaWave license key";
|
# description = "Set Tailscale hostname based on the RadiantWave license key";
|
||||||
# after = [ "tailscale-autoconnect.service" ];
|
# after = [ "tailscale-autoconnect.service" ];
|
||||||
# wants = [ "tailscaled.service" ];
|
# wants = [ "tailscaled.service" ];
|
||||||
# wantedBy = [ "multi-user.target" ];
|
# wantedBy = [ "multi-user.target" ];
|
||||||
|
|||||||
+3
-3
@@ -6,11 +6,11 @@
|
|||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
targetSystem =
|
targetSystem =
|
||||||
self.nixosConfigurations.rhemawavekiosk-dev.config.system.build.toplevel;
|
self.nixosConfigurations.radiantwavekiosk-dev.config.system.build.toplevel;
|
||||||
|
|
||||||
# 🔧 FIX: prebuilt disko script (restores v1.0.1 behavior)
|
# 🔧 FIX: prebuilt disko script (restores v1.0.1 behavior)
|
||||||
diskoScript =
|
diskoScript =
|
||||||
self.nixosConfigurations.rhemawavekiosk-dev.config.system.build.diskoScript;
|
self.nixosConfigurations.radiantwavekiosk-dev.config.system.build.diskoScript;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
@@ -109,7 +109,7 @@ in
|
|||||||
# 🔧 FIX: use prebuilt script instead of runtime disko eval
|
# 🔧 FIX: use prebuilt script instead of runtime disko eval
|
||||||
${diskoScript}
|
${diskoScript}
|
||||||
|
|
||||||
echo "Installing RhemaWave"
|
echo "Installing RadiantWave"
|
||||||
echo "Closure Path: ${targetSystem}"
|
echo "Closure Path: ${targetSystem}"
|
||||||
|
|
||||||
nixos-install \
|
nixos-install \
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
disko.url = "github:nix-community/disko";
|
disko.url = "github:nix-community/disko";
|
||||||
disko.inputs.nixpkgs.follows = "nixpkgs";
|
disko.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
|
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
|
||||||
rhemawave.url = "git+https://codeberg.org/RhemaWave-Technologies/RhemaWave.git";
|
radiantwave.url = "git+https://gitea.radiantwavetech.com/RadiantWaveTech/RhemaWave.git";
|
||||||
rhemawave-dev.url = "git+https://codeberg.org/RhemaWave-Technologies/RhemaWave.git?ref=dev";
|
radiantwave-dev.url = "git+https://gitea.radiantwavetech.com/RadiantWaveTech/RhemaWave.git?ref=dev";
|
||||||
nixos-raspberrypi.url = "github:nvmd/nixos-raspberrypi/main";
|
nixos-raspberrypi.url = "github:nvmd/nixos-raspberrypi/main";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -15,20 +15,20 @@
|
|||||||
nixpkgs,
|
nixpkgs,
|
||||||
disko,
|
disko,
|
||||||
nixos-facter-modules,
|
nixos-facter-modules,
|
||||||
rhemawave,
|
radiantwave,
|
||||||
rhemawave-dev,
|
radiantwave-dev,
|
||||||
nixos-raspberrypi,
|
nixos-raspberrypi,
|
||||||
...
|
...
|
||||||
}@inputs:
|
}@inputs:
|
||||||
let
|
let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
|
|
||||||
mkKioskSystem = { system, rhemawave, upgradeFlakeRef, extraModules ? [], diskModule, enableAutoUpgrade ? true, extraSpecialArgs ? {}}:
|
mkKioskSystem = { system, radiantwave, upgradeFlakeRef, extraModules ? [], diskModule, enableAutoUpgrade ? true, extraSpecialArgs ? {}}:
|
||||||
nixpkgs.lib.nixosSystem {
|
nixpkgs.lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
|
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit rhemawave;
|
inherit radiantwave;
|
||||||
inherit upgradeFlakeRef;
|
inherit upgradeFlakeRef;
|
||||||
} // extraSpecialArgs;
|
} // extraSpecialArgs;
|
||||||
|
|
||||||
@@ -38,14 +38,14 @@
|
|||||||
diskModule
|
diskModule
|
||||||
nixos-facter-modules.nixosModules.facter
|
nixos-facter-modules.nixosModules.facter
|
||||||
{ facter.reportPath = ./facter.json; }
|
{ facter.reportPath = ./facter.json; }
|
||||||
rhemawave.nixosModules.default
|
radiantwave.nixosModules.default
|
||||||
] ++ extraModules;
|
] ++ extraModules;
|
||||||
};
|
};
|
||||||
|
|
||||||
mkRpiKioskSystem = { rhemawave, upgradeFlakeRef, extraModules ? [], enableAutoUpgrade ? true }:
|
mkRpiKioskSystem = { radiantwave, upgradeFlakeRef, extraModules ? [], enableAutoUpgrade ? true }:
|
||||||
nixos-raspberrypi.lib.nixosSystem {
|
nixos-raspberrypi.lib.nixosSystem {
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit rhemawave upgradeFlakeRef;
|
inherit radiantwave upgradeFlakeRef;
|
||||||
inherit nixos-raspberrypi;
|
inherit nixos-raspberrypi;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
];
|
];
|
||||||
})
|
})
|
||||||
./configuration.nix
|
./configuration.nix
|
||||||
rhemawave.nixosModules.default
|
radiantwave.nixosModules.default
|
||||||
{
|
{
|
||||||
# system.autoUpgrade = {
|
# system.autoUpgrade = {
|
||||||
# enable = enableAutoUpgrade;
|
# enable = enableAutoUpgrade;
|
||||||
@@ -83,53 +83,53 @@
|
|||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
packages.x86_64-linux.rhemawavekiosk = self.nixosConfigurations.rhemawavekiosk.config.system.build.toplevel;
|
packages.x86_64-linux.radiantwavekiosk = self.nixosConfigurations.radiantwavekiosk.config.system.build.toplevel;
|
||||||
packages.x86_64-linux.rhemawavekiosk-dev = self.nixosConfigurations.rhemawavekiosk-dev.config.system.build.toplevel;
|
packages.x86_64-linux.radiantwavekiosk-dev = self.nixosConfigurations.radiantwavekiosk-dev.config.system.build.toplevel;
|
||||||
packages.x86_64-linux.rhemawavekiosk-commercial = self.nixosConfigurations.rhemawavekiosk-commercial.config.system.build.toplevel;
|
packages.x86_64-linux.radiantwavekiosk-commercial = self.nixosConfigurations.radiantwavekiosk-commercial.config.system.build.toplevel;
|
||||||
packages.x86_64-linux.rhemawavekiosk-android = self.nixosConfigurations.rhemawavekiosk-android.config.system.build.toplevel;
|
packages.x86_64-linux.radiantwavekiosk-android = self.nixosConfigurations.radiantwavekiosk-android.config.system.build.toplevel;
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
rhemawavekiosk = mkKioskSystem {
|
radiantwavekiosk = mkKioskSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
rhemawave = rhemawave;
|
radiantwave = radiantwave;
|
||||||
diskModule = ./disk-config.nix;
|
diskModule = ./disk-config.nix;
|
||||||
upgradeFlakeRef = "git+https://codeberg.org/RhemaWave-Technologies/KioskConfig.git#rhemawavekiosk";
|
upgradeFlakeRef = "git+https://gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig.git#radiantwavekiosk";
|
||||||
extraModules = [];
|
extraModules = [];
|
||||||
};
|
};
|
||||||
rhemawavekiosk-dev = mkKioskSystem {
|
radiantwavekiosk-dev = mkKioskSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
rhemawave = rhemawave-dev;
|
radiantwave = radiantwave-dev;
|
||||||
diskModule = ./disk-config.nix;
|
diskModule = ./disk-config.nix;
|
||||||
upgradeFlakeRef = "git+https://codeberg.org/RhemaWave-Technologies/KioskConfig.git?ref=dev#rhemawavekiosk-dev";
|
upgradeFlakeRef = "git+https://gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig.git?ref=dev#radiantwavekiosk-dev";
|
||||||
extraModules = [];
|
extraModules = [];
|
||||||
};
|
};
|
||||||
rhemawavekiosk-commercial = mkKioskSystem {
|
radiantwavekiosk-commercial = mkKioskSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
rhemawave = rhemawave;
|
radiantwave = radiantwave;
|
||||||
diskModule = ./commercial-disk-config.nix;
|
diskModule = ./commercial-disk-config.nix;
|
||||||
upgradeFlakeRef = "git+https://codeberg.org/RhemaWave-Technologies/KioskConfig.git#rhemawavekiosk-commercial";
|
upgradeFlakeRef = "git+https://gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig.git#radiantwavekiosk-commercial";
|
||||||
extraModules = [];
|
extraModules = [];
|
||||||
};
|
};
|
||||||
rhemawavekiosk-commercial-dev = mkKioskSystem {
|
radiantwavekiosk-commercial-dev = mkKioskSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
rhemawave = rhemawave;
|
radiantwave = radiantwave;
|
||||||
diskModule = ./commercial-disk-config.nix;
|
diskModule = ./commercial-disk-config.nix;
|
||||||
upgradeFlakeRef = "git+https://codeberg.org/RhemaWave-Technologies/KioskConfig.git?ref=dev#rhemawavekiosk-commercial";
|
upgradeFlakeRef = "git+https://gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig.git?ref=dev#radiantwavekiosk-commercial";
|
||||||
extraModules = [];
|
extraModules = [];
|
||||||
};
|
};
|
||||||
rhemawavekiosk-android = mkKioskSystem {
|
radiantwavekiosk-android = mkKioskSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
rhemawave = rhemawave;
|
radiantwave = radiantwave;
|
||||||
diskModule = ./disk-config.nix;
|
diskModule = ./disk-config.nix;
|
||||||
upgradeFlakeRef = "git+https://codeberg.org/RhemaWave-Technologies/KioskConfig.git#rhemawavekiosk-android";
|
upgradeFlakeRef = "git+https://gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig.git#radiantwavekiosk-android";
|
||||||
extraModules = [./rotated_display.nix ];
|
extraModules = [./rotated_display.nix ];
|
||||||
};
|
};
|
||||||
rhemawavekiosk-rpi = mkRpiKioskSystem {
|
radiantwavekiosk-rpi = mkRpiKioskSystem {
|
||||||
rhemawave = rhemawave;
|
radiantwave = radiantwave;
|
||||||
upgradeFlakeRef = "git+https://codeberg.org/RhemaWave-Technologies/KioskConfig.git#rhemawavekiosk-rpi";
|
upgradeFlakeRef = "git+https://gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig.git#radiantwavekiosk-rpi";
|
||||||
};
|
};
|
||||||
rhemawavekiosk-rpi-dev = mkRpiKioskSystem {
|
radiantwavekiosk-rpi-dev = mkRpiKioskSystem {
|
||||||
rhemawave = rhemawave-dev;
|
radiantwave = radiantwave-dev;
|
||||||
upgradeFlakeRef = "git+https://codeberg.org/RhemaWave-Technologies/KioskConfig.git?ref=dev#rhemawavekiosk-rpi-dev";
|
upgradeFlakeRef = "git+https://gitea.radiantwavetech.com/RadiantWaveTech/KioskConfig.git?ref=dev#radiantwavekiosk-rpi-dev";
|
||||||
};
|
};
|
||||||
usb-iso = nixpkgs.lib.nixosSystem {
|
usb-iso = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
@@ -147,7 +147,7 @@
|
|||||||
disko.packages.${system}.default
|
disko.packages.${system}.default
|
||||||
];
|
];
|
||||||
isoImage.storeContents = [
|
isoImage.storeContents = [
|
||||||
self.packages.x86_64-linux.rhemawavekiosk
|
self.packages.x86_64-linux.radiantwavekiosk
|
||||||
];
|
];
|
||||||
environment.etc."disko-config.nix".source = ./disk-config.nix;
|
environment.etc."disko-config.nix".source = ./disk-config.nix;
|
||||||
})
|
})
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
disko.packages.${system}.default
|
disko.packages.${system}.default
|
||||||
];
|
];
|
||||||
isoImage.storeContents = [
|
isoImage.storeContents = [
|
||||||
self.packages.x86_64-linux.rhemawavekiosk-commercial
|
self.packages.x86_64-linux.radiantwavekiosk-commercial
|
||||||
];
|
];
|
||||||
environment.etc."disko-config.nix".source = ./commercial-disk-config.nix;
|
environment.etc."disko-config.nix".source = ./commercial-disk-config.nix;
|
||||||
})
|
})
|
||||||
@@ -192,7 +192,7 @@
|
|||||||
disko.packages.${system}.default
|
disko.packages.${system}.default
|
||||||
];
|
];
|
||||||
isoImage.storeContents = [
|
isoImage.storeContents = [
|
||||||
self.packages.x86_64-linux.rhemawavekiosk-android
|
self.packages.x86_64-linux.radiantwavekiosk-android
|
||||||
];
|
];
|
||||||
environment.etc."disko-config.nix".source = ./disk-config.nix;
|
environment.etc."disko-config.nix".source = ./disk-config.nix;
|
||||||
})
|
})
|
||||||
@@ -214,7 +214,7 @@
|
|||||||
disko.packages.${system}.default
|
disko.packages.${system}.default
|
||||||
];
|
];
|
||||||
isoImage.storeContents = [
|
isoImage.storeContents = [
|
||||||
self.packages.x86_64-linux.rhemawavekiosk-dev
|
self.packages.x86_64-linux.radiantwavekiosk-dev
|
||||||
];
|
];
|
||||||
environment.etc."disko-config.nix".source = ./disk-config.nix;
|
environment.etc."disko-config.nix".source = ./disk-config.nix;
|
||||||
})
|
})
|
||||||
|
|||||||
+3
-3
@@ -6,10 +6,10 @@
|
|||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
targetSystem =
|
targetSystem =
|
||||||
self.nixosConfigurations.rhemawavekiosk.config.system.build.toplevel;
|
self.nixosConfigurations.radiantwavekiosk.config.system.build.toplevel;
|
||||||
|
|
||||||
diskoScript =
|
diskoScript =
|
||||||
self.nixosConfigurations.rhemawavekiosk.config.system.build.diskoScript;
|
self.nixosConfigurations.radiantwavekiosk.config.system.build.diskoScript;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
@@ -104,7 +104,7 @@ script = ''
|
|||||||
|
|
||||||
${diskoScript}
|
${diskoScript}
|
||||||
|
|
||||||
echo "Installing RhemaWave"
|
echo "Installing RadiantWave"
|
||||||
echo "Closure Path: ${targetSystem}"
|
echo "Closure Path: ${targetSystem}"
|
||||||
|
|
||||||
nixos-install \
|
nixos-install \
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
[Plymouth Theme]
|
||||||
|
Name=RadiantWave
|
||||||
|
Description=RadiantWave kiosk splash screen
|
||||||
|
ModuleName=script
|
||||||
|
|
||||||
|
[script]
|
||||||
|
ImageDir=/usr/share/plymouth/themes/radiantwave
|
||||||
|
ScriptFile=/usr/share/plymouth/themes/radiantwave/radiantwave.script
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
[Plymouth Theme]
|
|
||||||
Name=RhemaWave
|
|
||||||
Description=RhemaWave kiosk splash screen
|
|
||||||
ModuleName=script
|
|
||||||
|
|
||||||
[script]
|
|
||||||
ImageDir=/usr/share/plymouth/themes/rhemawave
|
|
||||||
ScriptFile=/usr/share/plymouth/themes/rhemawave/rhemawave.script
|
|
||||||
+4
-4
@@ -1,10 +1,10 @@
|
|||||||
{ pkgs, rhemawave, ...}:
|
{ pkgs, radiantwave, ...}:
|
||||||
let
|
let
|
||||||
rhemaApp = rhemawave.packages.${pkgs.system}.default;
|
radiantApp = radiantwave.packages.${pkgs.system}.default;
|
||||||
kioskscript = pkgs.writeShellScript "kiosk-start" ''
|
kioskscript = pkgs.writeShellScript "kiosk-start" ''
|
||||||
OUTPUT=$(${pkgs.wlr-randr}/bin/wlr-randr | grep -m1 '^\S' | awk '{print $1}')
|
OUTPUT=$(${pkgs.wlr-randr}/bin/wlr-randr | grep -m1 '^\S' | awk '{print $1}')
|
||||||
${pkgs.wlr-randr}/bin/wlr-randr --output "$OUTPUT" --transform 90
|
${pkgs.wlr-randr}/bin/wlr-randr --output "$OUTPUT" --transform 90
|
||||||
exec ${rhemaApp}/bin/rhemawave -d -s
|
exec ${radiantApp}/bin/radiantwave -d -s
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
@@ -27,7 +27,7 @@ in
|
|||||||
export WLR_RENDERER=pixman
|
export WLR_RENDERER=pixman
|
||||||
export WLR_NO_HARDWARE_CURSORS=1
|
export WLR_NO_HARDWARE_CURSORS=1
|
||||||
|
|
||||||
mkdir -p /home/kiosk/.local/share/rhemawave
|
mkdir -p /home/kiosk/.local/share/radiantwave
|
||||||
exec dbus-run-session cage -- ${kioskscript} > /tmp/kiosk.log 2>&1
|
exec dbus-run-session cage -- ${kioskscript} > /tmp/kiosk.log 2>&1
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
|||||||
Reference in New Issue
Block a user