因為在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