#!/bin/sh
# SPDX-License-Identifier: AGPL-3.0-only
# Copyright 2022 Sxmo Contributors
# Copyright 2023 Zach DeCook
KEYBOARD=wvkbd-mobintl
isopen() {
if [ -z "$KEYBOARD" ]; then
exit 0 # ssh/tty usage by example
fi
pidof "$KEYBOARD" > /dev/null
}
open() {
if [ -n "$KEYBOARD" ]; then
#Note: KEYBOARD_ARGS is not quoted by design as it may includes a pipe and further tools
# shellcheck disable=SC2086
isopen || eval "$KEYBOARD" $KEYBOARD_ARGS &
fi
}
close() {
if [ -n "$KEYBOARD" ]; then # avoid killing everything !
pkill "$KEYBOARD"
fi
}
dbus_request_name 'sm.puri.OSK0' &
pid="$(echo $!)"
stdbuf -oL dbus-monitor "interface='sm.puri.OSK0',member='SetVisible'" |
while read -r line; do
echo "$line" | grep -i "boolean.*true" && open
echo "$line" | grep -i "boolean.*false" && close
done
kill "$pid"
exit 0