最近更新: 2011-03-07

Logitech Trackman Marble on Debian / Ubuntu

繼小紅點(TrackPoint)讓我玩上癮之後,我又對另一種不常見的指標設備 — 軌跡球 — 感到興趣了。 昨天終於弄了一個價格合宜的羅技木星軌跡球(Logitech Trackman Marble)來玩,台幣約在680元左右。

包裝中附有 Windows 與 MacOS 的驅動程式。在 Windows 上的使用方式不必多講了。 我來說說在 Ubuntu 10.04 上使用這隻軌跡球的經驗吧。

2013-03-19 更新在 Debian 6 上的使用內容。

各部名稱說明

木星軌跡球提供四顆按鍵,分別是大左鍵、大右鍵、小左鍵、小右鍵。 按照羅技預設狀態,大左鍵與大右鍵即一般的滑鼠左、右鍵,小左鍵即瀏覽器的上一頁鍵,小右鍵即瀏覽器的下一頁鍵。 而在 X 環境下,這四顆按鍵由左到右的代號是:

  • 大左鍵: 1
  • 小左鍵: 8
  • 小右鍵: 9
  • 大右鍵: 2

本文主要使用代號稱呼上述按鍵,例如「第8鍵」表示小左鍵。

GPointing Device Settings (Pointing devices)

羅技木星軌跡球(Trackman Marble)的識別名稱是"Logitech USB Trackball",大部份的功能都可以在 GPointing Device Settings 中設定。

GPointing Device Settings 的執行名稱是 "gpointing-device-settings",在「系統/偏好設定」選單中的名稱則是"Pointing devices"。 程式畫面如下圖:

Trackball in gpointing device settings
Middle Button Emulation (中鍵模擬)

Middle Button Emulation 設定中鍵模擬功能。啟用後,同時點擊大左鍵(第1鍵)與大右鍵(第2鍵)等於點擊滑鼠中鍵。

Check this will enable pressing buttons 1 and 2 at the same time as a middle mouse click.

如果你希望指定第8鍵或第9鍵等於滑鼠中鍵的話,Ubuntu 10.04 需要透過 Xorg 的組態設定才可實現, Debian 6 則可以使用 xinput 設置。

Wheel Emulation (滾輪模擬)

Wheel Emulation 設定滾輪模擬功能。啟用後,按住滾輪模擬鍵再滾動軌跡球,即等於滾輪滾動。 由 button 處選擇哪一個鍵代表滾輪模擬鍵。 例如選擇 8 表示小左鍵(第8鍵)代表滾輪模擬鍵。

但是此處有個問題,即 GPointing Device Settings 中並無法選擇小右鍵(第9鍵)代表滾輪模擬鍵。 如果你希望指定第9鍵代表滾輪模擬鍵,需透過指令實現。指令為: xinput set-prop "Logitech USB Trackball" "Evdev Wheel Emulation Button" 9。 請參考下一節的內容。

xinput

如果不想使用 GPointing Device Settings,亦可自行使用工具 xinput 設定。

使用 xinput 設定時必須指定軌跡球的設備名稱,這可以指令 xinput --list 查看。 羅技軌跡球的設備名稱通常是 "Logitech USB Trackball"。 如果你的羅技軌跡球的設備名稱不一樣,則下列指令中的設備名稱處,請自行修改。

得知設備名稱後,就可查看軌跡球有哪些屬性可以設定,指令為 xinput list-props "Logitech USB Trackball"。 它會列出許多屬性及其當前設定值。例如:

  • Evdev Middle Button Emulation: 1
    是否啟用滑鼠中鍵模擬: 啟用後,同時點擊大左鍵與大右鍵等於點擊滑鼠中鍵。 (亦可由 GPointing Device Settings 設定)。
  • Evdev Middle Button Timeout: 50
    點擊速度 (亦可由 GPointing Device Settings 設定)。
  • Evdev Wheel Emulation: 1
    是否啟用滾輪模擬: 啟用後,按住滾輪模擬鍵再滾動軌跡球,即等於滾輪滾動。 (亦可由 GPointing Device Settings 設定)。
  • Evdev Wheel Emulation Button: 8
    指定滾輪模擬鍵: 8 是小左鍵,9是小右鍵。 (可由 GPointing Device Settings 設定,但第9鍵必須用 xinput 指定)。
  • Evdev Wheel Emulation Axes: 6, 7, 4, 5
    允許水平與垂直方向滾動 (亦可由 GPointing Device Settings 設定)。
  • Evdev Wheel Emulation Inertia: 10
    滾動慣性 (亦可由 GPointing Device Settings 設定)。
  • Evdev Wheel Emulation Timeout: 200
    按住時間 (亦可由 GPointing Device Settings 設定)。

例如下列4行指令可令軌跡球的操作行為是同時點擊大左、大右兩鍵為滑鼠中鍵,按住小右鍵(第9鍵)為滾輪。

xinput set-prop "Logitech USB Trackball" "Evdev Middle Button Emulation" 1
 # 啟用中鍵模擬:啟用後,同時點擊大左鍵與大右鍵等於點擊滑鼠中鍵。

xinput set-prop "Logitech USB Trackball" "Evdev Wheel Emulation" 1
 # 啟用滾輪模擬: 啟用後,按住滾輪模擬鍵再滾動軌跡球,即等於滾輪滾動。

xinput set-prop "Logitech USB Trackball" "Evdev Wheel Emulation Button" 9
 # 指定滾輪模擬鍵: 8 是小左鍵,9是小右鍵。
 # 在 GPointing Settings 中,不能指定第9鍵。

xinput set-prop "Logitech USB Trackball" "Evdev Wheel Emulation Axes" 6 7 4 5
 # 允許水平與垂直方向滾動。

較新版本的 xinput 還可以指定軌跡球的按鍵對應。例如 Debian 6 的 xinput 就可以。 執行 xinput get-button-map "Logitech USB Trackball" 可以查看目前的按鍵對應。 使用 set-button-map 選項則可以改變按鍵對應。

以指定滑鼠中鍵為例,分成以下三種用法 (Ubuntu 10.04不適用):

  • xinput set-button-map "Logitech USB Trackball" 1 2 3 4 5 6 7 8 9
    預設按鍵配置,同時按下軌跡球的大左鍵加大右鍵等於滑鼠中鍵。
  • xinput set-button-map "Logitech USB Trackball" 1 8 3 4 5 6 7 2 9
    按下軌跡球的小左鍵等於滑鼠中鍵。
  • xinput set-button-map "Logitech USB Trackball" 1 8 3 4 5 6 7 9 2
    按下軌跡球的小右鍵等於滑鼠中鍵。

以上指令所設定的內容,僅指定第9鍵代表滾輪模擬和指定第8或第9鍵模擬滑鼠中鍵這兩項是 GPointing Device Settings 做不到的,其他皆可以 GPointing Device Settings 設定。就看個人的使用習慣。

這些指令內容可寫進 /etc/gdm/PreSession/Default 或是家目錄的 .xsessionrc 中,即可在登入桌面時自動執行。 亦可在「系統/偏好設定/始動應用程式」中,添加自動啟動項目執行。

Xorg 組態文件

這是 Debian 6 / Ubuntu 10.04 才開始加入的設定機制。 在 Ubuntu 線上輔助文件 Logitech_Marblemouse_USB 中說明的也是這種設定方式。 但我個人試用結果,其行為細節似乎和 Ubuntu 線上輔助文件的說明有些出入。

當我參考線上文件第二種情境(simple middle button and scrolling)的設定方式後, 我發現在我的系統上的行為表現是點擊第8鍵等於中鍵,按住第8鍵再滾動軌跡球等於滾輪。 亦即第8鍵才是滾輪模擬鍵,而非文件設定中說明的第9鍵。 這似乎是個 bug,只有利用 xinput 才能指定第9鍵為滾輪模擬鍵。

基本上,這個設定方式相當麻煩,不建議使用。我還是建議使用前兩種工具設定軌跡球功能。

個人設定與使用感覺

因為我習慣了小紅點(TrackPoint)的使用方式,所以我的設定的軌跡球操作方式是: 一、啟用滾輪模擬;二、指定點擊第8鍵(小左鍵)等於滑鼠中鍵;三、按住第8鍵再滾動軌跡球等於滾輪。

我主要是用 GPointing Device Settings 設定內容。 只有指定點擊第8鍵等於滑鼠中鍵的項目,我透過 Xorg 組態文件或 xinput 實現。 我將軌跡球的 Xorg 組態內容儲存在:

  • Debian: /usr/share/X11/xorg.conf.d/10-marble.conf 。
  • Ubuntu: /usr/lib/X11/xorg.conf.d/10-marble.conf 。
Section "InputClass"
    Identifier      "Marble Mouse"
    MatchProduct    "Logitech USB Trackball"
    MatchIsPointer  "on"
    MatchDevicePath "/dev/input/event*"
    Driver          "evdev"
    Option          "SendCoreEvents" "true"

    Option "Buttons"            "9"

    #
    # This makes left small button (8) into the middle, and puts
    #  scrolling on the left small button (8).
    #

    # If you do not like to press buttons 1 and 4 at the same time,
    # use this settings to make button 8 into the middle.
    Option "ButtonMapping"      "1 8 3 4 5 6 7 2 9"

    # Also can use GPoint Device Settings.
    Option "EmulateWheelButton" "8"
    Option "EmulateWheel"       "true"
    Option "YAxisMapping"       "4 5"
    Option "XAxisMapping"       "6 7"

EndSection

就個人使用感覺而言,個人寫程式的時候,小紅點還是比軌跡球便利些。 不過試著在繪圖軟體上畫線條時,倒是軌跡球畫的比較直。 若跟滑鼠來比,軌跡球確實也比滑鼠好用,不論是使用空間,或是手腕舒適度上,皆優於滑鼠。

相關文章
樂多舊網址: http://blog.roodo.com/rocksaying/archives/15305647.html

樂多舊回應
jonny@ubuntu-tw.org(凍仁翔) (#comment-22441178)
Sun, 06 May 2012 05:25:10 +0800
xinput 現在也支援模擬中鍵點擊囉!

-> Middle Click - Logitech_Marblemouse_USB