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


11

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

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

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


Я хотел бы уточнить некоторые детали: я хотел настроить жест для кнопок браузера / nautilus назад / вперед. В Windows я могу сделать это с 3 пальцами. Аналогично, чтобы свернуть / открыть все окна. В Win7 это можно сделать, проведя четырьмя пальцами вверх или вниз. Я хочу вещи, похожие на Mac. Это возможно?
Капад

Ответы:


11

Обновление 15.09.2016 Multitouch работает из коробки, и все решения, перечисленные ниже (mtrack, synclient, ginn, ...), могут испортить ситуацию, поэтому, если вы обновляете более старое ядро, которое требует их, удалите все вспомогательные приложения и попробуйте поведение ядра "из коробки" с помощью сенсорной панели для менеджера рабочего стола. Он должен делать то, что вам нужно, и, если вы хотите больше жестов и прочего, добавьте easystroke, который работает хорошо. Теперь он сортируется в стандартных драйверах ввода ядра и работает без проблем, по крайней мере с ядром 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 .

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


Эй, спасибо за этот отличный ответ. Извините, что потребовалось время, чтобы проверить это :)
kapad

Есть новости о правильном решении по этому вопросу? До сих пор не могу заставить его работать приемлемо ..
Томьо

Кажется, в настоящее время существует пакет easystroke, а опция -g ему неизвестна. Без аргумента запускается графический интерфейс. :) PS: я бегу Mint 16.
Герберт

2

Я просто хотел предложить использовать мое продолжение mtrack, доступное на github: https://github.com/p2rkw/xf86-input-mtrack , так как оно поддерживает перетаскивание 3 пальцами (инструкции внизу 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.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.