28 lines
803 B
Bash
Executable File
28 lines
803 B
Bash
Executable File
#!/bin/bash
|
|
current_im=$(fcitx5-remote -n 2>/dev/null)
|
|
if [[ "$current_im" == "anthy" ]]; then
|
|
CURRENT_STATUS="JP"
|
|
else
|
|
CURRENT_STATUS="EN"
|
|
fi
|
|
|
|
dbus-monitor --session "type='signal',interface='org.fcitx.Fcitx.InputContext1',member='CurrentIM'" 2>/dev/null | \
|
|
while IFS= read -r line; do
|
|
if [[ "$line" == *"member=CurrentIM"* ]]; then
|
|
# Read the next line which contains the input method string
|
|
read -r im_line
|
|
if [[ "$im_line" == *"Anthy"* ]]; then
|
|
NEW_STATUS="JP"
|
|
else
|
|
NEW_STATUS="EN"
|
|
fi
|
|
|
|
# Only refresh if status actually changed
|
|
if [[ "$NEW_STATUS" != "$CURRENT_STATUS" ]]; then
|
|
sleep 0.1
|
|
pkill -RTMIN+8 waybar
|
|
CURRENT_STATUS="$NEW_STATUS"
|
|
fi
|
|
fi
|
|
done
|