4eb93b7640
Dotfiles managed with GNU Stow: Hyprland (Lua config), Neovim, zsh, tmux, ghostty, alacritty, waybar, yazi, lazygit, herdr, Claude Code. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
57 lines
2.1 KiB
Bash
Executable File
57 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Norwegian Handy instance (whisper-large-v3, language pinned to "no").
|
|
# Runs on a private D-Bus session bus so the tauri single-instance lock
|
|
# (D-Bus name com.pais.handy) doesn't collide with the main English
|
|
# instance, and with its own XDG_DATA_HOME for a separate settings store.
|
|
# Models are shared via ~/.cache/huggingface — no duplicate downloads.
|
|
#
|
|
# Usage: handy-no start | toggle | gui | cancel
|
|
set -euo pipefail
|
|
|
|
export XDG_DATA_HOME="$HOME/.local/share/handy-no"
|
|
export BUSFILE="$XDG_RUNTIME_DIR/handy-no.bus"
|
|
|
|
case "${1:-start}" in
|
|
start)
|
|
# First run on a new machine: seed this instance's settings from the
|
|
# main (English) store and apply the Norwegian overrides. The live
|
|
# store stays out of git — Handy rewrites it at runtime and it can
|
|
# hold API keys.
|
|
NO_STORE="$XDG_DATA_HOME/com.pais.handy/settings_store.json"
|
|
EN_STORE="$HOME/.local/share/com.pais.handy/settings_store.json"
|
|
if [ ! -f "$NO_STORE" ] && [ -f "$EN_STORE" ]; then
|
|
mkdir -p "${NO_STORE%/*}"
|
|
python3 - "$EN_STORE" "$NO_STORE" <<'PY'
|
|
import json, sys
|
|
en, out = sys.argv[1:3]
|
|
d = json.load(open(en))
|
|
s = d["settings"]
|
|
s["selected_model"] = "handy-computer/whisper-large-v3-gguf/whisper-large-v3-Q5_K_M.gguf"
|
|
s["selected_language"] = "no" # pinned: auto-detect mistakes Norwegian for Swedish
|
|
s["show_tray_icon"] = False
|
|
s["autostart_enabled"] = False # hyprland autostarts this instance
|
|
s["onboarding_completed"] = True
|
|
s["post_process_api_keys"] = {k: "" for k in s.get("post_process_api_keys", {})}
|
|
json.dump(d, open(out, "w"), indent=2)
|
|
PY
|
|
fi
|
|
# Publish the private bus address so toggle/gui/cancel can reach
|
|
# this instance through the single-instance forwarder.
|
|
exec dbus-run-session -- sh -c \
|
|
'echo "$DBUS_SESSION_BUS_ADDRESS" > "$BUSFILE"; exec handy --start-hidden --no-tray'
|
|
;;
|
|
toggle | gui | cancel)
|
|
DBUS_SESSION_BUS_ADDRESS="$(cat "$BUSFILE")"
|
|
export DBUS_SESSION_BUS_ADDRESS
|
|
case "$1" in
|
|
toggle) exec handy --toggle-transcription ;;
|
|
cancel) exec handy --cancel ;;
|
|
gui) exec handy ;;
|
|
esac
|
|
;;
|
|
*)
|
|
echo "usage: handy-no {start|toggle|gui|cancel}" >&2
|
|
exit 2
|
|
;;
|
|
esac
|