XubuntuをノートPCで使っていたところ、タッチパッドにより誤操作が発生し、USB接続マウスの挿抜により、
タッチパッドを自動的にオン・オフしたいなぁ。と思いシェルスクリプトを作成しました。
適当に作ったサンプルスクリプトなので他にも良い方法があると思います。
シェルスクリプトのサンプルということで活用してください。
また皆様の環境では正常に動作しない可能性もありますので、ご了承ください。
$ lsb_release -cd Description: Ubuntu 18.04.2 LTS Codename: bionic
以下、USB接続マウスの挿抜によりノートPCのタッチパッドをオン・オフするサンプルシェルスクリプトになります。
#!/bin/bash
SLEEP_TIME=2
GREP_WORD='Mouse'
TOUCHPAD='ON'
while :
do
(lsusb -v | grep $GREP_WORD) > /dev/null 2>&1
status=$?
if [ $status -eq 0 -a $TOUCHPAD = 'ON' ]; then
TOUCHPAD='OFF'
synclient TouchpadOff=1 > /dev/null 2>&1 # touchpad off
elif [ $status -ne 0 -a $TOUCHPAD = 'OFF' ]; then
TOUCHPAD='ON'
synclient TouchpadOff=0 > /dev/null 2>&1 # touchpad on
fi
sleep $SLEEP_TIME
done
上記のシェルスクリプトについて説明します。
synclientコマンドがあるパッケージをdpkgコマンドで調べました。
$ dpkg -S `which synclient` xserver-xorg-input-synaptics: /usr/bin/synclient
synclientコマンドは、xserver-xorg-input-synaptics パッケージにあることがわかりました。
以下のコマンドでインストールすることができます。
sudo apt install xserver-xorg-input-synaptics
インストール後、一度ログアウトしてください。
インストール直後で、synclientコマンドを実行しても動作しない可能性があります。
notify-sendコマンドがあるパッケージをdpkgコマンドで調べました。
$ dpkg -S `which notify-send` libnotify-bin: /usr/bin/notify-send
notify-sendコマンドは、libnotify-bin パッケージにあることがわかりました。
以下のコマンドでインストールすることができます。
sudo apt install libnotify-bin
本スクリプトを設置し自動実行するようにしてみます。
尚、本スクリプトは ~/bin に保存したと仮定し以下に記します。
mkdir $HOME/bin
$ ls ~/bin/ touchpad_auto_on_off.sh
chmod +x $HOME/bin/touchpad_auto_on_off.sh
$ ~/bin/touchpad_auto_on_off.shCtrl+Cで停止することもできます。
上記のシェルスクリプトにnotify-sendコマンドを追加し、通知メッセージが表示されるようにしたものになります。
#!/bin/bash
SLEEP_TIME=2
GREP_WORD='Mouse'
# NOTIFY SEND PARAMETER
NOTIFY_TITLE='Touchpad'
NOTIFY_TIME=5000
TOUCHPAD='ON'
while :
do
notify=''
(lsusb -v | grep $GREP_WORD) > /dev/null 2>&1
status=$?
if [ $status -eq 0 -a $TOUCHPAD = 'ON' ]; then
TOUCHPAD='OFF'
synclient TouchpadOff=1 > /dev/null 2>&1 # touchpad off
notify='Disabled Touchpad.'
elif [ $status -ne 0 -a $TOUCHPAD = 'OFF' ]; then
TOUCHPAD='ON'
synclient TouchpadOff=0 > /dev/null 2>&1 # touchpad on
notify='Enabled Touchpad.'
fi
if [ "$notify" != "" -a "$DISPLAY" != "" ]; then
notify-send -t $NOTIFY_TIME "$NOTIFY_TITLE" "$notify"
fi
sleep $SLEEP_TIME
done
以上、USB接続マウスの抜き挿しにより、ノートPCのタッチパッドをオン・オフするサンプルシェルスクリプトの紹介でした。