Note: To disable Middle button of Mouse on Ubuntu

因為在Ubuntu 上面GTK Default 支援一個很討厭的Feature 就是用 Mouse 中間當Paste 鍵, 但是常常在Scrolling 時, 會誤觸 產生不必要的困擾
所以就找了找 Disable 這個 Feature 的方法
有說要改 GTK libarary code 對我來說實在太麻煩了
後來找到用 xinput set-button-map 的簡單方法
先用 xinput list 找出需要設定的滑鼠, 如下
kunyi@kunyi-ThinkPad-X220:~$ xinput list
⎡ Virtual core pointer                    id=2[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              id=4[slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® Nano Transceiver v2.0id=10[slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® Nano Transceiver v2.0id=11[slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                   id=16[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              id=14[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)]
    ↳ Sleep Button                            id=8[slave  keyboard (3)]
    ↳ Microsoft Microsoft® Nano Transceiver v2.0id=9[slave  keyboard (3)]
    ↳ Integrated Camera                       id=12[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            id=13[slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                  id=15[slave  keyboard (3)]
上面是 pointer 是指標裝置 我用的是 Microsoft Microsoft® Nano Transceiver v2.0
可以看到 id=10 & id=11, 但是這個因為是 USB Device 所以id 並不會一定每次開機都是 10 & 11 會隨著我的 USB bus 有所變化
但是總不能每天改 script吧!
所幸 有pipe & grep & xargs 幫我解決這個問題, 透過下面的指令串就可以自動把id 抓出來, 然後執行 xinput set-button-map
應該有更簡單的寫法不過我試不出來 >_<
 xinput list | grep -Po ‘Microsoft.*pointer’ | grep -Po ‘id=\K[0-9]+’ | xargs -n 1 -I @ xinput set-button-map @ 1 0 3

發表留言