Мультитач жесты на тачпаде

Я хотел знать, как я могу настроить жесты мультитач в Ubuntu. В Windows я могу сделать это с помощью программного обеспечения драйвера synaptics.

Я уже использовал synclient для настройки касаний, обнаружения ладоней, прокрутки и т. д. Но я бы также хотел поддержку жестов. Это вообще возможно?

Информация о системе: Ubuntu 12.10, панель управления Synaptics

2 ответа

Обновление 15.09.2016 Multitouch работает "из коробки", и все перечисленные ниже решения (mtrack, synclient, ginn, ...) могут испортить ситуацию, поэтому, если вы обновляете более старое ядро, которое требует их, удалите все вспомогательные приложения и попробуйте поведение ядра "из коробки" с помощью сенсорной панели для менеджера рабочего стола. Он должен делать то, что вам нужно, и если вы хотите больше жестов и прочего, добавьте легкий удар, который работает хорошо. Теперь он сортируется в стандартных драйверах ввода ядра и работает без проблем, по крайней мере с ядром 4.1.32, хотя некоторые из ранних ядер 4.0 не будут работать. Текущее ядро ​​LTS 4.4 работает нормально, как и 4.7.

обновите 9/2015... ядра выше 3.14 или около того уже встроили большую часть мультитача, поэтому попробуйте удалить mtrack, если у вас есть проблемы. со встроенного ядра 3.14 у меня работает только встроенный драйвер мультитача и easystroke, хотя в 4.0 и более поздних версиях наблюдается регрессия, которая ломает трекпад Apple. Ядро 3.18 прекрасно работает, хотя.

Существует множество решений, большинство из которых еще немного выпечены. Многие из задокументированных устарели, поэтому обязательно посмотрите дату того, что вы гуглите.

Ubuntu имеет встроенную поддержку рудиментарных жестов (2 пальца) в апплете настроек мыши / сенсорной панели.
Я обнаружил, что он случайно отключен, и прокрутка двумя пальцами будет таинственным образом затенена, заставляя меня погрузиться в длинную цепочку поиска в Google, чтобы, возможно, вернуть его обратно.
Затем я попробовал touchegg, который иногда работал.
Его проще всего настроить, и в нем есть хорошие инструкции, но он основан на более раннем решении проблемы демоном.
Ubuntu Multitouch HOWO (вам придется гуглить, так как я могу включить только две ссылки) сильно устарело, но постепенно начинает работать. Он как бы предлагает другой набор разрозненных решений, но находится в процессе обновления.

В настоящее время я использую решение mtrack (в репозиториях) в сочетании с easystroke (приходится компилировать из исходного кода).
Mtrack поддерживает версию ядра multitouch, а не специальное решение, такое как touchegg и ginn, если я правильно понимаю, но easystroke - это еще одно решение-демон, которое, похоже, пока работает хорошо поверх mtrack.

Подход Mtrack, кажется, является направлением развития.

удалите другой материал (ginn, touchegg), если вы его используете, а затем установите mtrack из полного репозитория с именем xserver-xorg-input-mtrack.

Настроить это сложно, и я не получил три пальца, чтобы провести. См. Ссылку в конце ветки для ознакомления с различными конфигурационными файлами людей. Я использую трекпад apple magic, и он довольно хорош для этого, хотя в этом двойном касании есть один раздражающий глюк, и перетаскивание, например, для перемещения окна является ошибочным. Обходной путь - либо использовать фактическое нажатие кнопки для перемещения окон, либо колебаться в течение доли секунды после двойного нажатия и удерживать перед перемещением окна.

Я только что нашел easystroke, и пока mtrack не получит графический интерфейс, вы можете попробовать это, если вы достаточно предприимчивы, чтобы попробовать скомпилировать программу.

после компиляции make -j2 и установлен sudo make install, начни с easystroke -g чтобы получить графический интерфейс и перейти на страницу вики для получения инструкций.

Еще одна проблема, с которой вам, возможно, придется разобраться, это драйверы.

Если вы используете mtrack, вам может потребоваться изменить нумерацию файлов, чтобы ваш драйвер mtrack читался последним, иначе настройки synaptics захватят все.

Эти драйверы хранятся по адресу /usr/share/X11/xorg.conf.d.

скопируйте драйвер mtrack в /etc/X11/xorg.conf.d, отредактируйте настройки в этой папке (см. связанную ветку и README), чтобы получить доброту на три пальца, если можете (или используйте easystroke), и переименуйте файл с большим номером, поэтому 50-mtrack.conf становится 60-mtrack.conf, в противном случае я обнаружил, что синаптический драйвер будет захватывать вашу сенсорную панель половину времени.

Помещение файла в / etc означает, что он не будет перезаписан при обновлениях, таких как файлы / usr, и что он будет прочитан последним и, следовательно, имеет приоритет над драйверами по умолчанию в / usr.

Надеюсь это поможет. Это область довольно активного развития, поэтому все, что я напишу, вероятно, устареет через год, надеюсь, к лучшему.

Я просто хотел предложить использовать продолжение mtrack, доступное на github: https://github.com/p2rkw/xf86-input-mtrack, так как оно поддерживает перетаскивание в три пальца (инструкции внизу readme).

Я также использую его вместе с easystroke, но мне пришлось изменить easystroke, чтобы снять некоторые ограничения для абсолютных устройств, с этим простым изменением (я не помню точную причину для этого, извините):

diff --git a/handler.cc b/handler.cc
index 8830ea2..c9e3f91 100644
--- a/handler.cc
+++ b/handler.cc
@@ -563,7 +563,7 @@ protected:
        }
 protected:
        void move_back() {
-               if (!prefs.move_back.get() || (xstate->current_dev && xstate->current_dev->absolute))
+               if (!prefs.move_back.get())
                        return;
                XTestFakeMotionEvent(dpy, DefaultScreen(dpy), orig_x, orig_y, 0);
        }

Я также уменьшил погрешность для жестов:

diff --git a/gesture.cc b/gesture.cc
index 8531c08..0df990e 100644
--- a/gesture.cc
+++ b/gesture.cc
@@ -104,9 +104,9 @@ int Stroke::compare(RStroke a, RStroke b, double &score) {
                return -1;
        score = MAX(1.0 - 2.5*cost, 0.0);
        if (a->timeout)
-               return score > 0.85;
+               return score > 0.95;
        else
-               return score > 0.7;
+               return score > 0.92;
 }

... и это прекрасно работает.

Дополнительное замечание по поводу сложной конфигурации: вы можете использовать xinput для настройки на лету, затем соответствующим образом отредактировать xorg.conf или создать сценарий запуска с вызовами xinput.

Другие вопросы по тегам