快轉到主要內容

在Linux用ratbagd + Piper自訂羅技滑鼠按鍵功能

· 民國115年丙午年
·
切換繁體/簡體
分類 Linux系統 Linux玩遊戲
標籤 Wayland
目錄

最近買了個羅技G102二代的電競滑鼠給Linux電腦用,這個滑鼠接上去就能用,不用特殊驅動。

這個滑鼠還有切換DPI、顯示彩色LED、自訂鍵位的功能。可以透過電腦軟體自訂功能。

但果不其然的,官方程式Logitech G Hub只支援Windows和macOS系統,Linux需要用第三方開發的程式才能自訂功能。這裡我採用的方案是ratbagd + Piper。

ratbagd是D-Bus常駐程式,Piper是圖形控制前端。

引用哈梅爾的吹笛人的典故,透過老鼠袋(rat bag d,引申為討厭的人),搭配吹笛人(Piper),就可以指揮這群滑鼠。

ratbagd支援許多大廠牌的滑鼠。對羅技滑鼠的用戶來說,ratbagd可以作為Logitech G Hub的開源替代品。其他類似的軟體還有「Solaar」和「LogiOps」和「Input Remapper」。

1. 安裝ratbagd與Piper
#

ratbagd支援的滑鼠廠牌請看Github Wiki。許多羅技的知名系列都是支援的。

  1. ratbagd由libratbag專案提供。因為需要跟硬體溝通,因此最好用系統套件管理器安裝。以Ubuntu 24.04來說,可以直接從套件庫安裝ratbagd:
sudo apt install ratbagd
  1. 確認ratbagd服務是否有啟動
sudo systemctl enable --now ratbagd

sudo systemctl status ratbagd
  1. 使用ratbagctl list指令看是否能偵測到滑鼠型號
# 範例輸出
warbling-mara:       Logitech G102 LIGHTSYNC Gaming Mouse
  1. 使用ratbagctl <滑鼠名稱> info指令,列出目前滑鼠的資訊
# 範例輸出
warbling-mara - Logitech G102 LIGHTSYNC Gaming Mouse
             Model: usb:046d:c092:0
       Device Type: Mouse
 Number of Buttons: 6
    Number of Leds: 1
Number of Profiles: 1
Profile 0: (active)
  Name: n/a
  Report Rate: 1000Hz
  Resolutions:
    0: 400dpi
    1: 800dpi (active) (default)
    2: 1600dpi
    3: 3200dpi
    4: 200dpi (disabled)
  Button: 0 is mapped to 'button 1'
  Button: 1 is mapped to 'button 2'
  Button: 2 is mapped to 'button 3'
  Button: 3 is mapped to macro ''
  Button: 4 is mapped to macro ''
  Button: 5 is mapped to none
  LED: 0, depth: rgb, mode: cycle, duration: 1700, brightness: 119
  1. 接著安裝Piper,這個程式只是圖形前端,所以可以用Flatpak安裝:
flatpak install flathub org.freedesktop.Piper

2. 用Piper自訂滑鼠功能
#

ratbagd提供命令行設定工具ratbagctl,不過我們大部分時候用Piper圖形界面就可以完成設定了。Piper所做出的變更只會儲存在Linux電腦端,因此,滑鼠接上後會自動透過ratbagd套用它對應的行為。你自訂的鍵位可能不會儲存在滑鼠裡面,換電腦要重新設定。

第一個解析度面板可以手動切換DPI,點一下set active再按套用。這裡的DPI切換後若手感還是怪怪的,你可能要到Linux桌面環境的系統設定去看一下「滑鼠速度」是否正常。

LED燈自訂,就選取顏色,設定要呼吸燈循環顯示或者單色。這要看你的滑鼠支援哪些顏色。

按鈕面板就是自訂滑鼠的按鍵功能了。若要設定什麼都不做,就設定為Disable。

如果這裡沒有你想要的功能,但你想要設定滑鼠鍵觸發其他鍵盤事件的話,滑到最下面,傳送按鍵,設定要觸發的按鍵綁定(巨集)。例如我這裡把側邊鍵改為音量鍵(按鍵代碼為KEY_VOLUMEUPKEY_VOLUMEDOWN)。

但是我發現ratbagd有些按鍵綁定了之後還是沒反應,可能是bug?用ratbagctl info指令發現,我的滑鼠的按鍵綁定多個鍵。需要手動用ratbagctl <滑鼠名稱> button <數字> action set macro "電腦按鍵代碼"指令設定才有效。

想確認電腦按鍵代碼,使用evtest這個工具確認。

相關文章


此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。