美文网首页
Life With Arch: 在xorg中设置输入设备

Life With Arch: 在xorg中设置输入设备

作者: 蚂蚁啃骨头oO | 来源:发表于2019-01-09 12:27 被阅读0次

    xorg驱动的图形系统下,输入设备,如触摸板之类的,都可以通过xinputcli工具或者用xorg.conf配置文件来设置。不同的是,通过写xorg.conf是全局设置,xorg启动过程中在读取驱动信息的时候就可以生效了。而通过cli工具,只能将命令放入user session的启动脚本(shell的profile文件,或者xinit或其他display manager的配置文件)中,才能做到启动时生效。这样设置条目多的时候user session的启动脚本就会太长太复杂。既然是个人电脑,自然就越全局越好。

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

    文件名中99这个数字是因为xorg启动会读取多个配置文件夹下的配置文件,且他是按文件名ASCII字母的顺序读取的。如果有相同的配置,后读取的配置信息会把之前读取的覆盖。因为不希望启动时被别的覆盖把它设置在99。相当于是最后读取的配置了,就是希望它肯定能生效。除了这个和后缀.conf,文件名其实不重要。

    下面逐条讲解:

    # 告诉xorg这个section是关于输入设备的
    Section "InputClass"                
    # 标识,不重要。
            Identifier "libinput pointer catchall"      
    # 告诉xorg,捕捉的event是来自Pointer
    # Pointer 包括了鼠标和Thinkpad的trackpoint
            MatchIsPointer "on"                         
    # 去所有输入设备中捕捉event
            MatchDevicePath "/dev/input/event*"
    # 捕捉到的信息交给驱动libinput
            Driver "libinput"
    EndSection
    
    # 另外一个section,用来设置触摸板
    Section "InputClass"
            Identifier "libinput touchpad catchall"
    # 需要的是触摸板的event
            MatchIsTouchpad "on"
            MatchDevicePath "/dev/input/event*"
            Driver "libinput"
    
    # Option 开头的是驱动选项,设置会提交给驱动,以定制行为
    
    # 用鼠标加速,用adaptive和flat可选。adaptive也就是视手指滑动速度即时调整灵敏度。
    # 而flat就是不加速。玩游戏必备,不过要在Pointer的section设置。
            Option "AccelProfile" "adaptive"
    # 加速鼠标移动的位置计算时使用的数值,这个和上面一项的组合可以自己实验来得到自己想要的效果。
            Option "AccelSpeed" "0.6"
    # 打字时禁用触摸板,感觉没什么用,聊胜于无。
            Option "DisableWhileTyping" "true"
    # clickfinger选项激活了:单指左键,双指右键,三指中键
            Option "ClickMethod" "clickfinger"
    # 反向滚动,模仿mac的scroll,双指上划意为着内容往上而不是视区往上。这样的滑动概念和手机等是一样的。
            Option "NaturalScrolling" "true"
    # 轻拍点按,这年头必不可少。
            Option "Tapping" "true"
    # 轻拍拖拽
            Option "TappingDrag" "true"
    # 轻拍拖拽时会在一个很短的时间内保留拖拽状态,长距离拖拽必备。
            Option "TappingDragLock" "true"
    EndSection
    

    驱动选项可以用man 4 libinput查看,不同的驱动是同理。

    PointerTouchpad的驱动选项是相同的(废话)。如果有使用鼠标,特别是玩游戏什么的,可以对Pointer也进行相应的设置。

    xinput CLI工具

    当然了,很多时候我们也需要在GUI环境内随时调整诸如鼠标灵敏度什么的。这时候就可以用上xinput命令了。

    []中的代表可填项。

    xinput list [设备名/设备id]
    # 如果你不提供设备信息,就给你刷一个`X`所托管的输入设备的列表。
    # 列表中提供设备名和设备ID
    
    xinput list-props 设备名/设备id
    # 列举该设备的属性(其实不是所有,但只要被配置过的属性都在)
    # 列表中有属性名称和属性ID及其数值。
    
    xinput set-props 设备名/设备ID 属性名/属性ID 数值
    

    利用这个指令,我们可以将不同的设置做成脚本绑定在DE/WM的快捷键上。这样可以在做不同的事情的时候随时调整输入设备了。

    另外如果是临时想在CLI中调整数值,边查边设,直接用id比较方便。但如果是写脚本,尽量使用设备/属性的全名。因为,如果有新设备,启动X时可能新的设备会导致ID变动。

    相关文章

      网友评论

          本文标题:Life With Arch: 在xorg中设置输入设备

          本文链接:https://www.haomeiwen.com/subject/efwwrqtx.html