Chrome + сенсорний екран + Unity (14.04)


23

У мене Dell 14R з сенсорним екраном з Ubuntu 14.04. Коли я запускаю Google Chrome, натискаючи на панель запуску за допомогою сенсорної панелі або за допомогою комбінації Super +, підтримка Touch у Chrome не працює. Коли я торкаюсь якогось елемента, він отримує фокус, але не активує елемент (кнопку, поле тощо). І жести дотику не працюють. З іншого боку, якщо я запускаю Chrome, торкаючись кнопки запуску, сенсорне прокручування працює в Chrome, навіть натискання ліворуч повертається на попередню сторінку тощо. Для мене це не має сенсу, але це завжди так, навіть через перезавантаження. Хтось може це підтвердити? Будь-яка ідея, як виправити?


Я вважаю, що версія repo Chromium має деяку підтримку сенсорних екранів. Спробуйте це замість цього.
saiarcot895

У Chrome теж є, але в моєму випадку працює лише в тому випадку, якщо я запускаю його, торкнувшись панелі запуску єдності ...
Луїс Фернандо П. Гонсалес

Ах, мій поганий. Я неправильно зрозумів питання.
saiarcot895

Відповіді:


23

Цю проблему можна вирішити для мене за --touch-devicesдопомогою параметра командного рядка Chrome .

Визначте ідентифікатор пристрою введення X у консолі за допомогою

xinput list

призводить до

google-chrome --touch-devices=10

в моїй системі.

Щоб Chrome завжди використовував цей прапор CLI, див. Як встановити прапор CLI для Google Chrome?


1
Алекс, ти не проти пояснити своє рішення трохи ретельніше. Я хотів би спробувати це, але я трохи втратив, що ви маєте на увазі. Як задіяти командний рядок chrome?

3
@ user298727 Відкрийте консоль і запустіть xinput listспочатку. Відповідь команди дає вам ідентифікатор пристрою сенсорного екрана. Запустіть Google Chrome, ввівши google-chrome --touch-devices=10ту саму консоль. Консоль - це лише середовище командного рядка, з якого ви викликаєте Chrome. Перейдіть за цим посиланням про те, як відкрити консоль . Зауважте, що вам потрібно запустити "термінал" або "гном-термінал" залежно від вашого оператора.
alex

1
Вибачте, але я щойно побачив вашу відповідь. Працював чудово
Луїс Фернандо П. Гонсалес

як ви змушуєте хромуватися з цим варіантом кожен раз?
NullVoxPopuli

є це, але це не perm: askubuntu.com/questions/78638/…
NullVoxPopuli

7

ОНОВЛЕНА відповідь:

  1. Відредагуйте ~/.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"
    
  2. Вийдіть, а потім увійдіть знову.

  3. Запустіть Google Chrome як звичайно

ПОРАДА : Можливо, вам доведеться змінити рядок "Віртуальний основний вказівник" в команді вище на ім'я пристрою введення сенсорного екрану "головний вказівник" в команді вище. Просто скористайтеся xinputкомандою, щоб знайти ім’я свого пристрою.

ПРИМІТКА . Я перебуваю на Ubuntu 15.04 за допомогою/usr/bin/google-chrome-stable

СТАРИЙ відповідь:

У мене є Ubuntu 14.14. Це працювало для мене:

  1. Створіть скрипт оболонки, щоб запустити браузер Google Chrome start-chrome.sh.

    Я поклав свою: /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" і знаходжу його відповідний ідентифікатор. Можливо, вам доведеться змінити "Сенсорний екран" на ім'я пристрою вводу сенсорного екрану в команді, що вводиться вище.

  2. Редагувати /usr/share/applications/google-chrome.desktop. Знайдіть усі події Exec=google-chrome-stableта замініть їхExec=start-chrome.sh

ПРИМІТКА . Я вважаю, що це рішення працюватиме, поки ви не оновите Google Chrome (через apt-get upgrade) і google-chrome.desktopфайл не буде перезаписано. Вам потрібно буде виконати крок 2 вище, щоб виправити це.


Оновлений виправлення спрацювало як шарм! Дякую.
ChosSimbaOne

Ви рішення розумніші за інші. Але 16.04 з найновішим chome 50 (хром 49) він не працює на моєму боці. Прокрутка двома пальцями працює, одним пальцем я завжди вибираю текст. Будь-які ідеї, що ще може піти не так, або що б я міг перевірити?
користувач157697

6

Ви можете спробувати включити події дотику під прапорами Chrome:

  1. Перейдіть до chrome://flags/#touch-eventsта встановіть його як увімкнене
  2. Перезавантажте Chrome

Джерело:

https://github.com/EightMedia/hammer.js/wiki/How-to-fix-Chrome-35--and-IE10--scrolling-(touch-action)


1
Я спробував такий підхід і раніше, але це не допомогло на Ubuntu.
алекс

1
Велике спасибі! Працює з Ubuntu 14.04 та Dell XPS 12 поза коробкою!
Джуліан П'єлз
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.