😃

MX Linux 23.1_ahs (Libretto)でタッチパッドの有効無効切り替えコマンド作りました

2023/12/09に公開

経緯

私はMX Linux 23.1_ahs (Libretto)をノートPCで使っています。MX LinuxのGUIは他のLinuxディストリビューションよりとてもフレンドリーで気に入っています。※個人の感想です
マウスコンピューターのDAIVにはタッチパッドの左上部分にタッチパッドの有効無効をダブルタップで切り替える機能がついています。しかし、Windows10で使えてMX Linuxで使えないという不便な思いをしました。
それがなくても、MX LinuxだとGUIで[設定]→[マウスとタッチパッド]からタッチパッドの有効無効を切り替えられるのですが、その度にいちいち開くのが面倒くさいと思いました。
いつでもターミナルをぱっと立ち上げて、短いコマンド一つでぱぱっと切り替えができたら便利だな、と思ってそのコマンドを作りました。
ダブルタップでの切り替えをCapsLockキーで代替する方法を後述しています。

環境

OS: MX 23.1_ahs (Libretto)
PC: mouse DAIV

事前準備

Alt+Ctrl+Tでターミナルを開いてください。

作り方

タッチパッドのデバイス名を確認する

まずは自分の使っているタッチパッドのデバイス名を確認します。

$ xinput -list

すると、ずらりとリストが出てきます。私が使っているものはこのとおりに認識されました。

⎜   ↳ UNIW0001:00 093A:1336 Touchpad          	id=17	[slave  pointer  (2)]

この UNIW0001:00 093A:1336 Touchpadというのがデバイス名です。
デバイス名をテキストエディタなどにコピペして控えておいてください。

スクリプトを作成する

スクリプトの置き場所はどこでも構いませんが、私はホームディレクトリに作りました。

vi ~/switch_touchpad.sh

以下のスクリプトをコピペして、UNIW0001:00 093A:1336 Touchpadの部分を控えておいたデバイス名に書き換えてください。

#!/bin/bash
DeviceName='UNIW0001:00 093A:1336 Touchpad'
ChkStatus=$( xinput --list-props "${DeviceName}" | egrep -m1 'Device Enable' | awk '{print $(NF-0)}')
case ${ChkStatus} in
  "0")
    xinput enable "${DeviceName}"
    echo "${DeviceName} has been enabled.";;
  "1")
    xinput disable "${DeviceName}"
    echo "${DeviceName} has been disabled.";;
  *)
    echo "Not Found: "${DeviceName}""
esac

その後、スクリプトに実行権限を与えます。

$ chmod +x ~/switch_touchpad.sh

実行権限が付与されたことを確認します。

$ ls -l ~/switch_touchpad.sh 
-rwxr-xr-x 1 takuya takuya 401 129 10:30 /home/takuya/switch_touchpad.sh

スクリプトのエイリアスを作成する

作ったスクリプトをコマンドとして使いたいので、エイリアスを設定します。
エイリアスは~/.bashrcに書き込みます。

以下のコマンドでswitch_touchpadというエイリアスを設定します。

$ cat << EOF >> ~/.bashrc   
# Enable/Disable Touchpad
alias switch_touchpad='~/switch_touchpad.sh'
EOF

その後、~/.bashrcを読み込みます。

$ source ~/.bashrc

これでコマンドが完成しました。

使い方

Alt+Ctrl+Tでターミナルを開いてswitch_touchpadと打てば簡単にタッチパッドの有効無効を切り替えることができます。

$ switch_touchpad

注意: タッチパッドを無効化する前にマウスが使えることを必ず確認してください。マウスなしでタッチパッドを無効化するとキーボード操作しかできなくなります。

もっと便利な使い方

えっ?ターミナルを開くのが面倒くさい?なるほど。その気持ち、とてもわかります。
私もコマンドを作った後そう思いました。キーボードショートカットが使えたらなおいいですよね。
それを実現できる方法を見つけました。今ここで忌々しいCapsLockキーを生贄に捧げましょう。

[設定]→[キーボード]に行きます。
それもめんどくさいので検索欄で"キーボード"を入力しました。

追加をクリックします。

bash switch_touchpad.shと入力して、OKをクリックします。

この画面が出てきたらCapsLockキーを押します。

たったのこれだけ!
設定は完了です。キーボード設定画面は閉じてください。
CapsLockキーを押す度にタッチパッドの有効無効が切り替わるはずです。
CapsLockが忌々しい役立たずのキーではなく、【縁の下の力持ち】のキーになってくれました。
これで、ダブルタップでタッチパッド有効無効を切り替える方法はCapsLockキーを押すという方法に取って代わりました。

今回の感想

我ながら実に素晴らしい働きをしました。xinputコマンドを使うと、マウスやキーボード、トラックボールマウス、ペンタブなどの入力装置がコマンドラインで設定できるとわかりました。Linux MintでWACOMのペンタブを使っている時にはこのコマンドを使ったことがあるので、MX Linuxでも似たような方法があるのだとわかりました。
今回は色々検証しながら久しぶりにBashスクリプトを書きました。30分間ほどトライアンドエラーでしたが、無事に望んだものが実現できたことには感無量と言わざるを得ません。
また、昨今はデスクトップLinuxとしてMX Linuxが人気を博しています。
「これからMX Linuxを使い始めてみようかな?」という方にとってこの記事が少しでも貢献できたのならば嬉しい限りです。
この記事が初めてとなりますが、Markdownでサクサク書けたこと、その練習になったことで知的好奇心がくすぐられたといいますか、アウトプットのために頭が冴えた気がします。
この記事をお読みくださいまして、ありがとうございました。

docendō discimus

Discussion