Как в Linux сконфигурировать сенсорный экран
Сенсорный экран ─ это часть оборудования, которое обещает, что, наконец, человечество избавится от очень давно используемого и навязчивого интерфейса. Я говорю о мыши. Это та часть технологии, которая, благодаря сенсорным экранам, находится под угрозой исчезновения. И не без оснований. После того, как вы попользуетесь сенсорным экраном, вы в полной мере сможете понять, что он, по сути, столь необходим, как глоток свежего воздуха.
Но в среде Linux все это не совсем радужно. Как только у вас в руках окажется устройство, поддерживающее работу с сенсорным экраном (например, фантастический настольный компьютер System76 Sable Touch, работающий с Ubuntu 14.10), вы увидите, что не все работает, как вы ожидали. Конечно, есть несколько удобных жестов, позволяющих использовать три и четыре пальца, которые работают из коробки, но жесты, удобные при навигации (например, аналогичный щелчку правой кнопкой мыши и прокрутки, используемой в Firefox) просто не работают.
Хорошая новость в том, что заставить эти очень необходимые жесты работать достаточно просто. Но для этого потребуется установить приложение и расширение для Firefox. Плохая новость заключается в том, что после всех этих манипуляций не все дистрибутивы будут реагировать одинаковым образом. В конечном счете, все это попадает в руки сообщества Linux, которое примет решение о том, что сенсорные экраны не должны исчезнуть (и их популярность, по сути, будет продолжать расти). С учетом сказанного, давайте взглянем на то, что вы можете сделать, чтобы новенькое сенсорное устройство работало так, чтобы это, на самом деле, имело смысл.
Что вам понадобится
Во-первых, мы намерены обратиться к браузеру, поскольку в случае, когда дело касается рабочего стола, то это один из наиболее часто используемых инструментов. На этом фронте плохих новостей немного больше ─ вам придется отказаться от Google Chrome. Почему? Потому что, по крайней мере, на момент написания статьи, Google Chrome и сенсорные экраны Linux вместе не работают. С учетом сказанного, мы собираемся сосредоточить наши усилия на Firefox и на простом к нему расширении.
Во-вторых, вам нужно будет установить и использовать удобное приложение, которое называется Touchegg. Это приложение будет служить в качестве средства настройки некоторых событий при взаимодействии с сенсорным устройством.
Давайте начнем с учетом всего сказанного выше.
Firefox
Сразу из коробки Firefox не сильно дружит с сенсорными экранами. Тем не менее, есть расширение, которое вы можете установить с тем, чтобы преодолеть эту проблему. Это расширение называется Grab and Drag. Оно позволяет перехватывать события, связанные с прокруткой, в том числе обрабатывать прокрутку щелчком и импульс прокрутки.
Чтобы установить это расширение выберите Tools > Add-ons (Инструменты > Дополнения, а затем нажмите кнопку Get Add-ons (Получить дополнения). В строке поиска в новой вкладке, введите «grab and drag». Когда появятся результаты (рис.1), нажмите на кнопку Install (Установить), относящуюся к расширению Grab and Drag.
Рис.1: Установка расширения Grab and Drag для Firefox
Вам будет предложено перезагрузить Firefox. Сделайте это, и потом, когда Firefox снова откроется, вернитесь в окно Add-ons (Дополнения), выберите Extensions (Расширения), выберите Grab and Drag, а затем нажмите Preferences (Настройки). На экране Preferences (Настройки) можно игнорировать вкладку Momentum (поскольку эта функция не работает с сенсорными экранами). Вы, скорее всего, захотите открыть вкладку More Options (Дополнительно) и поэкспериментировать с настройками Drag Multiplier (рис.2). По умолчанию, прокрутка работает сравнительно медленно. Я обнаружил, что Drag Multiplier версии 1.6 идеально подходит для использования сенсорного экрана и Firefox
Рис.2: Настройка drag multiplier для более быстрой прокрутки.
Теперь, когда у вас запущен Firefox, давайте установим приложение, которое (в ряде случаях) позволит вам управлять практически каждым сенсорным жестом на Linux.
Touchegg
Я покажу, как установить это приложение в Ubuntu 14.10. Я также добавлю инструментальные средства с графическим интерфейсом, которые упростят конфигурирование жестов. У этого средства, называющегося touchegg-gce, есть ряд зависимостей, которые должны быть установлены в первую очередь.
Прежде, чем устанавливать графический интерфейс, давайте установим это базовое средство. Приложение touchegg можно найти в стандартных репозиториях, поэтому его можно будет установить с помощью единственной команды:
Как только установка будет завершена, давайте установить зависимости для инструментальные средства с графическим интерфейсом. Для этого выполните команду:
После того, как зависимости будут установлены, скачайте файл Touchegg-gce и поместите его в каталог, в которому вас есть доступ на запись (например,
/). Чтобы установить приложение, выполните следующие шаги:
- Перейдите в каталог, в котором находится файл .zip.
- Выполните команду unzip Touchegg-gce-master.zip для того, чтобы извлечь файл.
- Перейдите в каталог Touchegg-gce-master .
- Выполните команду qmake
- Выполните команду make
- Скопируйте файл touchegg-gce в каталог /usr/bin
Все. Теперь вы можете выполнить команду touchegg-gce из любого каталога и приложение будет работать. После запуска приложения вы должны сначала выбрать язык (следует делать каждый раз, когда вы запускаете приложение). В главном окне приложения (рис.3), нажмите кнопку Load (Загрузить) для того, чтобы загрузить файл конфигурации Touchegg (по умолчанию он должен быть каталоге
Рис. 3: Инструментальное срество с графическим интерфейсом Touchegg
Теперь вы можете либо изменить существующий жест или добавить новый жест. Все, что вам для этого нужно будет знать, это то, какие доступны возможности конфигурирования. В каждой записи у вас есть следующие четыре параметра:
- Fingers: Сколько прикосновений пальцев должно обрабатываться
- Gesture: Какой конкретный жест (tap — нажатие, drag — перемещение, pinch — масштабирование, rotate — поворот, Tap & Hold — нажаите и удерживание в нажатом состоянии, Double Tap — двукратное нажатие)
- Direction: направление выполнения жеста (All — в любом, Up — в вверх, Down — вниз, Left — влево, Right — вправо)
- Action: Какое действие будет связано с этим жестом (например, щелчок кнопкой мыши, прокрутка, сворачивание окна, разворачивание окна, закрытие окна и т.д.).
Для того, чтобы создать новый жест, нажмите кнопку Add (Добавить). Например, мы создадим жест, который позволит нам выполнять прокрутку с помощью перемещения вверх по экрану двух пальцев. Мы создадим этот жест для группы All Group (что означает, что он будет применяться ко всем приложениям). Во всплывающем окне (рис.4), выберем следующее настройки:
- Fingers: 2
- Gesture: Drag
- Directions: Up
- Action: Scroll
Когда конфигурирование будет выполнено, нажимаем кнопку ОК и можно попробовать использовать этот жест.
Рис.4: Создание нового жест с помощью Touchegg-gce
Но, давайте предположим, что вы хотите связать конкретный жест с определенным приложением (или группой приложений). Для этого необходимо создать новую группу. Чтобы сделать это, нажмите на кнопку Add (Добавить), находящуюся пол списком групп (в левой части окна). Во всплывающем окне (рис.5), вам нужно будет настроить следующие три параметра:
- Applications: Указываются приложения, в которых будет использоваться этот жест
- Add to: К какой группе добавляется. Выберите New Group (Новая группа) для того, чтобы создать новую группу
- Take gestures from: Вы можете импортировать жесты из другой группы с тем, чтобы использовать их в качестве шаблона.
Рис.5: Создание новой группы, для которой могут быть назначены конкретные жесты
После того как вы создали новую группу, вы можете создавать новые жесты, которые будут работать только для этой группы.
После того как вы закончили процесс создания жестов и групп, убедитесь в том, что вы нажали (или щелкнули по) кнопку Save (Сохранить). Если вы не сделаете этого, то при закрытии приложения ваши настройки будут потеряны. После того, как вы сохраните конфигурацию, Touchegg будет перезапущен и новых жесты должны работать.
Даже при наличии таких приложений, как Drag and Grab и Touchegg, разработка в Linux использование сенсорного экрана будет продолжаться еще долго. Не каждый жест будет работать на любом устройстве, а в некоторых случаях, вам будет проще пользоваться мышкой. Будем надеяться, что в следующем году мы увидим значительное улучшение в этом направлении ─ в противном случае по мере того, как будет появляться больше устройств с сенсорными экранами, использование Linux будет становиться все более неудобным.
Источник
Калибровка тачскрина
Тачскрин работает, но неправильно, нужно откалибровать. Установил и запустил xinput_calibrator , ткнул 4 точки. Ничего не изменилось (хотя на этом этапе уже должно правильно работать!) Попробовал по указанию программы сохранить настройки в файлик /usr/share/X11/xorg.conf.d/99-calibration.conf :
В этой директории и другие похожие файлы есть, вроде 70-wacom.conf и пр. После ребута так же ничего не изменилось. Попробовал и в /etc/X11/xorg.conf.d/ закинуть (директорию пришлось создать) – так же ничего не поменялось.
Вот еще информация, которая может помочь: xinput -list
(Мой девайс под номером 13)
xinput list-props 13 :
Попробовал поиграться с set-prop – тоже безрезультатно. Свойство вроде применяется (?), но эффекта нет. xinput set-prop 13 —type=atom —format=32 InvertX 1 , xinput list-props 13 :
Этот тред я читал, но не понял, как тамошний гуру всё разрулил, да и у того человека калибровка уже работала, а у меня ничего.
Такое ощущение, что xorg все устройства ввода по два раза обрабатывает, применительно к тачскрину, сначала он в /dev как evdev9 регистрируется, потом ниже как mouse2.
На калибровку может и не повлияет такое, но странно.
Zubok , может глянешь, если есть время?
«libinput Calibration Matrix» пробовал через setprop менять?
А таких опций вроде у libinput нет. См. man libinput. Есть Option «CalibrationMatrix» или свойство «Calibration Matrix»
Попробовал xinput set-prop 13 «Coordinate Transformation Matrix» -1 0 1 0 1 0 0 0 1 – сработало! Касания свапнулись по оси X. Попробовал прописать Option «CalibrationMatrix» «-1 0 1 0 1 0 0 0 1» в файл /usr/share/X11/xorg.conf.d/99-calibration.conf – тоже сработало! Тач пашет после ребута. Теперь буду вручную подбирать коэффициенты.
sleeply4cat , Zubok , огромное спасибо! не знаю, почему сам не допёр до очевидного решения.
Остаётся одна незначительная проблема. Тачскрин именно что управляет курсором, а привычные жесты вроде скрола, удержания (для контексного меню) – не работают. Подозреваю, что есть уже готовые решения, куда копать? В кедах есть некие «Действия при проведении по сенсорному экрану», но что-то оно не пашет.
P.S. Кто будет читать этот тред, возможно вам поможет статья на арч вики, там объясняют за libinput Calibration Matrix .
А таких опций вроде у libinput нет.
Да, видимо, xinput_calibrator рассчитан на какой-то другой драйвер (или как там), который как раз с такими опциями работает.
Лучше в /etc/X11/xorg.conf.d положить. /usr/share/ больше для конфигураций, поставляемых пакетами, то есть для нужд системы, и лучше туда свои конфиги не класть, а то потом будешь вспоминать, что это такое и кто принес.
Теперь буду вручную подбирать коэффициенты.
Источник
Ubuntu: Linux на планшете | Наладка сенсорного экрана
Содержание:
Далее давайте заставим нормально работать сенсорный экран. Сначала определим его тип, используя xinput. В случае с Linx 1010 это емкостной сенсорный экран Goodix. Нам нужно заставить сенсорный экран поворачивать свою матрицу, когда поворачивается дисплей, чтобы она работала и в портретном, и в ландшафтном режимах. Сделать это поможет команда xinput:
Теперь сенсорный экран должен правильно работать в горизонтальном режиме ландшафта. Пока вам потребуется делать это вручную при каждом входе в Ubuntu, а сенсорный экран перестанет работать, если вы повернете его в режим портрета. Если вы хотите иметь возможность поворачивать и изображение, и сенсорный экран вместе, надо адаптировать скрипт rotate-screen.sh с http://bit. ly/RotateScreen (переключитесь в вид Raw [Необработанный], затем щелкните правой кнопкой мыши и выберите Save page as [Сохранить страницу как], чтобы сохранить его на свой планшет). Затем откройте скрипт в Gedit или nano и внесите изменения в следующие строки:
Сохраните и выйдите, затем запустите скрипт:
Замените option на normal (портрет), inverted, left или right, чтобы повернуть и изображение, и матрицу сенсорного экрана. Перед запуском скрипта надо сначала отменить текущий поворот экрана с помощью Screen Display — восстановить вид по умолчанию, а затем запустить ./rotate_desktop.sh вправо, чтобы совместить сенсорную панель и сенсорный экран.
Теперь советуем создать скрипт, запускаемый при загрузке: откройте dash и наберите startup для запуска Startup Applications [Приложения, запускаемые при загрузке]. Нажмите Add [Добавить]. Введите подходящее осмысленное название, нажмите Browse [Просмотр], найдите и выберите свой скрипт — когда закончите, щелкните в поле Command [Команда] и убедитесь, что добавили right в конец скрипта. Нажмите Save [Сохранить], перезагрузитесь — и после входа в систему обнаружите, что планшет и сенсорный экран прекрасно работают с внешней клавиатурой и тачпадом.
Вы успешно установили Ubuntu на свой планшет Bay Trail. Что дальше? Следите за последними обновлениями ядра и форумами, чтобы увидеть, когда предприимчивые люди найдут обходные пути и хитрости, необходимые для нормальной работы аппаратной части планшета. Ну, а мы пойдем смотреть, удастся ли заставить снова работать встроенный звук и Wi-Fi, а затем займемся настройками ACPI.
Источник