unmaintained project intending to allow you to use wvkbd on phosh
Diffstat (limited to 'osk0-wvkbd-wrapper.sh')
| -rwxr-xr-x | osk0-wvkbd-wrapper.sh | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/osk0-wvkbd-wrapper.sh b/osk0-wvkbd-wrapper.sh new file mode 100755 index 0000000..0893484 --- /dev/null +++ b/osk0-wvkbd-wrapper.sh @@ -0,0 +1,48 @@ +#!/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-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 + +exit 0 + +if [ "$1" = "toggle" ]; then + close || open +elif [ "$1" = "close" ]; then + if isopen; then + close + fi +elif [ "$1" = "isopen" ]; then + isopen || exit 1 +else + open +fi |