unmaintained project intending to allow you to use wvkbd on phosh
Diffstat (limited to 'osk0-wvkbd-wrapper.sh')
-rwxr-xr-xosk0-wvkbd-wrapper.sh48
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