summaryrefslogtreecommitdiff
path: root/scripts/enable-ibus-test
blob: 50c3cba341a251500b25cbda51e809c1302bb596 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/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)"