From 2dc1881b691d8ebea175cfc82e115636201302ad Mon Sep 17 00:00:00 2001 From: mozempk Date: Sat, 25 Apr 2026 22:22:07 +0200 Subject: [PATCH] Fix niri live ISO audio and dark theme setup --- iso/_inner-build-niri-live.sh | 23 +++++++++++++++++++++++ iso/build-niri-live-iso.sh | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/iso/_inner-build-niri-live.sh b/iso/_inner-build-niri-live.sh index 52df4d3..d47d98c 100755 --- a/iso/_inner-build-niri-live.sh +++ b/iso/_inner-build-niri-live.sh @@ -31,6 +31,28 @@ command -v xbps-install.static >/dev/null \ mkdir -p "$(dirname "$OUT_ISO")" +# Compile dconf system-db using Void's own dconf binary inside the target +# rootfs. The Niri live builder writes /etc/dconf/db/local.d/01-dark-theme, +# but the live system will not report the dark theme unless the GVDB is +# compiled into /etc/dconf/db/local (and into skel for the live user). +_DCONF_POSTSETUP="$(mktemp -p "$MKLIVE_DIR" postsetup-dconf.XXXXX.sh)" +cat > "$_DCONF_POSTSETUP" <<'PSEOF' +#!/bin/bash +ROOTFS="$1" +if [[ -x "$ROOTFS/usr/bin/dconf" ]] && [[ -d "$ROOTFS/etc/dconf/db/local.d" ]]; then + chroot "$ROOTFS" dconf compile /etc/dconf/db/local /etc/dconf/db/local.d \ + && echo "postsetup: system-db compiled ($(chroot "$ROOTFS" dconf --version 2>/dev/null))" \ + || echo "postsetup: system-db compile failed (non-fatal)" + mkdir -p "$ROOTFS/etc/skel/.config/dconf" + chroot "$ROOTFS" dconf compile /etc/skel/.config/dconf/user /etc/dconf/db/local.d \ + && echo "postsetup: skel user dconf db compiled" \ + || echo "postsetup: skel user dconf db compile failed (non-fatal)" +else + echo "postsetup: dconf or keyfile dir not found in rootfs - skipping dconf compile" +fi +PSEOF +chmod +x "$_DCONF_POSTSETUP" + cd "$MKLIVE_DIR" # ── Pre-bake nix packages ──────────────────────────────────────────────── @@ -226,6 +248,7 @@ trap _cleanup_mklive_builds EXIT -v linux-mainline \ -p "$ISO_PKGS" \ -I "$INCLUDE_DIR" \ + -x "$_DCONF_POSTSETUP" \ -x "$PROJECT_DIR/iso/postsetup-nvidia.sh" \ -C "${BOOT_CMDLINE:-}" \ -o "$OUT_ISO" diff --git a/iso/build-niri-live-iso.sh b/iso/build-niri-live-iso.sh index 9840909..597cf55 100755 --- a/iso/build-niri-live-iso.sh +++ b/iso/build-niri-live-iso.sh @@ -859,7 +859,7 @@ ISO_PKGS=$(grep -vE '^\s*(#|$)' \ | tr '\n' ' ') TS="$(date -u +%Y%m%d)" OUT_ISO="${OUTPUT_ISO:-$OUT_DIR/void-live-niri-${TS}.iso}" -BOOT_CMDLINE="${BOOT_CMDLINE:-live.user=${LIVE_USER} console=tty0 console=ttyS0,115200 nvidia-drm.modeset=1 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau btusb.enable_autosuspend=0 snd-intel-dspcfg.dsp_driver=1 snd_hda_intel.dmic_detect=0}" +BOOT_CMDLINE="${BOOT_CMDLINE:-live.user=${LIVE_USER} console=tty0 console=ttyS0,115200 nvidia-drm.modeset=1 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau btusb.enable_autosuspend=0}" echo ">>> running mklive.sh inside docker — output: $OUT_ISO" "$DOCKER" run --rm --privileged \