xinputコマンドを使ってラップトップPCのタッチパッドの無効有効を即座に切り替える
背景
まず、キーボードを入力するとき、少し手のひらがタッチパッドに触れるとカーソルが動いてしまう。この問題について、ThinkPadを所有している(使っている)知り合いに尋ねたところ、「そもそもトラックパッドは無効化している」という返答がほとんどだった。
タッチパッドがクソ:タッチパッドがボタンと一体になっているため、 Thinkpad 伝統のトラックポイントを使うと、認識がとても怪しくなる。そしてでかいため、指が触れて誤操作の原因になってしまう。これについては、 Mac から影響を受けたのではないかと考えている。実際に、タッチパッドのみで使っていると驚くほど Mac ユーザーにとって違和感がない。そこを従来のトラックポイントと無理に合わせようとしたため、中途半端になってしまったと思われる。実際、 X220 を使う際はトラックポイントを使っているのだが、 X240 では全く使っていない。
そもそもThinkpadのタッチパッドは基本無効化するものなのでどうでもいい。まあそのスペース邪魔なんだよ、とは思いますがw
以上のように, タッチパッドはキーボードを使うときに邪魔であることがわかります. Thinkpadを使っている人なら単純にタッチパッドを無効化すれば良いでしょう, トラックポイントでカーソルを動かせますから.
XPS 13などの普通のラップトップPCでの解決法
しかし, XPS 13を使っている私にとってはそうはいきません, トラップポイントなどXPS 13にはないからです. EmacsやFirefoxにKeySnailを使うことで, 極力キーボードだけで操作をできるようにしていますが, それでもマウスカーソルが必要になってしまうことはあります.
そこで, タッチパッドの無効有効を快適に制御する必要がありました. 私のncaq/.xmonadのコミットログを見ると, 2014年ごろには既に私はその問題を解決していたらしいです.
xinputコマンド
xinputコマンドは,
Xデバイスの設定をするコマンドです.
例えばxinput
を今のPCで実行すると,
% xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Integrated_Webcam_HD id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
現在繋がっているデバイスを表示してくれます. デバイスが認識されているかなどを調べるのに便利です.
そして本題はxinput --disable
, xinput --enable
コマンドです.
これに対してデバイスの名前を渡してあげると,
そのままデバイスを簡単に無効化することが出来ます.
私の場合はxinput --disable SynPS/2\ Synaptics\ TouchPad
です.
後はこれをお使いのデスクトップ環境のキーボードショートカットに指定してあげれば,
ボタンを軽く叩くだけで,
タッチパッドの無効有効を切り替えることが出来ます.
xmonadの場合はspawn "xinput --enable 'SynPS/2 Synaptics TouchPad'"
をプログラムに埋め込めば良いですし,
gnomeの場合はそのまま独自のショートカットに指定すれば良いですね.
私はこのコマンドをf1とf2に設定して, f1で即カーソル無効, f2でカーソル有効, となるように設定しています.
すぐれたGNU/Linux環境の前では「タッチパッドが邪魔」などという問題はひとひねりだということがわかりますね. 余談ですが, KDEのタッチパッド設定には「マウスを接続すると自動的にタッチパッドが無効になる」というものがあり, あれは優れていると感じました. まあ私はラップトップPCにわざわざマウスなど繋ぎませんが…