问题描述
我有一个带有Ubuntu 14.04触摸屏的Dell 14R。当我通过单击带有TouchPad或Super +组合的启动器来启动Google Chrome时,Chrome中的触摸支持不起作用。当我触摸某个元素时,它只会获得焦点,而不会激活该元素(按钮,字段等)。而且触摸手势不起作用。另一方面,如果我通过触摸启动器按钮启动Chrome,则触摸滚动在Chrome中有效,即使向左滑动也可以返回上一页,依此类推。这对我来说没有意义,但即使这样也是如此跨重新启动。任何人都可以确认吗?关于如何解决的任何想法?
最佳办法
Chrome的--touch-devices
命令行参数可以为我解决该问题。
在控制台中确定X的输入设备ID
xinput list
导致
google-chrome --touch-devices=10
在我的系统上。
要使Chrome始终使用此CLI标志,请参阅:How to set CLI flags for Google Chrome?
次佳办法
更新答案:
-
编辑
~/.profile
并将以下内容添加到文件末尾:export CHROMIUM_USER_FLAGS="--touch-devices=`echo $(xinput list | grep 'Virtual core pointer' | awk 'match(\$0, /id=/){print substr($0, RSTART+3, RLENGTH-1)}')` --touch-events=enabled --enable-pinch"
-
注销,然后重新登录。
-
正常启动Google Chrome
提示:您可能必须在上面的命令中将上面命令中的“虚拟核心指针”字符串更改为”master pointer”触摸屏输入设备的名称。只需使用xinput
命令查找设备的名称即可。
注意:我在使用/usr/bin/google-chrome-stable
的Ubuntu 15.04上
老答案:
我有Ubuntu 14.14。这对我有用:
-
编写一个Shell脚本以启动名为
start-chrome.sh
的Google Chrome浏览器。我把我的放进去了:
/usr/local/bin/start-chrome.sh
将以下内容添加到文件中:
#!/bin/bash /usr/bin/google-chrome-stable --touch-devices=$(xinput list | grep Touchscreen | awk 'match(\$0, /id=/){print substr($0, RSTART+3, RLENGTH)}') --touch-events=enabled --enable-pinch
基本上,我使用
xinput list
命令并为”Touchscreen”进行搜索,并找到它的对应ID。您可能需要在上面的命令中将”Touchscreen”更改为触摸屏输入设备的名称。 -
编辑
/usr/share/applications/google-chrome.desktop
。查找所有出现的Exec=google-chrome-stable
并将其替换为Exec=start-chrome.sh
注意:我相信该解决方案将一直有效,直到您更新Google Chrome(通过apt-get upgrade
)并且google-chrome.desktop
文件被覆盖。您将需要按照上面的步骤2进行修复。
第三种办法
您可以尝试在Chrome标志下启用触摸事件:
-
导航到
chrome://flags/#touch-events
并将其设置为启用 -
重新启动Chrome
资源:
https://github.com/EightMedia/hammer.js/wiki/How-to-fix-Chrome-35–and-IE10–scrolling-(touch-action)