मैं यूनिटी में मनमाने ढंग से डिफ़ॉल्ट मल्टीटच इशारों को कैसे अक्षम कर सकता हूं?


22

मैं एक मैजिक ट्रैकपैड के साथ Ubuntu 11.04 में एक कस्टम टचएग मल्टीटच जेस्चर सेटअप का उपयोग कर रहा हूं । चूंकि डिफॉल्ट जेस्चर (जैसे कि 3-फिंगर टैप और विंडो को स्थानांतरित करने के लिए ड्रैग, 4 फिंगर टैप से डैश को प्रकट करने के लिए आदि) जाहिरा तौर पर यूनिटी में हार्डकोडेड हैं, मैं उन्हें कोई कस्टम टचएग एक्शन असाइन करने में असमर्थ हूं, और कुछ डिफॉल्ट इशारों (कि मैं बहुत उपयोग करने का इरादा नहीं है, अगर बिल्कुल भी) कभी-कभी अपने समान कस्टम-असाइन किए गए लोगों के साथ मिलाएं और दुर्घटना से ट्रिगर हो जाएं।

क्या डिफ़ॉल्ट इशारों में से कुछ को निष्क्रिय करने का एक व्यावहारिक तरीका (uTouch स्रोत को छोटा करना) है? यदि नहीं, तो कोड के कुछ हिस्सों (शायद ग्रिल में?) को इंगित करता है, जहां डिफ़ॉल्ट इशारों को परिभाषित किया गया है, और ट्वीकिंग के साथ मदद की भी सराहना की जाएगी।


1
क्या आप बस यूटच को अनइंस्टॉल कर सकते हैं और टचएज रख सकते हैं?
desgua

1
टचएग यूटच-गीस का उपयोग करता है, इसलिए नहीं, किसी भी दूरस्थ व्यावहारिक अर्थ में नहीं।
3

मुझे संदेह है कि आप इन कार्यों को /etc/ginn/wishes.xml में कॉन्फ़िगर कर सकते हैं (मैं मोबाइल पर हूं, अभी परीक्षण नहीं कर सकता)
desgua

जवाबों:


16

Ubuntu 12.10 के लिए डोमस्टर जवाब के लिए एक अद्यतन ।

एकता स्रोत कोड स्पष्ट रूप से बदल गया है, इसलिए यहां बताया गया है कि एकता 6.8.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

इस बिंदु पर, संपादित की जाने वाली फ़ाइल केवल है /tmp/unity/unity-6.8.0/plugins/unityshell/src/unityshell.cpp

विधि ढूंढें UnityScreen::InitGesturesSupport()(एकता 6.8.0 के लिए लाइन 3368)।

उसके बाद, यह दिखने के लिए, हावभाव_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

फिर से आवाज! लॉगआउट करें और लॉग इन करें।


वर्तमान एकता 7.2.1 में यह कैसे काम करेगा?
जुप्प

यह उत्तर अभी भी एकता so.२.२ के लिए १००% वैध है (इसलिए मैं मान रहा हूँ कि यह still.२.१ के लिए भी मान्य है)। मैं अभी निर्माण कर रहा हूं, फिर से क्या होगा इस पर अपडेट करेंगे। एक बार जब मैं कर रहा हूँ और रिबूट किया गया था।
एंडोफेगे

1
ट्रस्टी और ज़ेनियल के बीच कुछ समय, एकता इशारों को अक्षम करने के लिए सेटिंग्स को नीचे सूचीबद्ध करने के लिए dconf में जोड़ा गया है com.canonical.unity.gestures। अगर विली में भी उपलब्ध हो सकता है, लेकिन मुझे ऐसा नहीं लगता; मैं केवल सकारात्मक हूं कि यह ट्रस्टी में उपलब्ध नहीं है, और एक्सनियल में है।
केविन

Ubuntu 16: dpkg-buildpackage -us -uc -ncत्रुटियों के साथ बाहर निकलता है। error: debian/rules build gave error exit status 2... The X server was not able to run in time ....recipe for target 'tests/CMakeFiles/run-test-switcher-controller-slow-headless' failed
मैट

11

यह पता चला है कि 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

ए टी वॉयला!

अब यदि आप लॉगआउट करते हैं और वापस लॉग इन करते हैं, तो इशारों को सामान्य रूप से कार्य करना चाहिए। ट्रिपल टैप मेरे सिस्टम पर डिफ़ॉल्ट रूप से एक मिडिल क्लिक के रूप में काम करता है, बिना टौकेग की आवश्यकता के। लेकिन दोनों touchegg और ginn अब आपके अनुप्रयोगों के लिए कस्टम इशारों को परिभाषित करने के लिए अच्छी तरह से काम करते हैं।


3

12.04 में नवीनतम एकता (5.18.0) पर ऐसा करने के लिए आपको कुछ अलग कोड लाइनों पर टिप्पणी करनी होगी।

प्लगइन्स में / एकता / 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));

प्लगइन्स में / unityshell / src / unityshell.cpp:

// geis_adapter_.Run();
// gesture_engine_.reset(new GestureEngine(screen));

2

दूसरा प्रयास

dinegri का सुझाव है कि '[t] o तीन इशारों को अक्षम करें, यह आवश्यक है [करने के लिए] स्थापित किया है ccsm, [और फिर] अक्षम "यूनिट MT पकड़ो हैंडल" भी यहाँ "लव हैंडल" के रूप में जानते हैं

लेकिन यह हमें अभी तक चार अंगुलियों के इशारों से छोड़ता है।

पहला प्रयास

Utouch के लिए कॉन्फ़िगरेशन फ़ाइल है /etc/ginn/wishes.xml। इसलिए आप इस फ़ाइल को संपादित कर सकते हैं और अपनी इच्छित कार्रवाइयों को हटा सकते हैं (या टिप्पणी कर सकते हैं)। तब टचएग बिना संघर्ष के अपना काम करेगा।

संदर्भ

पुनश्च: मैं आपकी समस्या का समाधान हल करने के लिए यहाँ पुन: पेश नहीं कर सका। उसके लिए मैं क्षमा चाहता हूँ।


यह जिन्न के लिए कॉन्फ़िगरेशन फ़ाइल है, जो एक जेस्चर इंजेक्टर है, जिसकी कार्यक्षमता टचएग के साथ ओवरलैप होती है। इसकी कॉन्फ़िगरेशन फ़ाइल में संशोधन केवल तभी प्रभावी होगा जब जिन्न डेमॉन चल रहा है, जो कि मैं टचएग का उपयोग कर रहा हूं, यह सामान्य रूप से नहीं है। मन में टचएग के बजाय जिन का उपयोग करने की संभावना के साथ, मैंने कुछ डिफ़ॉल्ट यूनिटी इशारों को जिन्न कॉन्फ़िगरेशन फ़ाइल में टिप्पणी करके और जिन्न चलाने की कोशिश की है, लेकिन यह काम नहीं करता है।
एमजी ट्यून्स

मैंने जवाब अपडेट कर दिया है।
देसगुआ

4
हैंडल प्लगइन को अक्षम करने से केवल खींचने के लिए दृश्य व्यय को हटा दिया जाएगा; यह थ्री फिंगर टैप और ड्रैग जेस्चर को भी डिसेबल नहीं करेगा (जो मैं विशेष रूप से वैसे भी डिसेबल नहीं करना चाहता), अकेले दूसरों को।
एमजी

वैसे, मैंने पहले से ही इसे अक्षम कर दिया है, क्योंकि बग # 754000 के कारण, मुझे टचएग के साथ मध्य बटन क्लिक को अनुकरण करने की आवश्यकता है, और जब भी मैं तीन फिंगर टैप करता हूं, तो हैंडल हर बार दिखाई देता है।
एमजी

2

मानक स्पर्श इशारों को निम्नानुसार अक्षम करें:

sudo apt install dconf-editor
dconf-editor

बाएं हाथ के मेनू में क्लिक करें

com > canonical > unity > gestures

और वहां दिखाए गए 3 मूल इशारों को अक्षम करें। यह 16.04.3 पर काम करता है।


16.04 उबंटू उपयोगकर्ताओं के लिए अब तक का सबसे अच्छा और सबसे सीधा जवाब जो कि dconf का GUI संस्करण स्थापित करने के लिए खुश है।
3

1

हमने उबंटू आधारित कियोस्क टर्मिनल बनाया है, लेकिन मल्टीटच इशारों ने ओएस का खुलासा किया, इसलिए हमें किसी तरह से छुटकारा पाना था।

यह एक सैमसंग टचस्क्रीन डिवाइस था, xinputटच मॉड्यूल की पहचान AFO TCM10J 40V के रूप में की गई थी।

उबंटू 14.04 पर मल्टीटच इशारों को अक्षम करने के लिए विधि मूल रूप से ऊपर वर्णित डोमस्टर के समान है, इसके अलावा आपको निम्नलिखित पंक्ति में एक टिप्पणी ढूंढनी होगी /tmp/unity/unity-4.24.0/plugins/unityshell/src/Launcher.cpp

// InitGestureEngine();

हम्म, यह मेरे लिए काम नहीं करता था। touchegg और ginn अभी भी 4 उंगलियों से कम के इशारों के लिए किसी भी डेटा की सूचना नहीं देते हैं, और सिस्टम टचपैड सेटिंग्स में "टू फिंगर स्क्रॉल" सेटिंग अभी भी पूर्वता लेता है ...
जेफ वार्ड

1

ध्यान दें कि dpkg-buildpackage को तर्क के रूप में कई काम दिए जा सकते हैं, जो आपको इस तरह से अपने सभी सीपीयू कोर का उपयोग करने की अनुमति देता है:

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

(यह dgraziotin के उत्तर के लिए एक टिप्पणी होनी चाहिए थी, लेकिन मैं टिप्पणी पोस्ट नहीं कर सकता।)


बहुत मदद करता है। यह तब तक इंतजार करने के लिए बहुत लंबा है जब तक एकल पिरोया खत्म नहीं हो जाता।
ओरिएंट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.