Thinkpad Ubuntu の中央ボタンによるペーストを無効にする。

/
#ubuntu

環境

  • Thinkpad X280
    • Ubuntu 20.10
    • US keyboard
    • input langs: ja(Mozc), en

main

経緯

Thinkpad のトラックパッドのセンターボタンを使っていると、意図せずリンクが開いたり、クリップボードが動作したりと非常に困ったので治すことにした。

reference

how to

input button map 情報を取得する

undefined
1
xinput list
image

今回は Thinkpad のトラックポイントのセンターボタンを変更したいので、上写真中だと、id=16 になる。

ここで、id=16 に設定されているボタンマッピングを取得するには

undefined
1
# xinput get-button-map [device id]
2
xinput get-button-map 16
3
# => 1 2 3 4 5 6 7

出力された「1 2 3 4 5 6 7」は、指定された入力デバイスにおける物理的な順序を表していて、論理ボタンにマッピングされている。また、これら数字を 0 にすると、『無効化』ということになる。

また、これらボタンの機能の内容を確認するには

undefined
1
# xinput list [device id]
2
xinput list 16
image

上画像中の『Button labels』によると、xinput get-button-map で得られた数字は、『左ボタン、中央ボタン、右ボタン、ホイールアップ、ホイールダウン、左移動、右移動』。

input button map 情報を更新する

「1 2 3 4 5 6 7」のうち、中央ボタンに当たる『2』を『0』にすれば良い。

後の永続化のために、/.profile に書き込んで再起動して気が付きましたが、set-button-map にはidではなく、device-nameを使う方が良いみたいです…idは可変の模様。

undefined
1
# xinput set-button-map [device-name] map-button-order
2
xinput set-button-map "TPPS/2 Elan TrackPoint" 1 0 3 4 5 6 7
3
4
# 確認
5
xinput get-button-map 16
6
# => 1 0 3 4 5 6 7

設定を永続化する

今設定したものはパソコン再起動すると元に戻ってしまうので、永続化する必要がある。なので /home/[username]/.profile に先の xinput コマンドを記入し、ログイン時に .profile が読み込まれる際に xinput が実行されるようにする。

undefined
1
# /home/[username]/.profile
2
# xinput set-button-map [device-name] [button map numbers]
3
xinput set-button-map "TPPS/2 Elan TrackPoint" 1 0 3 4 5 6 7

もし左ボタンと右ボタンを入れ替えるなら

「1 2 3 4 5 6 7」を「3 2 1 4 5 6 7」に変更すれば良いので

undefined
1
xinput set-button-map "TPPS/2 Elan TrackPoint" 3 2 1 4 5 6 7

でできる。