Add selectable Voxtype and Superwhisper dictation (#14552)
* Add selectable dictation backends * Move dictation migration after repository priority update * Extract backend-specific dictation installers * Keep dictation installer dispatcher executable * Call dictation backend installers directly * Drop legacy Superwhisper migration and runtime cleanup * Separate dictation defaults from generic recording protocol * Add backend-specific dictation removers * Preserve existing Voxtype selection during upgrade * Make dictation backend selection safe and retryable * Show the dictation indicator only for selected Voxtype * Allow switching away from stopped Superwhisper * Remove the built-in bar dictation indicator * Store default dictation selection under defaults * Rename dictation backend selector to use * Move dictation removers into their own menu category
This commit is contained in:
1 parent
1554a522cc
commit
c24889096e
34 files changed
+639
-141
No files matched your search
@@ -144,36 +144,29 @@ no_bindings_output=$(run_omarchy_bindings "$no_bindings_home" 'omarchy_default_b
|
||||
[[ -z $no_bindings_output ]] || fail "default binding variable disables all Omarchy bindings" "$no_bindings_output"
|
||||
pass "default binding variable disables all Omarchy bindings"
|
||||
|
||||
voxtype_home="$tmpdir/voxtype-home"
|
||||
voxtype_bin="$tmpdir/voxtype-bin"
|
||||
mkdir -p "$voxtype_home" "$voxtype_bin"
|
||||
touch "$voxtype_bin/voxtype"
|
||||
chmod +x "$voxtype_bin/voxtype"
|
||||
voxtype_output=$(PATH="$voxtype_bin:$PATH" run_omarchy_bindings "$voxtype_home")
|
||||
grep -Fq $'SUPER + CTRL + X Toggle dictation' <<<"$voxtype_output" ||
|
||||
fail "installed Voxtype enables its toggle binding"
|
||||
grep -Fq $'F9 Start dictation (push-to-talk)' <<<"$voxtype_output" ||
|
||||
fail "installed Voxtype enables its push-to-talk binding"
|
||||
grep -Fq $'F9 Stop dictation (push-to-talk)' <<<"$voxtype_output" ||
|
||||
fail "installed Voxtype enables its release binding"
|
||||
pass "installed Voxtype conditionally enables dictation bindings"
|
||||
|
||||
voxtype_without_execute_output=$(PATH="$voxtype_bin:$PATH" run_omarchy_bindings \
|
||||
"$voxtype_home" 'os.execute = function() return nil, "No child processes", 10 end')
|
||||
grep -Fq $'SUPER + CTRL + X Toggle dictation' <<<"$voxtype_without_execute_output" ||
|
||||
fail "Voxtype detection does not require spawning a subprocess"
|
||||
pass "installed Voxtype detection works without os.execute"
|
||||
|
||||
dictation_home="$tmpdir/dictation-home"
|
||||
missing_bin="$tmpdir/missing-bin"
|
||||
mkdir -p "$missing_bin"
|
||||
mkdir -p "$dictation_home" "$missing_bin"
|
||||
ln -s "$(command -v lua)" "$missing_bin/lua"
|
||||
ln -s "$(command -v lspci)" "$missing_bin/lspci"
|
||||
ln -s "$(command -v sort)" "$missing_bin/sort"
|
||||
missing_voxtype_output=$(PATH="$missing_bin" run_omarchy_bindings "$voxtype_home")
|
||||
if grep -Fq $'SUPER + CTRL + X Toggle dictation' <<<"$missing_voxtype_output"; then
|
||||
fail "missing Voxtype skips its bindings"
|
||||
fi
|
||||
pass "missing Voxtype skips dictation bindings"
|
||||
dictation_output=$(PATH="$missing_bin" run_omarchy_bindings "$dictation_home")
|
||||
if grep -Fq 'dictation' <<<"$dictation_output"; then fail "unconfigured dictation leaves application shortcuts available"; fi
|
||||
cat > "$missing_bin/omarchy-default-dictation" <<'SH'
|
||||
#!/bin/bash
|
||||
echo future-backend
|
||||
SH
|
||||
chmod +x "$missing_bin/omarchy-default-dictation"
|
||||
dictation_output=$(PATH="$missing_bin" run_omarchy_bindings "$dictation_home")
|
||||
for binding in \
|
||||
$'SUPER + CTRL + X\tToggle dictation' \
|
||||
$'F9\tStart dictation (push-to-talk)' \
|
||||
$'F9\tStop dictation (push-to-talk)' \
|
||||
$'ALT + Alt_R\tStart dictation (push-to-talk)' \
|
||||
$'ALT + Alt_R\tStop dictation (push-to-talk)'; do
|
||||
grep -Fq "$binding" <<<"$dictation_output" || fail "dictation bindings load for any selected backend" "$binding"
|
||||
done
|
||||
pass "dictation bindings require a selection without hardcoding backends"
|
||||
|
||||
# Lazydocker is optional on new installs, while existing installs keep the hotkey.
|
||||
lazydocker_bin="$tmpdir/lazydocker-bin"
|
||||
|
||||
Reference in new issue
Block a user