Отключить жесты Unity Multitouch (Unity 7.3.3, Ubuntu 15.10)

Я до сих пор не нашел ответ для Unity V7.3+ и / или Ubuntu 15+. Неужели все еще есть случай, когда есть нулевые варианты их отключения без перекомпиляции Unity?

У меня монитор с сенсорным экраном, Acer 232HL, а не тачпад.

Согласно комментариям отсюда, эта модификация исходного кода остается в силе, по крайней мере, до 7.2.2. Я бы предпочел не перекомпилировать Unity, но если нет другого пути...

Спасибо, что нашли время, чтобы прочитать это.

1 ответ

Решение

Не могу найти другие варианты. Единственный способ, которым я мог найти, - это перекомпилировать Unity. По крайней мере, это прямо.

Кредит идет парням здесь.

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-7.3.2/plugins/unityshell/src/unityshell.cpp

Вот строки, которые нужно закомментировать. Я перекомпилировал 7.3.2, они запускаются в строке 4086.

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();
  */
}

Перестройте Unity:

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

Перезагружать.

Наконец, отправьте запрос на добавление функции, чтобы он где-то был в качестве опции конфигурации.

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