Как отключить произвольные жесты мультитач по умолчанию в Unity?

LibreOffice теперь предлагает реализацию логотипа, которая вернее старинного логотипа, чем KTurtle. Установите как sudo apt install libreoffice-librelogo, а затем войдите в его элементы управления, включив панель инструментов Logo под View|Toolbars|Logo в LibreOffice Writer. В системе LibreOffice Help также будет запись Logo.

Это хорошо задокументировано и прост в использовании, как только вы ее повесили, и чувствуете себя очень похож на логотип Apple II, а TI- 99 / 4A.

22
задан 24 August 2011 в 22:33

49 ответов

Отключить стандартные жесты касания следующим образом:

sudo apt install dconf-editor dconf-editor

В левом меню нажмите

com > canonical > unity > gestures

и отключите 3 основных жеста, показанных там. Это работает 16.04.3.

1
ответ дан 25 July 2018 в 21:26
  • 1
    Безусловно, самый лучший и самый простой ответ для пользователей 16.04 Ubuntu, которые рады установить версию dconf для графического интерфейса пользователя. – GrayedFox 26 February 2018 в 07:07

Обновление для ответа domster для Ubuntu 12.10.

Исходный код Unity явно изменился, так вот как добиться того же результата в Unity 6.8.0. Шаги по загрузке исходного кода Unity такие же, как и раньше (я скопирую и добавлю фрагмент domster):

sudo apt-get build-dep unity cd /tmp #It can be done somewhere else, feel free to change the base location. mkdir unity cd unity apt-get source unity

На этом этапе файл, который нужно отредактировать, является только /tmp/unity/unity-6.8.0/plugins/unityshell/src/unityshell.cpp.

Найдите метод UnityScreen::InitGesturesSupport() (строка 3368 для Unity 6.8.0).

Затем прокомментируйте все строки, начинающиеся с gesture_sub_launcher, чтобы они выглядели так:

void UnityScreen::InitGesturesSupport() { std::unique_ptr<nux::GestureBroker> gesture_broker(new UnityGestureBroker); wt->GetWindowCompositor().SetGestureBroker(std::move(gesture_broker)); /* gestures_sub_launcher_.reset(new nux::GesturesSubscription); gestures_sub_launcher_->SetGestureClasses(nux::DRAG_GESTURE); gestures_sub_launcher_->SetNumTouches(4); gestures_sub_launcher_->SetWindowId(GDK_ROOT_WINDOW()); gestures_sub_launcher_->Activate(); gestures_sub_dash_.reset(new nux::GesturesSubscription); gestures_sub_dash_->SetGestureClasses(nux::TAP_GESTURE); gestures_sub_dash_->SetNumTouches(4); gestures_sub_dash_->SetWindowId(GDK_ROOT_WINDOW()); gestures_sub_dash_->Activate(); gestures_sub_windows_.reset(new nux::GesturesSubscription); gestures_sub_windows_->SetGestureClasses(nux::TOUCH_GESTURE | nux::DRAG_GESTURE | nux::PINCH_GESTURE); gestures_sub_windows_->SetNumTouches(3); gestures_sub_windows_->SetWindowId(GDK_ROOT_WINDOW()); gestures_sub_windows_->Activate(); */ }

Восстановите единство, следуя инструкциям домастера:

cd /tmp/unity/unity-6.8.0 dpkg-buildpackage -us -uc -nc cd .. sudo dpkg -i *deb

Эт-вуаля снова! Выйдите из системы и войдите в систему.

16
ответ дан 25 July 2018 в 21:26
  • 1
    как это будет работать в нынешнем единстве 7.2.1? – plopp 24 June 2014 в 10:27
  • 2
    Этот ответ все еще на 100% действителен для Unity 7.2.2 (поэтому я предполагаю, что он также действителен для 7.2.1). Я строю прямо сейчас, расскажу о том, что происходит. touchhegg, как только я закончу и перезагружу. – Endophage 20 August 2014 в 09:34
  • 3
    Когда-то между Trusty и Xenial, настройки для отключения жестов Unity были добавлены в dconf, перечисленные в разделе com.canonical.unity.gestures. Если вы также можете быть доступны в Wily, но я так не думаю; Я только уверен, что он недоступен в Trusty и находится в Xenial. – Kevin 1 September 2016 в 23:17

Оказывается, исправлять пакет unity не так уж сложно, чтобы полностью отключить обработку мультитач и жестов. Ниже приведены пошаговые инструкции для исправления unity-4.24.0.

В командной строке введите:

sudo apt-get build-dep unity cd /tmp #It can be done somewhere else, feel free to change the base location. mkdir unity cd unity apt-get source unity

. В этот момент запишите следующие 2 строки в файле /tmp/unity/unity-4.24.0/plugins/unityshell/src/unityshell.cpp:

GeisAdapter::Default()->Run(); gestureEngine = new GestureEngine(screen);

и следующие 4 строки в файле /tmp/unity/unity-4.24.0/plugins/unityshell/src/Launcher.cpp:

GeisAdapter& adapter = *(GeisAdapter::Default()); adapter.drag_start.connect(sigc::mem_fun(this, &Launcher::OnDragStart)); adapter.drag_update.connect(sigc::mem_fun(this, &Launcher::OnDragUpdate)); adapter.drag_finish.connect(sigc::mem_fun(this, &Launcher::OnDragFinish));

Исходный код находится в C++, поэтому комментирование строки выполняется добавив // в начале строки. Например, строка

GeisAdapter::Default()->Run();

становится

//GeisAdapter::Default()->Run(); .

Вернитесь в командную строку, введите:

cd unity-4.24.0 dpkg-buildpackage -us -uc -nc cd .. sudo dpkg -i *deb

Et voila!

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

11
ответ дан 25 July 2018 в 21:26

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

Это было сенсорное устройство Samsung, xinput определило сенсорный модуль как AFO TCM10J 40V.

Чтобы отключить жесты мультитач на Ubuntu 14.04, метод в основном такой же, как и domster, описанный выше, за исключением того, что вы должны найти комментарий в следующей строке в /tmp/unity/unity-4.24.0/plugins/unityshell/src/Launcher.cpp

[F1]
1
ответ дан 25 July 2018 в 21:26
  • 1
    Хм, похоже, это не работало для меня. touchhegg и ginn до сих пор не сообщают никаких данных для жестов менее 4 пальцев, а «Two Finger Scroll» настройка в настройках сенсорной панели системы по-прежнему имеет приоритет ... – Jeff Ward 30 June 2015 в 00:29

Чтобы сделать это на последнем единстве (5.18.0) в 12.04, вы должны прокомментировать несколько разные строки кода.

В плагинах / unityshell / src / Launcher.cpp:

// GeisAdapter& adapter = GeisAdapter::Instance(); // adapter.drag_start.connect(sigc::mem_fun(this, &Launcher::OnDragStart)); // adapter.drag_update.connect(sigc::mem_fun(this, &Launcher::OnDragUpdate)); // adapter.drag_finish.connect(sigc::mem_fun(this, &Launcher::OnDragFinish));

В плагинах / единствах оболочки / src / unityshell.cpp:

// geis_adapter_.Run(); // gesture_engine_.reset(new GestureEngine(screen));
3
ответ дан 25 July 2018 в 21:26

Обратите внимание, что dpkg-buildpackage может быть задано количество заданий в качестве аргумента, что позволяет использовать все ваши ядра процессора следующим образом:

dpkg-buildpackage -us -uc -nc -j$(($(nproc)))

(Это должно было быть ответом на ответ dgraziotin, но я не могу оставлять комментарии.)

1
ответ дан 25 July 2018 в 21:26
  • 1
    Помогает много. Слишком долго ждать завершения одиночной резьбы. – Orient 18 September 2017 в 10:38

Вторая попытка

dinegri предполагает, что '[t] o отключить три жесты, [необходимо] установить [c], [и затем] отключить «Unit MT Grab Handles» также знать как «Любит ручки» здесь.

Но это еще не все четыре жестов пальца.

Вторая попытка

Конфигурационный файл для utouch - /etc/ginn/wishes.xml , Таким образом, вы можете отредактировать этот файл и удалить (или прокомментировать) действия, которые вы не хотите. Затем Touchégg выполнил свою работу без конфликтов.

dinegri

PS: Я не мог воспроизвести вашу проблему здесь, чтобы протестировать решение. Прошу прощения за это.

2
ответ дан 25 July 2018 в 21:26
  • 1
    Это файл конфигурации для ginn, который является инжектором жестов, функциональность которого совпадает с функциональностью TouchEgg. Изменения в файле конфигурации будут иметь эффект только в том случае, если демон ginn запущен, что, поскольку я использую TouchEgg, обычно это не так. Учитывая возможность использования ginn вместо Touchégg, я попытался переопределить некоторые жесты Unity по умолчанию, комментируя их в файле конфигурации ginn и запуская ginn, но это не работает. – mgunes 24 August 2011 в 06:15
  • 2
    Я обновил ответ. – desgua 24 August 2011 в 21:38
  • 3
    Отключение плагина с ручками приведет к удалению визуального преимущества для перетаскивания; он даже не отключит три касания пальцем и жест перетаскивания (который я вообще не хочу отключать), не говоря уже о других. – mgunes 24 August 2011 в 22:31
  • 4
    Кстати, я уже отключил его, так как из-за ошибки # 754000 мне нужно симулировать среднюю нажатие кнопки с помощью Touchégg, и когда ручки появляются каждый раз, когда я выполняю три касания пальца, это очень дезориентирует. – mgunes 24 August 2011 в 22:36

Отключить стандартные жесты касания следующим образом:

sudo apt install dconf-editor dconf-editor

В левом меню нажмите

com > canonical > unity > gestures

и отключите 3 основных жеста, показанных там. Это работает 16.04.3.

1
ответ дан 31 July 2018 в 10:34
  • 1
    Безусловно, самый лучший и самый простой ответ для пользователей 16.04 Ubuntu, которые рады установить версию dconf для графического интерфейса пользователя. – GrayedFox 26 February 2018 в 07:07

Обновление для ответа domster для Ubuntu 12.10.

Исходный код Unity явно изменился, так вот как добиться того же результата в Unity 6.8.0. Шаги по загрузке исходного кода Unity такие же, как и раньше (я скопирую и добавлю фрагмент domster):

sudo apt-get build-dep unity cd /tmp #It can be done somewhere else, feel free to change the base location. mkdir unity cd unity apt-get source unity

На этом этапе файл, который нужно отредактировать, является только /tmp/unity/unity-6.8.0/plugins/unityshell/src/unityshell.cpp.

Найдите метод UnityScreen::InitGesturesSupport() (строка 3368 для Unity 6.8.0).

Затем прокомментируйте все строки, начинающиеся с gesture_sub_launcher, чтобы они выглядели так:

void UnityScreen::InitGesturesSupport() { std::unique_ptr<nux::GestureBroker> gesture_broker(new UnityGestureBroker); wt->GetWindowCompositor().SetGestureBroker(std::move(gesture_broker)); /* gestures_sub_launcher_.reset(new nux::GesturesSubscription); gestures_sub_launcher_->SetGestureClasses(nux::DRAG_GESTURE); gestures_sub_launcher_->SetNumTouches(4); gestures_sub_launcher_->SetWindowId(GDK_ROOT_WINDOW()); gestures_sub_launcher_->Activate(); gestures_sub_dash_.reset(new nux::GesturesSubscription); gestures_sub_dash_->SetGestureClasses(nux::TAP_GESTURE); gestures_sub_dash_->SetNumTouches(4); gestures_sub_dash_->SetWindowId(GDK_ROOT_WINDOW()); gestures_sub_dash_->Activate(); gestures_sub_windows_.reset(new nux::GesturesSubscription); gestures_sub_windows_->SetGestureClasses(nux::TOUCH_GESTURE | nux::DRAG_GESTURE | nux::PINCH_GESTURE); gestures_sub_windows_->SetNumTouches(3); gestures_sub_windows_->SetWindowId(GDK_ROOT_WINDOW()); gestures_sub_windows_->Activate(); */ }

Восстановите единство, следуя инструкциям домастера:

cd /tmp/unity/unity-6.8.0 dpkg-buildpackage -us -uc -nc cd .. sudo dpkg -i *deb

Эт-вуаля снова! Выйдите из системы и войдите в систему.

16
ответ дан 31 July 2018 в 10:34
  • 1
    как это будет работать в нынешнем единстве 7.2.1? – plopp 24 June 2014 в 10:27
  • 2
    Этот ответ все еще на 100% действителен для Unity 7.2.2 (поэтому я предполагаю, что он также действителен для 7.2.1). Я строю прямо сейчас, расскажу о том, что происходит. touchhegg, как только я закончу и перезагружу. – Endophage 20 August 2014 в 09:34
  • 3
    Когда-то между Trusty и Xenial, настройки для отключения жестов Unity были добавлены в dconf, перечисленные в разделе com.canonical.unity.gestures. Если вы также можете быть доступны в Wily, но я так не думаю; Я только уверен, что он недоступен в Trusty и находится в Xenial. – Kevin 1 September 2016 в 23:17

Оказывается, исправлять пакет unity не так уж сложно, чтобы полностью отключить обработку мультитач и жестов. Ниже приведены пошаговые инструкции для исправления unity-4.24.0.

В командной строке введите:

sudo apt-get build-dep unity cd /tmp #It can be done somewhere else, feel free to change the base location. mkdir unity cd unity apt-get source unity

. В этот момент запишите следующие 2 строки в файле /tmp/unity/unity-4.24.0/plugins/unityshell/src/unityshell.cpp:

GeisAdapter::Default()->Run(); gestureEngine = new GestureEngine(screen);

и следующие 4 строки в файле /tmp/unity/unity-4.24.0/plugins/unityshell/src/Launcher.cpp:

GeisAdapter& adapter = *(GeisAdapter::Default()); adapter.drag_start.connect(sigc::mem_fun(this, &Launcher::OnDragStart)); adapter.drag_update.connect(sigc::mem_fun(this, &Launcher::OnDragUpdate)); adapter.drag_finish.connect(sigc::mem_fun(this, &Launcher::OnDragFinish));

Исходный код находится в C++, поэтому комментирование строки выполняется добавив // в начале строки. Например, строка

GeisAdapter::Default()->Run();

становится

//GeisAdapter::Default()->Run(); .

Вернитесь в командную строку, введите:

cd unity-4.24.0 dpkg-buildpackage -us -uc -nc cd .. sudo dpkg -i *deb

Et voila!

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

11
ответ дан 31 July 2018 в 10:34

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

Это было сенсорное устройство Samsung, xinput определило сенсорный модуль как AFO TCM10J 40V.

Чтобы отключить жесты мультитач на Ubuntu 14.04, метод в основном такой же, как и domster, описанный выше, за исключением того, что вы должны найти комментарий в следующей строке в /tmp/unity/unity-4.24.0/plugins/unityshell/src/Launcher.cpp

[F1]
1
ответ дан 31 July 2018 в 10:34
  • 1
    Хм, похоже, это не работало для меня. touchhegg и ginn до сих пор не сообщают никаких данных для жестов менее 4 пальцев, а «Two Finger Scroll» настройка в настройках сенсорной панели системы по-прежнему имеет приоритет ... – Jeff Ward 30 June 2015 в 00:29

Чтобы сделать это на последнем единстве (5.18.0) в 12.04, вы должны прокомментировать несколько разные строки кода.

В плагинах / unityshell / src / Launcher.cpp:

// GeisAdapter& adapter = GeisAdapter::Instance(); // adapter.drag_start.connect(sigc::mem_fun(this, &Launcher::OnDragStart)); // adapter.drag_update.connect(sigc::mem_fun(this, &Launcher::OnDragUpdate)); // adapter.drag_finish.connect(sigc::mem_fun(this, &Launcher::OnDragFinish));

В плагинах / единствах оболочки / src / unityshell.cpp:

// geis_adapter_.Run(); // gesture_engine_.reset(new GestureEngine(screen));
3
ответ дан 31 July 2018 в 10:34

Обратите внимание, что dpkg-buildpackage может быть задано количество заданий в качестве аргумента, что позволяет использовать все ваши ядра процессора следующим образом:

dpkg-buildpackage -us -uc -nc -j$(($(nproc)))

(Это должно было быть ответом на ответ dgraziotin, но я не могу оставлять комментарии.)

1
ответ дан 31 July 2018 в 10:34
  • 1
    Помогает много. Слишком долго ждать завершения одиночной резьбы. – Orient 18 September 2017 в 10:38

Вторая попытка

dinegri предполагает, что '[t] o отключить три жесты, [необходимо] установить [c], [и затем] отключить «Unit MT Grab Handles» также знать как «Любит ручки» здесь.

Но это еще не все четыре жестов пальца.

Вторая попытка

Конфигурационный файл для utouch - /etc/ginn/wishes.xml , Таким образом, вы можете отредактировать этот файл и удалить (или прокомментировать) действия, которые вы не хотите. Затем Touchégg выполнил свою работу без конфликтов.

dinegri

PS: Я не мог воспроизвести вашу проблему здесь, чтобы протестировать решение. Прошу прощения за это.

2
ответ дан 31 July 2018 в 10:34
  • 1
    Это файл конфигурации для ginn, который является инжектором жестов, функциональность которого совпадает с функциональностью TouchEgg. Изменения в файле конфигурации будут иметь эффект только в том случае, если демон ginn запущен, что, поскольку я использую TouchEgg, обычно это не так. Учитывая возможность использования ginn вместо Touchégg, я попытался переопределить некоторые жесты Unity по умолчанию, комментируя их в файле конфигурации ginn и запуская ginn, но это не работает. – mgunes 24 August 2011 в 06:15
  • 2
    Я обновил ответ. – desgua 24 August 2011 в 21:38
  • 3
    Отключение плагина с ручками приведет к удалению визуального преимущества для перетаскивания; он даже не отключит три касания пальцем и жест перетаскивания (который я вообще не хочу отключать), не говоря уже о других. – mgunes 24 August 2011 в 22:31
  • 4
    Кстати, я уже отключил его, так как из-за ошибки # 754000 мне нужно симулировать среднюю нажатие кнопки с помощью Touchégg, и когда ручки появляются каждый раз, когда я выполняю три касания пальца, это очень дезориентирует. – mgunes 24 August 2011 в 22:36

Отключить стандартные жесты касания следующим образом:

sudo apt install dconf-editor dconf-editor

В левом меню нажмите

com > canonical > unity > gestures

и отключите 3 основных жеста, показанных там. Это работает 16.04.3.

1
ответ дан 31 July 2018 в 11:37
  • 1
    Безусловно, самый лучший и самый простой ответ для пользователей 16.04 Ubuntu, которые рады установить версию dconf для графического интерфейса пользователя. – GrayedFox 26 February 2018 в 07:07

Обновление для ответа domster для Ubuntu 12.10.

Исходный код Unity явно изменился, так вот как добиться того же результата в Unity 6.8.0. Шаги по загрузке исходного кода Unity такие же, как и раньше (я скопирую и добавлю фрагмент domster):

sudo apt-get build-dep unity cd /tmp #It can be done somewhere else, feel free to change the base location. mkdir unity cd unity apt-get source unity

На этом этапе файл, который нужно отредактировать, является только /tmp/unity/unity-6.8.0/plugins/unityshell/src/unityshell.cpp.

Найдите метод UnityScreen::InitGesturesSupport() (строка 3368 для Unity 6.8.0).

Затем прокомментируйте все строки, начинающиеся с gesture_sub_launcher, чтобы они выглядели так:

void UnityScreen::InitGesturesSupport() { std::unique_ptr<nux::GestureBroker> gesture_broker(new UnityGestureBroker); wt->GetWindowCompositor().SetGestureBroker(std::move(gesture_broker)); /* gestures_sub_launcher_.reset(new nux::GesturesSubscription); gestures_sub_launcher_->SetGestureClasses(nux::DRAG_GESTURE); gestures_sub_launcher_->SetNumTouches(4); gestures_sub_launcher_->SetWindowId(GDK_ROOT_WINDOW()); gestures_sub_launcher_->Activate(); gestures_sub_dash_.reset(new nux::GesturesSubscription); gestures_sub_dash_->SetGestureClasses(nux::TAP_GESTURE); gestures_sub_dash_->SetNumTouches(4); gestures_sub_dash_->SetWindowId(GDK_ROOT_WINDOW()); gestures_sub_dash_->Activate(); gestures_sub_windows_.reset(new nux::GesturesSubscription); gestures_sub_windows_->SetGestureClasses(nux::TOUCH_GESTURE | nux::DRAG_GESTURE | nux::PINCH_GESTURE); gestures_sub_windows_->SetNumTouches(3); gestures_sub_windows_->SetWindowId(GDK_ROOT_WINDOW()); gestures_sub_windows_->Activate(); */ }

Восстановите единство, следуя инструкциям домастера:

cd /tmp/unity/unity-6.8.0 dpkg-buildpackage -us -uc -nc cd .. sudo dpkg -i *deb

Эт-вуаля снова! Выйдите из системы и войдите в систему.

16
ответ дан 31 July 2018 в 11:37
  • 1
    как это будет работать в нынешнем единстве 7.2.1? – plopp 24 June 2014 в 10:27
  • 2
    Этот ответ все еще на 100% действителен для Unity 7.2.2 (поэтому я предполагаю, что он также действителен для 7.2.1). Я строю прямо сейчас, расскажу о том, что происходит. touchhegg, как только я закончу и перезагружу. – Endophage 20 August 2014 в 09:34
  • 3
    Когда-то между Trusty и Xenial, настройки для отключения жестов Unity были добавлены в dconf, перечисленные в разделе com.canonical.unity.gestures. Если вы также можете быть доступны в Wily, но я так не думаю; Я только уверен, что он недоступен в Trusty и находится в Xenial. – Kevin 1 September 2016 в 23:17

Оказывается, исправлять пакет unity не так уж сложно, чтобы полностью отключить обработку мультитач и жестов. Ниже приведены пошаговые инструкции для исправления unity-4.24.0.

В командной строке введите:

sudo apt-get build-dep unity cd /tmp #It can be done somewhere else, feel free to change the base location. mkdir unity cd unity apt-get source unity

. В этот момент запишите следующие 2 строки в файле /tmp/unity/unity-4.24.0/plugins/unityshell/src/unityshell.cpp:

GeisAdapter::Default()->Run(); gestureEngine = new GestureEngine(screen);

и следующие 4 строки в файле /tmp/unity/unity-4.24.0/plugins/unityshell/src/Launcher.cpp:

GeisAdapter& adapter = *(GeisAdapter::Default()); adapter.drag_start.connect(sigc::mem_fun(this, &Launcher::OnDragStart)); adapter.drag_update.connect(sigc::mem_fun(this, &Launcher::OnDragUpdate)); adapter.drag_finish.connect(sigc::mem_fun(this, &Launcher::OnDragFinish));

Исходный код находится в C++, поэтому комментирование строки выполняется добавив // в начале строки. Например, строка

GeisAdapter::Default()->Run();

становится

//GeisAdapter::Default()->Run(); .

Вернитесь в командную строку, введите:

cd unity-4.24.0 dpkg-buildpackage -us -uc -nc cd .. sudo dpkg -i *deb

Et voila!

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

11
ответ дан 31 July 2018 в 11:37

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

Это было сенсорное устройство Samsung, xinput определило сенсорный модуль как AFO TCM10J 40V.

Чтобы отключить жесты мультитач на Ubuntu 14.04, метод в основном такой же, как и domster, описанный выше, за исключением того, что вы должны найти комментарий в следующей строке в /tmp/unity/unity-4.24.0/plugins/unityshell/src/Launcher.cpp

[F1]
1
ответ дан 31 July 2018 в 11:37
  • 1
    Хм, похоже, это не работало для меня. touchhegg и ginn до сих пор не сообщают никаких данных для жестов менее 4 пальцев, а «Two Finger Scroll» настройка в настройках сенсорной панели системы по-прежнему имеет приоритет ... – Jeff Ward 30 June 2015 в 00:29

Чтобы сделать это на последнем единстве (5.18.0) в 12.04, вы должны прокомментировать несколько разные строки кода.

В плагинах / unityshell / src / Launcher.cpp:

// GeisAdapter& adapter = GeisAdapter::Instance(); // adapter.drag_start.connect(sigc::mem_fun(this, &Launcher::OnDragStart)); // adapter.drag_update.connect(sigc::mem_fun(this, &Launcher::OnDragUpdate)); // adapter.drag_finish.connect(sigc::mem_fun(this, &Launcher::OnDragFinish));

В плагинах / единствах оболочки / src / unityshell.cpp:

// geis_adapter_.Run(); // gesture_engine_.reset(new GestureEngine(screen));
3
ответ дан 31 July 2018 в 11:37

Обратите внимание, что dpkg-buildpackage может быть задано количество заданий в качестве аргумента, что позволяет использовать все ваши ядра процессора следующим образом:

dpkg-buildpackage -us -uc -nc -j$(($(nproc)))

(Это должно было быть ответом на ответ dgraziotin, но я не могу оставлять комментарии.)

1
ответ дан 31 July 2018 в 11:37
  • 1
    Помогает много. Слишком долго ждать завершения одиночной резьбы. – Orient 18 September 2017 в 10:38

Вторая попытка

dinegri предполагает, что '[t] o отключить три жесты, [необходимо] установить [c], [и затем] отключить «Unit MT Grab Handles» также знать как «Любит ручки» здесь.

Но это еще не все четыре жестов пальца.

Вторая попытка

Конфигурационный файл для utouch - /etc/ginn/wishes.xml , Таким образом, вы можете отредактировать этот файл и удалить (или прокомментировать) действия, которые вы не хотите. Затем Touchégg выполнил свою работу без конфликтов.

dinegri

PS: Я не мог воспроизвести вашу проблему здесь, чтобы протестировать решение. Прошу прощения за это.

2
ответ дан 31 July 2018 в 11:37
  • 1
    Это файл конфигурации для ginn, который является инжектором жестов, функциональность которого совпадает с функциональностью TouchEgg. Изменения в файле конфигурации будут иметь эффект только в том случае, если демон ginn запущен, что, поскольку я использую TouchEgg, обычно это не так. Учитывая возможность использования ginn вместо Touchégg, я попытался переопределить некоторые жесты Unity по умолчанию, комментируя их в файле конфигурации ginn и запуская ginn, но это не работает. – mgunes 24 August 2011 в 06:15
  • 2
    Я обновил ответ. – desgua 24 August 2011 в 21:38
  • 3
    Отключение плагина с ручками приведет к удалению визуального преимущества для перетаскивания; он даже не отключит три касания пальцем и жест перетаскивания (который я вообще не хочу отключать), не говоря уже о других. – mgunes 24 August 2011 в 22:31
  • 4
    Кстати, я уже отключил его, так как из-за ошибки # 754000 мне нужно симулировать среднюю нажатие кнопки с помощью Touchégg, и когда ручки появляются каждый раз, когда я выполняю три касания пальца, это очень дезориентирует. – mgunes 24 August 2011 в 22:36

Отключить стандартные жесты касания следующим образом:

sudo apt install dconf-editor dconf-editor

В левом меню нажмите

com > canonical > unity > gestures

и отключите 3 основных жеста, показанных там. Это работает 16.04.3.

1
ответ дан 2 August 2018 в 03:05
  • 1
    Безусловно, самый лучший и самый простой ответ для пользователей 16.04 Ubuntu, которые рады установить версию dconf для графического интерфейса пользователя. – GrayedFox 26 February 2018 в 07:07

Обновление для ответа domster для Ubuntu 12.10.

Исходный код Unity явно изменился, так вот как добиться того же результата в Unity 6.8.0. Шаги по загрузке исходного кода Unity такие же, как и раньше (я скопирую и добавлю фрагмент domster):

sudo apt-get build-dep unity cd /tmp #It can be done somewhere else, feel free to change the base location. mkdir unity cd unity apt-get source unity

На этом этапе файл, который нужно отредактировать, является только /tmp/unity/unity-6.8.0/plugins/unityshell/src/unityshell.cpp.

Найдите метод UnityScreen::InitGesturesSupport() (строка 3368 для Unity 6.8.0).

Затем прокомментируйте все строки, начинающиеся с gesture_sub_launcher, чтобы они выглядели так:

void UnityScreen::InitGesturesSupport() { std::unique_ptr<nux::GestureBroker> gesture_broker(new UnityGestureBroker); wt->GetWindowCompositor().SetGestureBroker(std::move(gesture_broker)); /* gestures_sub_launcher_.reset(new nux::GesturesSubscription); gestures_sub_launcher_->SetGestureClasses(nux::DRAG_GESTURE); gestures_sub_launcher_->SetNumTouches(4); gestures_sub_launcher_->SetWindowId(GDK_ROOT_WINDOW()); gestures_sub_launcher_->Activate(); gestures_sub_dash_.reset(new nux::GesturesSubscription); gestures_sub_dash_->SetGestureClasses(nux::TAP_GESTURE); gestures_sub_dash_->SetNumTouches(4); gestures_sub_dash_->SetWindowId(GDK_ROOT_WINDOW()); gestures_sub_dash_->Activate(); gestures_sub_windows_.reset(new nux::GesturesSubscription); gestures_sub_windows_->SetGestureClasses(nux::TOUCH_GESTURE | nux::DRAG_GESTURE | nux::PINCH_GESTURE); gestures_sub_windows_->SetNumTouches(3); gestures_sub_windows_->SetWindowId(GDK_ROOT_WINDOW()); gestures_sub_windows_->Activate(); */ }

Восстановите единство, следуя инструкциям домастера:

cd /tmp/unity/unity-6.8.0 dpkg-buildpackage -us -uc -nc cd .. sudo dpkg -i *deb

Эт-вуаля снова! Выйдите из системы и войдите в систему.

16
ответ дан 2 August 2018 в 03:05
  • 1
    как это будет работать в нынешнем единстве 7.2.1? – plopp 24 June 2014 в 10:27
  • 2
    Этот ответ все еще на 100% действителен для Unity 7.2.2 (поэтому я предполагаю, что он также действителен для 7.2.1). Я строю прямо сейчас, расскажу о том, что происходит. touchhegg, как только я закончу и перезагружу. – Endophage 20 August 2014 в 09:34
  • 3
    Когда-то между Trusty и Xenial, настройки для отключения жестов Unity были добавлены в dconf, перечисленные в разделе com.canonical.unity.gestures. Если вы также можете быть доступны в Wily, но я так не думаю; Я только уверен, что он недоступен в Trusty и находится в Xenial. – Kevin 1 September 2016 в 23:17

Оказывается, исправлять пакет unity не так уж сложно, чтобы полностью отключить обработку мультитач и жестов. Ниже приведены пошаговые инструкции для исправления unity-4.24.0.

В командной строке введите:

sudo apt-get build-dep unity cd /tmp #It can be done somewhere else, feel free to change the base location. mkdir unity cd unity apt-get source unity

. В этот момент запишите следующие 2 строки в файле /tmp/unity/unity-4.24.0/plugins/unityshell/src/unityshell.cpp:

GeisAdapter::Default()->Run(); gestureEngine = new GestureEngine(screen);

и следующие 4 строки в файле /tmp/unity/unity-4.24.0/plugins/unityshell/src/Launcher.cpp:

GeisAdapter& adapter = *(GeisAdapter::Default()); adapter.drag_start.connect(sigc::mem_fun(this, &Launcher::OnDragStart)); adapter.drag_update.connect(sigc::mem_fun(this, &Launcher::OnDragUpdate)); adapter.drag_finish.connect(sigc::mem_fun(this, &Launcher::OnDragFinish));

Исходный код находится в C++, поэтому комментирование строки выполняется добавив // в начале строки. Например, строка

GeisAdapter::Default()->Run();

становится

//GeisAdapter::Default()->Run(); .

Вернитесь в командную строку, введите:

cd unity-4.24.0 dpkg-buildpackage -us -uc -nc cd .. sudo dpkg -i *deb

Et voila!

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

11
ответ дан 2 August 2018 в 03:05

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

Это было сенсорное устройство Samsung, xinput определило сенсорный модуль как AFO TCM10J 40V.

Чтобы отключить жесты мультитач на Ubuntu 14.04, метод в основном такой же, как и domster, описанный выше, за исключением того, что вы должны найти комментарий в следующей строке в /tmp/unity/unity-4.24.0/plugins/unityshell/src/Launcher.cpp

[F1]
1
ответ дан 2 August 2018 в 03:05
  • 1
    Хм, похоже, это не работало для меня. touchhegg и ginn до сих пор не сообщают никаких данных для жестов менее 4 пальцев, а «Two Finger Scroll» настройка в настройках сенсорной панели системы по-прежнему имеет приоритет ... – Jeff Ward 30 June 2015 в 00:29

Чтобы сделать это на последнем единстве (5.18.0) в 12.04, вы должны прокомментировать несколько разные строки кода.

В плагинах / unityshell / src / Launcher.cpp:

// GeisAdapter& adapter = GeisAdapter::Instance(); // adapter.drag_start.connect(sigc::mem_fun(this, &Launcher::OnDragStart)); // adapter.drag_update.connect(sigc::mem_fun(this, &Launcher::OnDragUpdate)); // adapter.drag_finish.connect(sigc::mem_fun(this, &Launcher::OnDragFinish));

В плагинах / единствах оболочки / src / unityshell.cpp:

// geis_adapter_.Run(); // gesture_engine_.reset(new GestureEngine(screen));
3
ответ дан 2 August 2018 в 03:05

Обратите внимание, что dpkg-buildpackage может быть задано количество заданий в качестве аргумента, что позволяет использовать все ваши ядра процессора следующим образом:

dpkg-buildpackage -us -uc -nc -j$(($(nproc)))

(Это должно было быть ответом на ответ dgraziotin, но я не могу оставлять комментарии.)

1
ответ дан 2 August 2018 в 03:05
  • 1
    Помогает много. Слишком долго ждать завершения одиночной резьбы. – Orient 18 September 2017 в 10:38

Вторая попытка

dinegri предполагает, что '[t] o отключить три жесты, [необходимо] установить [c], [и затем] отключить «Unit MT Grab Handles» также знать как «Любит ручки» здесь.

Но это еще не все четыре жестов пальца.

Вторая попытка

Конфигурационный файл для utouch - /etc/ginn/wishes.xml , Таким образом, вы можете отредактировать этот файл и удалить (или прокомментировать) действия, которые вы не хотите. Затем Touchégg выполнил свою работу без конфликтов.

dinegri

PS: Я не мог воспроизвести вашу проблему здесь, чтобы протестировать решение. Прошу прощения за это.

2
ответ дан 2 August 2018 в 03:05
  • 1
    Это файл конфигурации для ginn, который является инжектором жестов, функциональность которого совпадает с функциональностью TouchEgg. Изменения в файле конфигурации будут иметь эффект только в том случае, если демон ginn запущен, что, поскольку я использую TouchEgg, обычно это не так. Учитывая возможность использования ginn вместо Touchégg, я попытался переопределить некоторые жесты Unity по умолчанию, комментируя их в файле конфигурации ginn и запуская ginn, но это не работает. – mgunes 24 August 2011 в 06:15
  • 2
    Я обновил ответ. – desgua 24 August 2011 в 21:38
  • 3
    Отключение плагина с ручками приведет к удалению визуального преимущества для перетаскивания; он даже не отключит три касания пальцем и жест перетаскивания (который я вообще не хочу отключать), не говоря уже о других. – mgunes 24 August 2011 в 22:31
  • 4
    Кстати, я уже отключил его, так как из-за ошибки # 754000 мне нужно симулировать среднюю нажатие кнопки с помощью Touchégg, и когда ручки появляются каждый раз, когда я выполняю три касания пальца, это очень дезориентирует. – mgunes 24 August 2011 в 22:36

Отключить стандартные жесты касания следующим образом:

sudo apt install dconf-editor dconf-editor

В левом меню нажмите

com > canonical > unity > gestures

и отключите 3 основных жеста, показанных там. Это работает 16.04.3.

1
ответ дан 4 August 2018 в 18:56
  • 1
    Безусловно, самый лучший и самый простой ответ для пользователей 16.04 Ubuntu, которые рады установить версию dconf для графического интерфейса пользователя. – GrayedFox 26 February 2018 в 07:07

Обновление для ответа domster для Ubuntu 12.10.

Исходный код Unity явно изменился, так вот как добиться того же результата в Unity 6.8.0. Шаги по загрузке исходного кода Unity такие же, как и раньше (я скопирую и добавлю фрагмент domster):

sudo apt-get build-dep unity cd /tmp #It can be done somewhere else, feel free to change the base location. mkdir unity cd unity apt-get source unity

На этом этапе файл, который нужно отредактировать, является только /tmp/unity/unity-6.8.0/plugins/unityshell/src/unityshell.cpp.

Найдите метод UnityScreen::InitGesturesSupport() (строка 3368 для Unity 6.8.0).

Затем прокомментируйте все строки, начинающиеся с gesture_sub_launcher, чтобы они выглядели так:

void UnityScreen::InitGesturesSupport() { std::unique_ptr<nux::GestureBroker> gesture_broker(new UnityGestureBroker); wt->GetWindowCompositor().SetGestureBroker(std::move(gesture_broker)); /* gestures_sub_launcher_.reset(new nux::GesturesSubscription); gestures_sub_launcher_->SetGestureClasses(nux::DRAG_GESTURE); gestures_sub_launcher_->SetNumTouches(4); gestures_sub_launcher_->SetWindowId(GDK_ROOT_WINDOW()); gestures_sub_launcher_->Activate(); gestures_sub_dash_.reset(new nux::GesturesSubscription); gestures_sub_dash_->SetGestureClasses(nux::TAP_GESTURE); gestures_sub_dash_->SetNumTouches(4); gestures_sub_dash_->SetWindowId(GDK_ROOT_WINDOW()); gestures_sub_dash_->Activate(); gestures_sub_windows_.reset(new nux::GesturesSubscription); gestures_sub_windows_->SetGestureClasses(nux::TOUCH_GESTURE | nux::DRAG_GESTURE | nux::PINCH_GESTURE); gestures_sub_windows_->SetNumTouches(3); gestures_sub_windows_->SetWindowId(GDK_ROOT_WINDOW()); gestures_sub_windows_->Activate(); */ }

Восстановите единство, следуя инструкциям домастера:

cd /tmp/unity/unity-6.8.0 dpkg-buildpackage -us -uc -nc cd .. sudo dpkg -i *deb

Эт-вуаля снова! Выйдите из системы и войдите в систему.

16
ответ дан 4 August 2018 в 18:56
  • 1
    как это будет работать в нынешнем единстве 7.2.1? – plopp 24 June 2014 в 10:27
  • 2
    Этот ответ все еще на 100% действителен для Unity 7.2.2 (поэтому я предполагаю, что он также действителен для 7.2.1). Я строю прямо сейчас, расскажу о том, что происходит. touchhegg, как только я закончу и перезагружу. – Endophage 20 August 2014 в 09:34
  • 3
    Когда-то между Trusty и Xenial, настройки для отключения жестов Unity были добавлены в dconf, перечисленные в разделе com.canonical.unity.gestures. Если вы также можете быть доступны в Wily, но я так не думаю; Я только уверен, что он недоступен в Trusty и находится в Xenial. – Kevin 1 September 2016 в 23:17

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

Похожие вопросы: