Files
KioskConfig/rotated_display.nix
T
2026-08-17 14:00:14 -05:00

49 lines
1.6 KiB
Nix

{ 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
'';
}