#!/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 (or 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