Logitech G300 on ArchLinux

前陣子入手了 Logitech G300 這支滑鼠,相當優秀。
他的特色是把快速鍵記在滑鼠內,不需要安裝任何驅動程式。
其原理是送出「真正的鍵盤訊號」,因此可以相容所有遊戲。

不過在我的 ArchLinux 下這支 G300 使用不太正常
當我按下滑鼠鍵後,游標會飄移到螢幕左上方。
經過測試後,判斷是他送出的 keyboard 訊號問題
只要把 keyboard disable 掉就可以了。

xinput list
應該可以看到各有一個 Logitech G300 的鍵盤和滑鼠,後面會有 id 例如 12
xinput list-props 12
會看到類似
Device Enabled (132)
再下
xinput set-prop 12 132 0
就可以把這個裝置 disable 掉。

但是每次都要這樣查很麻煩,而且這號碼不是固定的
所以我寫成 script 可以放在 xinitrc 裏面去自動執行

#!/bin/sh
DEVICE_ID=`xinput list |  grep "Logitech Gaming Mouse G300" | grep keyboard | sed 's/.*id=\([0-9]*\).*/\1/'`

if xinput -list-props $DEVICE_ID | grep "Device Enabled" | grep "1$" > /dev/null
then
    xinput set-int-prop $DEVICE_ID "Device Enabled" 8 0
fi
接著還有一個小問題,就是每當機器 wake up 的時候,滑鼠又會跑掉了,那有沒有辦法在 wake up 時執行這段程式呢?
在 /etc/pm/sleep.d/ 下
新增一個 script 讓他去執行上一段程式就可以了。
!/bin/sh
# 90G300: suspend/wakeup Logitech G300 devices

case "$1" in
hibernate|suspend)
;;
thaw|resume)
/home/cat/.xinitrc.d/50-logitech-g300-mouse
;;
*) exit $NA
;;
esac

這個 solution 也同步更新到 Archwiki 上,這就是社群的力量啊!

Comments