Chrome + Touchscreen + Unity (14.04)

23

У меня Dell 14R с сенсорным экраном с Ubuntu 14.04. Когда я запускаю Google Chrome, щелкая панель запуска с помощью сенсорной панели или комбинации Super +, поддержка сенсорного ввода в Chrome не работает. Когда я касаюсь какого-то элемента, он только фокусируется, но не активирует элемент (кнопку, поле и т. Д.). И сенсорные жесты не работают. С другой стороны, если я запускаю Chrome, касаясь кнопки запуска, в Chrome работает сенсорная прокрутка, даже если пролистать влево, можно вернуться на предыдущую страницу и т. Д. Это не имеет смысла для меня, но всегда так, даже через перезагрузки. Кто-нибудь может это подтвердить? Есть идеи, как это исправить?

Луис Фернандо П. Гонсалес
источник
Я считаю, что версия Chromium для репо имеет некоторую поддержку сенсорных экранов. Попробуйте это вместо этого.
saiarcot895
У Chrome тоже есть, но в моем случае, работает только тогда, когда я запускаю его, касаясь пусковой установки Unity ...
Луис Фернандо П. Гонсалес
Ах, мой плохой. Я неправильно понял вопрос.
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. Перейдите по этой ссылке, чтобы открыть консоль . Обратите внимание, что вам нужно запустить «терминал» или «gnome-терминал» в зависимости от вашей ОС.
Алекс
1
Извините, но я только сейчас увидел ваш ответ. Отлично сработало
Луис Фернандо П. Гонсалес,
как заставить Chrome работать с этой опцией каждый раз?
NullVoxPopuli
есть это, но это не Пермь: 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команду и greping для «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 выше, чтобы исправить это.

NHenderson
источник
Обновленное исправление работает как чудо! Спасибо.
ChosSimbaOne
Вы решения умнее, чем другие. Но 16.04 с новейшим chome 50 (хром 49) он не работает на моей стороне. Работает прокрутка двумя пальцами, одним пальцем я всегда выбираю текст. Есть идеи, что еще может пойти не так или что я могу проверить?
user157697
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)

Glutanimate
источник
1
Я пробовал такой подход и раньше, но это не помогло в Ubuntu.
Алекс
1
Большое спасибо! Работает с Ubuntu 14.04 и Dell XPS 12 из коробки!
Джулиан Пилес