Life With Arch: 在xorg中設(shè)置輸入設(shè)備

xorg驅(qū)動的圖形系統(tǒng)下,輸入設(shè)備,如觸摸板之類的,都可以通過xinputcli工具或者用xorg.conf配置文件來設(shè)置。不同的是,通過寫xorg.conf是全局設(shè)置,xorg啟動過程中在讀取驅(qū)動信息的時候就可以生效了。而通過cli工具,只能將命令放入user session的啟動腳本(shell的profile文件,或者xinit或其他display manager的配置文件)中,才能做到啟動時生效。這樣設(shè)置條目多的時候user session的啟動腳本就會太長太復(fù)雜。既然是個人電腦,自然就越全局越好。

下面是我的libinput的配置文件。保存在/etc/X11/xorg.conf.d/99-libinput.conf中。

文件名中99這個數(shù)字是因為xorg啟動會讀取多個配置文件夾下的配置文件,且他是按文件名ASCII字母的順序讀取的。如果有相同的配置,后讀取的配置信息會把之前讀取的覆蓋。因為不希望啟動時被別的覆蓋把它設(shè)置在99。相當(dāng)于是最后讀取的配置了,就是希望它肯定能生效。除了這個和后綴.conf,文件名其實不重要。

下面逐條講解:

# 告訴xorg這個section是關(guān)于輸入設(shè)備的
Section "InputClass"                
# 標識,不重要。
        Identifier "libinput pointer catchall"      
# 告訴xorg,捕捉的event是來自Pointer
# Pointer 包括了鼠標和Thinkpad的trackpoint
        MatchIsPointer "on"                         
# 去所有輸入設(shè)備中捕捉event
        MatchDevicePath "/dev/input/event*"
# 捕捉到的信息交給驅(qū)動libinput
        Driver "libinput"
EndSection

# 另外一個section,用來設(shè)置觸摸板
Section "InputClass"
        Identifier "libinput touchpad catchall"
# 需要的是觸摸板的event
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"

# Option 開頭的是驅(qū)動選項,設(shè)置會提交給驅(qū)動,以定制行為

# 用鼠標加速,用adaptive和flat可選。adaptive也就是視手指滑動速度即時調(diào)整靈敏度。
# 而flat就是不加速。玩游戲必備,不過要在Pointer的section設(shè)置。
        Option "AccelProfile" "adaptive"
# 加速鼠標移動的位置計算時使用的數(shù)值,這個和上面一項的組合可以自己實驗來得到自己想要的效果。
        Option "AccelSpeed" "0.6"
# 打字時禁用觸摸板,感覺沒什么用,聊勝于無。
        Option "DisableWhileTyping" "true"
# clickfinger選項激活了:單指左鍵,雙指右鍵,三指中鍵
        Option "ClickMethod" "clickfinger"
# 反向滾動,模仿mac的scroll,雙指上劃意為著內(nèi)容往上而不是視區(qū)往上。這樣的滑動概念和手機等是一樣的。
        Option "NaturalScrolling" "true"
# 輕拍點按,這年頭必不可少。
        Option "Tapping" "true"
# 輕拍拖拽
        Option "TappingDrag" "true"
# 輕拍拖拽時會在一個很短的時間內(nèi)保留拖拽狀態(tài),長距離拖拽必備。
        Option "TappingDragLock" "true"
EndSection

驅(qū)動選項可以用man 4 libinput查看,不同的驅(qū)動是同理。

PointerTouchpad的驅(qū)動選項是相同的(廢話)。如果有使用鼠標,特別是玩游戲什么的,可以對Pointer也進行相應(yīng)的設(shè)置。

xinput CLI工具

當(dāng)然了,很多時候我們也需要在GUI環(huán)境內(nèi)隨時調(diào)整諸如鼠標靈敏度什么的。這時候就可以用上xinput命令了。

[]中的代表可填項。

xinput list [設(shè)備名/設(shè)備id]
# 如果你不提供設(shè)備信息,就給你刷一個`X`所托管的輸入設(shè)備的列表。
# 列表中提供設(shè)備名和設(shè)備ID

xinput list-props 設(shè)備名/設(shè)備id
# 列舉該設(shè)備的屬性(其實不是所有,但只要被配置過的屬性都在)
# 列表中有屬性名稱和屬性ID及其數(shù)值。

xinput set-props 設(shè)備名/設(shè)備ID 屬性名/屬性ID 數(shù)值

利用這個指令,我們可以將不同的設(shè)置做成腳本綁定在DE/WM的快捷鍵上。這樣可以在做不同的事情的時候隨時調(diào)整輸入設(shè)備了。

另外如果是臨時想在CLI中調(diào)整數(shù)值,邊查邊設(shè),直接用id比較方便。但如果是寫腳本,盡量使用設(shè)備/屬性的全名。因為,如果有新設(shè)備,啟動X時可能新的設(shè)備會導(dǎo)致ID變動。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • feisky云計算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 4,354評論 0 5
  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 32,305評論 2 89
  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內(nèi)容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 6,335評論 0 10
  • .bat腳本基本命令語法 目錄 批處理的常見命令(未列舉的命令還比較多,請查閱幫助信息) 1、REM 和 :: 2...
    慶慶慶慶慶閱讀 8,537評論 1 19
  • 體力勞動和腦力勞動消耗體能孰高孰低?哈哈‘’期末公允價值孰低計量‘’看懂這個的是同行(°u°)? 」 今天格外的累...
    魚小飛_閱讀 189評論 0 0

友情鏈接更多精彩內(nèi)容