{ pkgs, radiantwave, ...}: let radiantApp = radiantwave.packages.${pkgs.system}.default; kioskscript = pkgs.writeShellScript "kiosk-start" '' # Wait for the Wayland display to be ready for i in {1..10}; do if ${pkgs.wlr-randr}/bin/wlr-randr &>/dev/null; then break fi sleep 1 done OUTPUT=$(${pkgs.wlr-randr}/bin/wlr-randr | grep -m1 '^\S' | awk '{print $1}') echo "Rotating output: $OUTPUT" >> /tmp/kiosk.log ${pkgs.wlr-randr}/bin/wlr-randr --output "$OUTPUT" --transform 90 >> /tmp/kiosk.log 2>&1 || echo "wlr-randr failed" >> /tmp/kiosk.log exec ${radiantApp}/bin/radiantwave -d -s ''; in { environment.systemPackages = [ pkgs.wlr-randr]; environment.loginShellInit = pkgs.lib.mkForce '' if [ "$(tty)" = "/dev/tty1" ]; then export GODEBUG=netdns=cgo export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt for i in {1..10}; do if ${pkgs.iputils}/bin/ping -c 1 8.8.8.8 &> /dev/null; then break fi sleep 1 done export SDL_VIDEODRIVER=wayland export QT_QPA_PLATFORM=wayland export XDG_SESSION_TYPE=wayland export WLR_RENDERER=pixman export WLR_NO_HARDWARE_CURSORS=1 # Pin system audio to 100% and unmute before launching RadiantWave ${pkgs.systemd}/bin/systemctl --user start radiantwave-audio-init.service || true # Release the splash screen right before the compositor takes over the display sudo -n plymouth quit --wait || true exec dbus-run-session cage -- ${kioskscript} > /tmp/kiosk.log 2>&1 fi ''; }