#!/usr/bin/env bash set -euo pipefail state_dir=${XDG_STATE_HOME:-$HOME/.local/state}/parley dropin_dir=${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user/parley.service.d mkdir -p "$state_dir" "$dropin_dir" previous=$(ibus engine 2>/dev/null || true) if [[ -z "$previous" ]]; then previous=xkb:us::eng fi if [[ "$previous" != "parley" ]]; then printf '%s\n' "$previous" > "$state_dir/previous-ibus-engine" fi cat > "$dropin_dir/ibus-test.conf" <<'EOF' [Service] Environment=PARLEY_AUTO_INSERT=1 Environment=PARLEY_INSERTION_MODE=ibus EOF systemctl --user daemon-reload systemctl --user restart parley.service for _ in {1..20}; do ibus engine parley >/dev/null 2>&1 || true [[ $(ibus engine 2>/dev/null || true) == parley ]] && break sleep 0.1 done [[ $(ibus engine 2>/dev/null || true) == parley ]] || { echo "could not select the Parley IBus engine" >&2 exit 1 } echo "Parley IBus test mode enabled (previous engine: $previous)"