मैक ओएस पर सिस्टम-वाइड टच जेस्चर को प्रोग्रामेटिक रूप से अक्षम/दबाने की आवश्यकता है। मैं रिक्त स्थान, आदि के बीच 4-उंगली स्वाइप जैसे संकेतों का जिक्र कर रहा हूं।ओएसएक्स - सिस्टम-वाइड टच जेस्चर अक्षम करना
मैंने EventTap को देखा है लेकिन यह एक विकल्प नहीं दिखता है (यहां पिछली रिपोर्ट के बावजूद - शायद यह 10.8 के तहत बदला गया है)
मैंने प्रोग्राम प्राथमिकताओं को प्रोग्रामिक रूप से बदलने के कई तरीकों की भी कोशिश की है। उदाहरण के लिए, मैंने IORonnectEetCFProperties का उपयोग करके IORegnectEetryCreateCFProperties का उपयोग कर स्थित सेवा पर IOConnectSetCFProperties का उपयोग करने का प्रयास किया है।
मैं भी देखने के लिए कि वे किस तरह यह करना ट्रैकपैड वरीयता फलक में delved है, और मैं यह पुन: पेश करने की कोशिश की (उपेक्षा किसी भी बनाने/रिलीज विसंगतियों, यह सिर्फ परीक्षण कोड):
NSInteger zero = 0;
CFNumberRef numberWith0 = CFNumberCreate(kCFAllocatorDefault, kCFNumberNSIntegerType, &zero);
CFMutableDictionaryRef propertyDict = CFDictionaryCreateMutable(kCFAllocatorDefault, 0,
&kCFTypeDictionaryKeyCallBacks,
&kCFTypeDictionaryValueCallBacks);
CFDictionarySetValue(propertyDict, @"TrackpadFourFingerHorizSwipeGesture", numberWith0);
io_connect_t connect = getEVSHandle(); // Found in the MachineSettings framework
if (!connect)
{
NSLog(@"Unable to get EVS handle");
}
kern_return_t status = IOConnectSetCFProperties(connect, propertyDict);
if (status != KERN_SUCCESS)
{
NSLog(@"Unable to get set IO properties");
}
CFRelease(propertyDict);
CFPreferencesSetValue(CFSTR("com.apple.trackpad.fourFingerHorizSwipeGesture"), _numberWith0, kCFPreferencesAnyApplication, kCFPreferencesCurrentUser, kCFPreferencesCurrentHost);
CFPreferencesSetValue(CFSTR("TrackpadFourFingerHorizSwipeGesture"), _numberWith0, CFSTR("com.apple.driver.AppleBluetoothMultitouch.trackpad"), kCFPreferencesCurrentUser, kCFPreferencesCurrentHost);
CFPreferencesSynchronize(kCFPreferencesAnyApplication, kCFPreferencesCurrentUser, kCFPreferencesCurrentHost);
status = BSKernelPreferenceChanged(CFSTR("com.apple.driver.AppleBluetoothMultitouch.trackpad"));
में यह मामला काम करने लगता है, कोई त्रुटि नहीं है और सिस्टम वरीयता फलक में विकल्प अक्षम हो जाता है, हालांकि चार अंगुली इशारा काम जारी है। मुझे संदेह है कि उसमें लॉग आउट करने का असर होगा, लेकिन मैंने कोशिश नहीं की है क्योंकि यह किसी भी मामले में पर्याप्त नहीं है।
यह ध्यान देने योग्य है कि प्रीफ फलक स्वयं भी बीएस कर्नेल प्रीफरेंस को बुलाता है, लेकिन मुझे नहीं पता कि इससे लिंक करने के लिए कौन सा ढांचा हो सकता है। शायद यह समस्या की कुंजी है ...
अद्यतन: असल में मैंने इसे अब पाया है और इसे लिंक किया है। उस कॉल को जोड़ने से कोई फर्क नहीं पड़ता, हालांकि यह 1 लौटाता है जो एक त्रुटि इंगित कर सकता है। मैंने उपरोक्त कोड में कॉल जोड़ा है।
अंत में मैं टर्मिनल से यह कोशिश की:
defaults write -globalDomain com.apple.trackpad.fourFingerHorizSwipeGesture 0
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadFourFingerHorizSwipeGesture 0
कि एक तत्काल प्रभाव या तो नहीं है।
मैं नहीं मानता कि यह संभव नहीं है, वहाँ एक रास्ता होना चाहिए ...
मास संगतता की आवश्यकता नहीं है।
में प्रवेश को देखने के लिए कॉल क्वार्ट्ज घटना सेवाओं के लिए क्या बना रहे हैं "चूक लिखने" संभव है बिट, क्या आप "से एक तत्काल नहीं है मतलब है प्रभाव "क्या यह रीबूट के बाद काम करता है? कई डिफ़ॉल्टों को प्रभावी होने के लिए आपको कई बार 'मार डालो' और 'किलर फाइंडर' करना होता है। – jeremy
हाय जेरेमी। दरअसल, लेकिन मुझे तत्काल प्रभाव होने की आवश्यकता है, जैसे कि जब आप वरीयता फलक में ट्रैकपैड विकल्प बदलते हैं। – tarmes
अगर आप लॉग आउट नहीं करना चाहते हैं तो आप खोजक को फिर से लॉन्च करने का प्रयास कर सकते हैं। –