Move .scripts -> .local/bin
This commit is contained in:
Executable
+148
@@ -0,0 +1,148 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Control the input devices
|
||||
# Depends: xinput, setxkbmap
|
||||
|
||||
help() {
|
||||
B=$(tput bold)
|
||||
U=$(tput smul)
|
||||
N=$(tput sgr0)
|
||||
|
||||
cat << EOF
|
||||
${B}NAME${N}
|
||||
inputctl - control the input devices
|
||||
|
||||
${B}SYNOPSIS${N}
|
||||
${B}inputctl${N} ${U}OPTION${N} [${U}ARG${N}]
|
||||
|
||||
${B}OPTIONS${N}
|
||||
${B}-h${N} Display usage message and exit.
|
||||
|
||||
${B}-d${N} ${U}STATE${N}
|
||||
Set touchpad state, possible values: toggle, on/off, 1/0.
|
||||
|
||||
${B}-k${N} ${U}STATE${N}
|
||||
Set keyboard state, possible values: toggle, on/off, 1/0.
|
||||
|
||||
${B}-s${N} ${U}STATE${N}
|
||||
Set touchscreen state, possible values: toggle, on/off, 1/0.
|
||||
EOF
|
||||
}
|
||||
|
||||
setxkbmap -option caps:swapescape
|
||||
|
||||
# Exit if no option is provided
|
||||
[ "$#" -eq 0 ] && help && exit 1
|
||||
|
||||
# Set required X variables
|
||||
export DISPLAY=:0
|
||||
export XAUTHORITY="$XDG_DATA_HOME/xorg/Xauthority"
|
||||
|
||||
# Option handling
|
||||
SCRIPT="$(basename "$0")"
|
||||
while getopts ':h?d:k:s:' opt; do
|
||||
case $opt in
|
||||
h)
|
||||
help
|
||||
exit 0
|
||||
;;
|
||||
d)
|
||||
OPTION="d"
|
||||
ARG="$OPTARG"
|
||||
DEV="SYNA3602:00 0911:5288 Touchpad"
|
||||
;;
|
||||
k)
|
||||
OPTION="k"
|
||||
ARG="$OPTARG"
|
||||
;;
|
||||
s)
|
||||
OPTION="s"
|
||||
ARG="$OPTARG"
|
||||
DEV="pointer:04F3200A:00 04F3:2373"
|
||||
;;
|
||||
:)
|
||||
echo "$SCRIPT: option requires an argument '$OPTARG'"
|
||||
echo "Try '$SCRIPT -h' for more information."
|
||||
exit 1
|
||||
;;
|
||||
\?)
|
||||
echo "$SCRIPT: invalid option '$OPTARG'"
|
||||
echo "Try '$SCRIPT -h' for more information."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
toggle_device() {
|
||||
STATUS=$(xinput --list-props "$2" | awk '/Device Enabled/ { print $4 }')
|
||||
[ "$STATUS" -eq 1 ] && xinput --disable "$2" || xinput --enable "$2"
|
||||
}
|
||||
|
||||
device() {
|
||||
case "$1" in
|
||||
1 | on)
|
||||
xinput --enable "$2"
|
||||
;;
|
||||
0 | off)
|
||||
xinput --disable "$2"
|
||||
;;
|
||||
t*)
|
||||
toggle_device "$2"
|
||||
;;
|
||||
*)
|
||||
echo "$SCRIPT: invalid argument '$1'"
|
||||
echo "Try '$SCRIPT -h' for more information."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
keyboard() {
|
||||
[ -z "$1" ] && return 1
|
||||
|
||||
if [ "$1" = "toggle" ]; then
|
||||
if setxkbmap -query | grep -q options; then
|
||||
keyboard "off"
|
||||
else
|
||||
keyboard "on"
|
||||
fi
|
||||
|
||||
elif [ "$1" = "on" ]; then
|
||||
# Swap caps lock with escape
|
||||
setxkbmap -option caps:swapescape
|
||||
|
||||
# Swap left crtl with left alt
|
||||
# setxkbmap -option ctrl:swap_lalt_lctl
|
||||
|
||||
# Set touchpad toggle keyboard symbol
|
||||
# xmodmap -e "keycode 93 = XF86iTouch"
|
||||
|
||||
elif [ "$1" = "off" ]; then
|
||||
# Clear all key mappings
|
||||
setxkbmap -option ''
|
||||
fi
|
||||
}
|
||||
|
||||
# Option execution
|
||||
# if [ "$DEV" = "Keyboard" ]; then
|
||||
# keyboard "$ARG"
|
||||
# else
|
||||
case "$OPTION" in
|
||||
d | s)
|
||||
device "$ARG" "$DEV"
|
||||
;;
|
||||
k)
|
||||
keyboard "$ARG"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Useful input diagnostics packages:
|
||||
# - xinput
|
||||
# - xev
|
||||
# - evtest
|
||||
#
|
||||
# - setxkbmap -query
|
||||
# - xmodmap -pke
|
||||
|
||||
# https://superuser.com/questions/437053/firefox-doesnt-recognize-my-alt-keys-anymore
|
||||
# https://www.x.org/releases/X11R7.7/doc/xorg-docs/input/XKB-Config.html
|
||||
Reference in New Issue
Block a user