From 513052fa783663744fa9ab52bddceab5bd90c267 Mon Sep 17 00:00:00 2001 From: FineComputer14451 Date: Mon, 7 Sep 2026 20:39:48 +0000 Subject: [PATCH 1/2] fix(x11): allow --plate og space-form in desktop-skin Bare --plate/--dpi/--panel-size no longer die in the first parse pass before the next-arg pass runs; reject another flag as the value. --- scripts/desktop-skin.sh | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/scripts/desktop-skin.sh b/scripts/desktop-skin.sh index ea49885..6ccadcb 100755 --- a/scripts/desktop-skin.sh +++ b/scripts/desktop-skin.sh @@ -73,27 +73,35 @@ Does not edit /usr. Does not print or request API keys. EOF } +# First pass: =form flags and switches. Bare --plate/--dpi/--panel-size +# are filled in the second pass (--plate og). +_need_plate=0 +_need_dpi=0 +_need_panel_size=0 for arg in "$@"; do case "${arg}" in --plate) - die "--plate requires a value (use --plate=og or pass after parse)" + _need_plate=1 ;; --plate=*) PLATE="${arg#--plate=}" + _need_plate=0 ;; --dpi) - die "--dpi requires a value (use --dpi=120)" + _need_dpi=1 ;; --dpi=*) DPI="${arg#--dpi=}" + _need_dpi=0 ;; --terminal) DO_TERMINAL=1 ;; --panel-slim) DO_PANEL_SLIM=1 ;; --panel-size) - die "--panel-size requires a value (use --panel-size=32)" + _need_panel_size=1 ;; --panel-size=*) PANEL_SIZE="${arg#--panel-size=}" + _need_panel_size=0 ;; --dry-run) DRY=1 ;; --help|-h) @@ -101,25 +109,34 @@ for arg in "$@"; do exit 0 ;; *) - # allow: --plate og --dpi 120 : ;; esac done -# Positional-style flags: --plate og --dpi 120 +# Second pass: space-separated values (--plate og). Reject another flag as value. _prev="" for arg in "$@"; do if [[ "${_prev}" == "--plate" ]]; then + [[ "${arg}" != -* ]] || die "--plate requires a value (use --plate=og or --plate og)" PLATE="${arg}" + _need_plate=0 elif [[ "${_prev}" == "--dpi" ]]; then + [[ "${arg}" != -* ]] || die "--dpi requires a value (use --dpi=120 or --dpi 120)" DPI="${arg}" + _need_dpi=0 elif [[ "${_prev}" == "--panel-size" ]]; then + [[ "${arg}" != -* ]] || die "--panel-size requires a value (use --panel-size=32 or --panel-size 32)" PANEL_SIZE="${arg}" + _need_panel_size=0 fi _prev="${arg}" done +[[ "${_need_plate}" -eq 0 ]] || die "--plate requires a value (use --plate=og or --plate og)" +[[ "${_need_dpi}" -eq 0 ]] || die "--dpi requires a value (use --dpi=120 or --dpi 120)" +[[ "${_need_panel_size}" -eq 0 ]] || die "--panel-size requires a value (use --panel-size=32 or --panel-size 32)" + run() { if [[ "${DRY}" -eq 1 ]]; then printf '[desktop-skin] DRY:' @@ -603,6 +620,9 @@ cmd_self_test() { info "tokens OK" [[ "${PANEL_SIZE}" == "32" ]] || die "default panel size drift" case "og" in og|banner|minimal) ;; *) die "plate case broken" ;; esac + # space-form parse must not die early (regression: bare --plate died in first pass) + out="$(bash "${BASH_SOURCE[0]}" apply --plate og --dpi 120 --dry-run 2>&1)" || true + printf '%s\n' "${out}" | grep -q 'Theme Kali-Dark' || die "space-form --plate og parse failed" info "self-test OK" } From 88ad67fd6c2fc2982dd2cf074be01bb4514fc55e Mon Sep 17 00:00:00 2001 From: FineComputer14451 Date: Mon, 7 Sep 2026 20:40:41 +0000 Subject: [PATCH 2/2] fix(x11): desktop-skin self-test under empty DISPLAY Space-form parse check sets DISPLAY=:0 for the dry-run child so CI (no X session) still exercises --plate og without require_session dying. --- scripts/desktop-skin.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/desktop-skin.sh b/scripts/desktop-skin.sh index 6ccadcb..0cdc89a 100755 --- a/scripts/desktop-skin.sh +++ b/scripts/desktop-skin.sh @@ -621,7 +621,8 @@ cmd_self_test() { [[ "${PANEL_SIZE}" == "32" ]] || die "default panel size drift" case "og" in og|banner|minimal) ;; *) die "plate case broken" ;; esac # space-form parse must not die early (regression: bare --plate died in first pass) - out="$(bash "${BASH_SOURCE[0]}" apply --plate og --dpi 120 --dry-run 2>&1)" || true + # CI has no X; require_session only checks DISPLAY is non-empty + out="$(DISPLAY=:0 bash "${BASH_SOURCE[0]}" apply --plate og --dpi 120 --dry-run 2>&1)" || true printf '%s\n' "${out}" | grep -q 'Theme Kali-Dark' || die "space-form --plate og parse failed" info "self-test OK" }