summaryrefslogtreecommitdiff
path: root/scripts/enable-ibus-test
blob: d95e2969a619fd9d342c2b97fc97ee7f9b786570 (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
#!/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

systemctl --user start parley-ibus.service
for _ in {1..20}; do
    busctl --user --quiet list 2>/dev/null | grep -q '^org.parley.IBus1 ' && break
    sleep 0.1
done
ibus engine parley >/dev/null 2>&1 || [[ $(ibus engine) == parley ]]

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

echo "Parley IBus test mode enabled (previous engine: $previous)"