逆引きシェルスクリプト/USBマウスの挿抜でタッチパッドをオンオフする
の編集
Top
/
逆引きシェルスクリプト
/
USBマウスの挿抜でタッチパッドをオンオフする
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#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 インストール後、一度ログアウトしてください。~ インストール直後で、synclientコマンドを実行しても動作しない可能性があります。 ** notify-sendコマンドがインストールされていない場合 [#a9d7ca96] ''notify-send''コマンドがあるパッケージをdpkgコマンドで調べました。 $ dpkg -S `which notify-send` libnotify-bin: /usr/bin/notify-send notify-sendコマンドは、''libnotify-bin'' パッケージにあることがわかりました。~ 以下のコマンドでインストールすることができます。 sudo apt install libnotify-bin * スクリプトの自動実行 [#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)になりますが、セッションと起動に、今回のスクリプトを設定すればログイン時に自動起動されるようになります。~ --Ubuntuの場合は以下のキャプチャの通り、Dashで''session''と入れれば自動起動設定のアイコンが表示されるので、起動し本スクリプトを追加してください。 #ref(21.png) --Lubuntuの場合は''設定→Lxsessionのデフォルトのアプリケーション''の自動立ち上げの設定が行えます。 ++ セッションと起動 の画面です。 #ref(01.png) #br ++ 本シェルスクリプトを追加します。 #ref(02.png) #br ++ 一番下に追加されているのが確認できます。 #ref(03.png) #br ++一度、ログアウトし、再度ログインすれば、本スクリプトが自動で実行されます。 * notify-sendコマンドを使ってタッチパッドのオンオフを表示する [#o1541561] 上記のシェルスクリプトにnotify-sendコマンドを追加し、通知メッセージが表示されるようにしたものになります。 #ref(touchpad_auto_on_off_2.sh) #!/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 -マウス接続時の通知 #ref(11.png) #br -マウスを抜いたときの通知 #ref(12.png) 以上、USB接続マウスの抜き挿しにより、ノートPCのタッチパッドをオン・オフするサンプルシェルスクリプトの紹介でした。 #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
タイムスタンプを変更しない
#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 インストール後、一度ログアウトしてください。~ インストール直後で、synclientコマンドを実行しても動作しない可能性があります。 ** notify-sendコマンドがインストールされていない場合 [#a9d7ca96] ''notify-send''コマンドがあるパッケージをdpkgコマンドで調べました。 $ dpkg -S `which notify-send` libnotify-bin: /usr/bin/notify-send notify-sendコマンドは、''libnotify-bin'' パッケージにあることがわかりました。~ 以下のコマンドでインストールすることができます。 sudo apt install libnotify-bin * スクリプトの自動実行 [#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)になりますが、セッションと起動に、今回のスクリプトを設定すればログイン時に自動起動されるようになります。~ --Ubuntuの場合は以下のキャプチャの通り、Dashで''session''と入れれば自動起動設定のアイコンが表示されるので、起動し本スクリプトを追加してください。 #ref(21.png) --Lubuntuの場合は''設定→Lxsessionのデフォルトのアプリケーション''の自動立ち上げの設定が行えます。 ++ セッションと起動 の画面です。 #ref(01.png) #br ++ 本シェルスクリプトを追加します。 #ref(02.png) #br ++ 一番下に追加されているのが確認できます。 #ref(03.png) #br ++一度、ログアウトし、再度ログインすれば、本スクリプトが自動で実行されます。 * notify-sendコマンドを使ってタッチパッドのオンオフを表示する [#o1541561] 上記のシェルスクリプトにnotify-sendコマンドを追加し、通知メッセージが表示されるようにしたものになります。 #ref(touchpad_auto_on_off_2.sh) #!/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 -マウス接続時の通知 #ref(11.png) #br -マウスを抜いたときの通知 #ref(12.png) 以上、USB接続マウスの抜き挿しにより、ノートPCのタッチパッドをオン・オフするサンプルシェルスクリプトの紹介でした。 #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
テキスト整形のルールを表示する
添付ファイル:
21.png
403件
[
詳細
]
12.png
353件
[
詳細
]
11.png
369件
[
詳細
]
touchpad_auto_on_off_2.sh
360件
[
詳細
]
touchpad_auto_on_off_notify.sh
[
詳細
]
touchpad_auto_on_off.sh
375件
[
詳細
]
03.png
416件
[
詳細
]
02.png
349件
[
詳細
]
01.png
353件
[
詳細
]