読者です 読者をやめる 読者になる 読者になる

私が歌川です

@utgwkk が書いている

Ubuntuで、起動時にマウスを接続してたらタッチパッドを無効化したい

はじめに

ノートパソコンの悩みの種になりうるタッチパッドくん。
キー入力中にタッチパッドに触れて、あらぬ方向をクリックしてたら、もう怒りをどこにぶつけてよいか分からなくなりますよね。

で、Touchpad-Indicatorなるソフトがあるらしいんですが、最新のUbuntuだとうまく動きませんでした。
ここは仕方ないので、起動時(あと、好きなとき)にサクッとタッチパッドの有効無効を切り替えられるようなシェルスクリプトを書きましょう。
まさかの時のためのシェルスクリプト

必要なもの

gawk が必要です。
なかったら、

sudo apt-get install gawk

しましょう。

コード

#!/bin/bash

touchpadid=$(xinput list | grep Touchpad | gawk '{print gensub(/(.*)id=([0-9]+)(.*)/,"\\2","")}')
mouse=$(xinput list | grep Mouse)
state=$(xinput list-props $touchpadid | grep Enabled | tail -c 2)

[ -z "$mouse" ] && exit

if test "$state" = '1'
then
    xinput disable $touchpadid
    echo Touchpad has been disabled.
else
    xinput enable $touchpadid
    echo Touchpad has been enabled.
fi

はい。

あとはこれを、自動起動するアプリケーション にぶっ込んでやればOKです。

ちなみに

変数にスペースが含まれているときは、ダブルクオーテーションで囲まないと、スペースで区切られて認識されるぽいです。
あと、試してないけどたぶん他のLinuxディストリビューションでもできます。

追記

なんか、` ` でコマンドを囲んで実行結果を変数に格納! っていうのがうまくいかなくなってる……。
探したら、$(コマンド)でできるっていうのが出てきた。プロ。

参考