#author("2019-03-28T16:46:04+09:00","","")
#navi(../)
* USB接続マウスの抜き挿しによりタッチパッドのオン・オフ制御を行うシェルスクリプト [#o6b17d46]
XubuntuをノートPCで使っていたところ、タッチパッドにより誤操作が発生し、USB接続マウスの挿抜により、~
タッチパッドを自動的にオン・オフしたいなぁ。と思いシェルスクリプトを作成しました。

&color(red){適当に作ったサンプルスクリプトなので他にも良い方法があると思います。};~
&color(red){シェルスクリプトのサンプルということで活用してください。};~
&color(red){また皆様の環境では正常に動作しない可能性もありますので、ご了承ください。};

#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
#contents

* 関連記事 [#p61a1510]
-[[タッチパッドをオン・オフするコマンド・synclient>Ubuntu/タッチパッドをオン・オフするコマンド・synclient]]

* 使用したディストリビューション [#j3bd8481]
 $ lsb_release -cd
 Description:	Ubuntu 18.04.2 LTS
 Codename:	bionic

* マウスの挿抜によりタッチパッドのオン・オフを制御するシェルスクリプト [#a2e46d56]
以下、USB接続マウスの挿抜によりノートPCのタッチパッドをオン・オフするサンプルシェルスクリプトになります。
#ref(touchpad_auto_on_off.sh)
 #!/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

** シェルスクリプトの説明 [#z2974728]
上記のシェルスクリプトについて説明します。
- whileの無限ループ内で lsusb -v コマンドを発行し、Mouse というキーワードを grep 検索します。
- grepにより、Mouseというキーワードが見つかった場合、0が返却されるのでstatus変数に格納しています。
- grepの結果が0(発見)であり、TOUCHPAD変数の状態がONの場合、TOUCHPAD変数をOFFにして、synclientコマンドでタッチパッドを無効にしています。
- 抜かれた場合の結果は0以外(発見できず)かつTOUCHPAD変数がOFFの場合、TOUCHPAD変数をONにし、synclientコマンドでタッチパッドを有効にしています。
- SLEEP_TIMEで指定した秒数ウエイトします。~
初期値では2を指定しているので、2秒毎、USB接続マウスのチェックをlsusbコマンドで確認することになります。~

** synclientコマンドがインストールされていない場合 [#s2fcddc9]
''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

* スクリプトの自動実行 [#h8b07d4c]
本スクリプトを設置し自動実行するようにしてみます。~
尚、本スクリプトは ~/bin に保存したと仮定し以下に記します。
+ 本スクリプトを保存するディレクトリを作成
 mkdir $HOME/bin
+ 本スクリプトを設置(配置)します。~
+ スクリプトがあることを確認しました。
 $ ls ~/bin/
 touchpad_auto_on_off.sh
+ パーミッションを変更し動作するようにします。
 chmod +x $HOME/bin/touchpad_auto_on_off.sh
#br
ここで動作確認をしたい場合は、以下のように実行してください。
 $ ~/bin/touchpad_auto_on_off.sh
Ctrl+Cで停止することもできます。
#br
+ 以下、Xfce(Xubuntu)になりますが、セッションと起動に、今回のスクリプトを設定すればログイン時に自動起動されるようになります。~
(Lubuntuの場合は、設定→Lxsessionのデフォルトのアプリケーション の自動立ち上げになります。)
++ セッションと起動 の画面です。
#ref(01.png)
#br
++ 本シェルスクリプトを追加します。
#ref(02.png)
#br
++ 一番下に追加されているのが確認できます。
#ref(03.png)
#br
++一度、ログアウトし、再度ログインすれば、本スクリプトが自動で実行されます。

以上、USB接続マウスの抜き挿しにより、ノートPCのタッチパッドをオン・オフするサンプルシェルスクリプトの紹介でした。

#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS