Linux笔记 ·

Ubuntu中禁用TinkPad触摸屏

本来有触摸屏是件好玩的事情,无奈屏幕裂一道缝了,导致经常自动点击,影响正常使用。安了Ubuntu后,找了许久终于找到一个能用的解决方案。主要思想是通过xinput禁用驱动解决,缺点是关机后失效。

本此使用的环境:

  • ThinkPad-S3-Yoga-14。
  • Ubuntu 18.10

xinput

1.在终端输入xinput

在列出的输入设备列表中查找触摸屏对应的名称.这里是SYNAPTICS Synaptics Touch Digitizer V04和其id:14.

注意:

  • id每次插入新的硬件例如鼠标键盘等,可能会导致id号发生变化,故请使用对应的id号
  • 该方式原则上适用各种品牌禁用触屏,只是每台电脑的触屏驱动可能不同,请在列表中酌情选择。

2、设置触摸屏的enabled属性为0,禁用触摸屏

xinput set-prop 14 "Device Enabled" 0

3、查看触摸屏属性列表

xinput list-props 14

配置开机自动执行

上面的设置每次启动都要手动配置一遍显然会很麻烦,此时我们完全可以通过编写shell脚本,开机加载让其自动设置即可。

创建sh脚本

此处在 /home/windcoder/documents/ss目录下创建

vi disableTouch.sh

在文件中输入:

#!/bin/bash

# 禁用桌面触摸屏

DESKTOP_DEV='SYNAPTICS Synaptics Touch Digitizer V04'

HAVE_DISKTOP_TOUCH=`xinput list | grep "$DESKTOP_DEV"`


if [ "$HAVE_DISKTOP_TOUCH" != "" ];
then
    echo "触摸屏开始关闭"
   if [ `xinput list-props "$DESKTOP_DEV" | grep "Device Enabled" | awk  -F ':' '{print $2}'` == 1 ]; 
   then
       echo "触摸屏关闭中"
       xinput set-prop "$DESKTOP_DEV" 'Device Enabled' 0
       echo "触摸屏关闭成功!"
    else
        echo "关闭失败。。。"
    fi
else
    echo "程序关闭"
fi
echo "彻底结束了"

脚本中的echo语句均可删除,此处只是为了测试脚本才添加的。

配置开机启动

在终端使用:

sudo vi /etc/profile

在末尾添加:

. /home/windcoder/documents/sh/disableTouch.sh

保存退出,最后执行如下即可:

source /etc/profile

此时重启即可发现对应驱动已经自动禁止了。

Ubuntu中禁用TinkPad触摸屏

参考资料

Ubuntu中禁用华硕S550C触摸屏的方法

参与评论