diff --git a/install/provisioning/setup-form.sh b/install/provisioning/setup-form.sh index 84bf535c..862f6b10 100644 --- a/install/provisioning/setup-form.sh +++ b/install/provisioning/setup-form.sh @@ -151,7 +151,7 @@ omarchy_prompt_language() { omarchy_prompt_keyboard() { local choice status selected=${1:-English (US)} choice=$(printf '%s\n' "$OMARCHY_KEYBOARD_LAYOUTS" | cut -d'|' -f1 | - gum choose --height 10 --selected "$selected" --header "$(omarchy_text "Select keyboard layout")") && status=0 || status=$? + gum choose --height 10 --selected "${selected//,/\\,}" --header "$(omarchy_text "Select keyboard layout")") && status=0 || status=$? ((status == 0)) || return $status local selection diff --git a/test/shell.d/setup-form-test.sh b/test/shell.d/setup-form-test.sh index ea7aa04a..a7923465 100755 --- a/test/shell.d/setup-form-test.sh +++ b/test/shell.d/setup-form-test.sh @@ -170,8 +170,8 @@ grep -qF -- '--selected English (US)' "$GUM_ARGS" || fail "keyboard prompt prese pass "keyboard prompt maps the chosen label to its keymap" PROMPT_ARG="Chinese (Simplified, Pinyin)" run_prompt omarchy_prompt_keyboard "0:Chinese (Simplified, Pinyin)" -grep -qF -- '--selected Chinese (Simplified, Pinyin)' "$GUM_ARGS" && [[ $(field keyboard_input_method) == "pinyin" ]] || - fail "keyboard prompt preselects the layout its caller names" +grep -qF -- '--selected Chinese (Simplified\, Pinyin)' "$GUM_ARGS" && [[ $(field keyboard_input_method) == "pinyin" ]] || + fail "keyboard prompt preselects the layout its caller names, escaping the comma gum splits --selected on" pass "keyboard prompt preselects the layout its caller names" for selection in 'Japanese|jp106|mozc|' 'Japanese (US keyboard)|us|mozc|' 'Korean|us|hangul|kr' 'Chinese (Simplified, Pinyin)|us|pinyin|' 'Chinese (Traditional, Zhuyin)|us|chewing|'; do