summaryrefslogtreecommitdiff
path: root/scripts/cli/sdev
diff options
context:
space:
mode:
authorSuleyman Farajli <suleyman@farajli.net>2025-10-26 22:23:31 +0400
committerSuleyman Farajli <suleyman@farajli.net>2025-10-26 22:23:31 +0400
commitcb78290f31886fb1f9a5e7c2a764dda55a459e50 (patch)
tree72a2df0645405658d8590d4b8d7d87f1e099f596 /scripts/cli/sdev
parentf8d1bfbd0f27e0763cf75fcda58d010e346515ab (diff)
chore: split script installation into CLI and GUI sections
Diffstat (limited to 'scripts/cli/sdev')
-rwxr-xr-xscripts/cli/sdev80
1 files changed, 80 insertions, 0 deletions
diff --git a/scripts/cli/sdev b/scripts/cli/sdev
new file mode 100755
index 0000000..c227771
--- /dev/null
+++ b/scripts/cli/sdev
@@ -0,0 +1,80 @@
+#!/bin/sh
+
+. slib
+
+help() {
+cat << EOF
+${0}: Disable and Enable devices
+options:
+ -e [dev] Enable dev
+ -d [dev] Disable dev
+ -t [dev] Toggle dev
+ -l List devices
+ -h Print this message and exit
+
+Note: Nondescriptive inputs may disable/enable unwanted devices.
+EOF
+
+exit 0
+}
+
+get_id() {
+ if ! dev=$(xinput list --name-only | grep -i -m1 "${1}" ); then
+ err "Couldn't get device"
+ fi
+ id="${dev#∼ }"
+}
+
+xenable() {
+ echo "${id}"
+
+ if ! xinput enable "${1}" > /dev/null 2>&1; then
+ err "Failed to enable dev."
+ else
+ exit 0
+ fi
+}
+
+xdisable() {
+ echo "${id}"
+
+ if ! xinput disable "${1}" > /dev/null 2>&1; then
+ err "Failed to disable dev."
+ else
+ exit 0
+ fi
+}
+
+check_program "xinput"
+
+while getopts "e:d:t:lh" option; do
+ case "${option}" in
+ e)
+ get_id "${OPTARG}"
+ xenable "${id}"
+ ;;
+ d)
+ get_id "${OPTARG}"
+ xdisable "${id}"
+ ;;
+ t)
+ get_id "${OPTARG}"
+
+ [ "${id}" = "${dev}" ] && xdisable "${id}"
+ xenable "${id}"
+ ;;
+ l)
+ if ! xinput list 2>/dev/null; then
+ err "Listing Failed"
+ else
+ exit 0
+ fi
+ ;;
+ h) help ;;
+
+ *) invalid_use -h ;;
+
+ esac
+done
+
+invalid_use