archlinux 觸控板手勢配置

月巴左耳东發表於2024-11-25

目錄
  • libinput-gestures
    • 安裝 libinput-gestures
    • 加入 input 組
    • 建立配置檔案
      • 可用手勢
    • 啟動 libinput-gestures
    • 停止 libinput-gestures
    • 自啟動 libinput-gestures


  • Touchpad Synaptics
  • synaptics.4

/etc/X11/xorg.conf.d/ 目錄下會有預設的觸控板配置檔案,如果用的 libinput,配置檔案是 40-libinput.conf

下面是一些常用的選項

Section "InputClass"
    Identifier "touchpad"
    Driver "synaptics"
    MatchIsTouchpad "on"
        Option "TapButton1" "1"
        Option "TapButton2" "3"
        Option "TapButton3" "2"
        Option "VertEdgeScroll" "on"
        Option "VertTwoFingerScroll" "on"
        Option "HorizEdgeScroll" "on"
        Option "HorizTwoFingerScroll" "on"
        Option "CircularScrolling" "on"
        Option "CircScrollTrigger" "2"
        Option "EmulateTwoFingerMinZ" "40"
        Option "EmulateTwoFingerMinW" "8"
        Option "CoastingSpeed" "0"
        Option "FingerLow" "30"
        Option "FingerHigh" "50"
        Option "MaxTapTime" "125"
        ...
EndSection
  • TapButton1
    • (整數)配置在非角點單指點選時報告哪個滑鼠按鈕。
  • TapButton2
    • (整數)配置在非角點雙指點選時報告哪個滑鼠按鈕
  • TapButton3
    • (整數)配置在非角點三指點選時報告哪個滑鼠按鈕
  • RBCornerButton
    • (整數)配置在右下角報告哪個滑鼠按鈕,單指點選(使用 Option "RBCornerButton" "3" 實現右下角滑鼠右鍵的 Ubuntu 樣式點選行為
  • RTCornerButton
    • (整數),但對於右上角,請用一根手指點選。
  • VertEdgeScroll
    • (布林值)允許在觸控板的右邊緣拖動時進行垂直滾動。
  • HorizEdgeScroll
    • (布林值)在觸控板的底部邊緣拖動時啟用水平滾動。
  • VertTwoFingerScroll
    • (布林值)啟用使用兩根手指進行垂直滾動。
  • HorizTwoFingerScroll
    • (布林值)啟用使用兩個手指進行水平滾動。
  • EmulateTwoFingerMinZ/W
    • (整數)播放此值以設定雙指滾動的精度。
  • FingerLow
    • (整數)當手指壓力低於此值時,驅動程式會將其計為釋放。
  • FingerHigh
    • (整數)當手指壓力超過此值時,驅動程式會將其計為一次觸控。
  • MaxTapTime
    • 確定拍子的 “清脆” 程度才能被視為真正的拍子。減小該值以需要更清脆的點選。正確調整此引數可以減少手懸停或輕輕觸控 pad 時的誤報。
  • VertScrollDelta and HorizScrollDelta
    • (integer) 配置滾動速度,這有點違反直覺,因為較高的值會產生更高的精度,因此滾動速度會變慢。負值會導致自然滾動,就像在 macOS 中一樣。
  • 如果您的觸控板過於敏感,請為 FingerLowFingerHigh 使用較高的值,反之亦然。請記住 FingerLow 應小於 FingerHigh

libinput-gestures

雖然 libinput 驅動程式已經包含用於處理高階多點觸控事件(如滑動和捏合手勢)的邏輯,但桌面環境或視窗管理器可能尚未為所有這些事件實施操作

於符合 EWMH (另見 wm-spec) 的視窗管理器,可以同時使用 libinput-gestures 工具。程式從觸控板讀取 libinput 手勢(透過 libinput debug-events),並根據配置檔案將它們對映到手勢。因此,它在 libinput 的內建識別範圍內提供了一些靈活性

  • libinput-gestures
    • 您需要 python 3.7 或更高版本,不支援 python2。您還需要 libinput 版本 1.0 或更高版本。

安裝 libinput-gestures

安裝 libinput-gestures 需要用到 aur 源,需要提前安裝好 yay 命令

yay -S libinput-gestures

安裝其他依賴

sudo pacman -S wmctrl xdotool

加入 input 組

必須是 input 組的成員才能獲得讀取觸控板裝置的許可權

sudo gpasswd -a $USER input

建立配置檔案

  • 預設手勢在 /etc/libinput-gestures.conf 中。
    • 如果要建立自己的自定義手勢,請將該檔案複製到 ~/.config/libinput-gestures.conf 並對其進行編輯
    • 該檔案中描述了許多示例和選項
cp /etc/libinput-gestures.conf ~/.config/

一些常用的配置,其他玩法,可以看配置檔案

  • 這裡的 key 對應的是 i3-wm 的快捷鍵,具體的快捷鍵,需要檢視自己的 i3 配置檔案 grep mod+ ~/.config/i3config
# 四指上劃切換懸浮模式
gesture swipe up        4 xdotool key super+Shift+space
# 四指下劃關閉視窗
gesture swipe down      4 xdotool key super+Shift+q
# 四指左劃切換到左側工作區
gesture swipe left      4 xdotool key super+Shift+Left
# 四指右劃切換到右側工作區
gesture swipe right     4 xdotool key super+Shift+Right
# 雙指縮放
gesture pinch in        2 xdotool key ctrl+minus
gesture pinch out       2 xdotool key ctrl+plus

官方預設開啟的配置

gesture swipe up        _internal ws_up
gesture swipe down      _internal ws_down
gesture swipe left      xdotool key alt+Right
gesture swipe right     xdotool key alt+Left
gesture pinch in        xdotool key super+s
gesture pinch out       xdotool key super+s

可用手勢

Gesture 手勢 Example Mapping 示例對映
swipe up 向上滑動
swipe down 向下滑動
swipe left 向左滑動
swipe right 向右滑動
swipe left_up 向左上滑動
swipe left_down 向左下滑動
swipe right_up 向右上滑動
swipe right_down 向右下滑動
pinch in 捏合縮小
pinch out 捏合放大
pinch clockwise
pinch anticlockwise
hold on 請參閱按住手勢的說明。
hold on+NN 秒,例如 1.5) 按住時長。請參閱按住手勢的說明。

啟動 libinput-gestures

libinput-gestures-setup start

停止 libinput-gestures

libinput-gestures-setup stop

自啟動 libinput-gestures

libinput-gestures-setup autostart

相關文章