Initial commit
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>
This commit is contained in:
Executable
+56
@@ -0,0 +1,56 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user