मेरे माउस पर फ़ॉरवर्ड / बैक बटन को कैसे निष्क्रिय करें


36

मेरे माउस में एक दुर्भाग्यपूर्ण विशेषता है। बाईं ओर, दाईं ओर जहां मेरा अंगूठा कभी भी बहुत धीरे से बैठता है जब मैं इसका उपयोग कर रहा हूं, तो दो बटन हैं जो इतने संवेदनशील हैं कि एक मात्र ब्रश उन्हें क्लिक कर देगा।

मैं निश्चित रूप से pesky फॉरवर्ड / बैक बटन के बारे में बात कर रहा हूं, जिसे यदि किसी ब्राउज़र में दबाया जाता है, तो वह घंटे भर का यूट्यूब वीडियो देख सकता है जो बहुत कठिन है। क्या मुझे उन्हें निष्क्रिय करने का कोई तरीका है? क्या यह एक्स द्वारा संभाला जाएगा?


2
मुझे लगभग यकीन है कि आप इसका उपयोग बंद कर सकते हैं xinput, लेकिन मुझे विवरण नहीं पता ...
pbm

यह प्रश्न और उत्तर कीबोर्ड पर बैक / फॉरवर्ड बटन पर भी लागू होता है, उदाहरण के लिए थिंकपैड कीबोर्ड पर
डैनियल एस। स्टर्लिंग

जवाबों:


43

xevएक टर्मिनल में कार्यक्रम शुरू करें । xevखिड़की के अंदर माउस ले जाएँ ; आप बहुत से सामान स्क्रॉल करके देखेंगे। प्रत्येक बटन को बदले में दबाएं। फिर टर्मिनल विंडो पर वापस जाएं और Ctrl+ दबाएं Cxevप्रत्येक इनपुट ईवेंट का विवरण दिखाता है, विशेष रूप से ButtonPressऔर ButtonReleaseमाउस क्लिक के लिए (आप MotionNotifyमाउस मूवमेंट और अन्य ईवेंट के लिए भी कई नंबर देखेंगे )।

यह संभव है कि आपके आगे और पीछे के बटन को माउस बटन पर मैप किया जाए, हो सकता है कि बटन 8 और 9:

ButtonPress event, serial 29, synthetic NO, window 0x2e00001,
    root 0x105, subw 0x0, time 2889100159, (166,67), root:(1769,98),
    state 0x0, button 8, same_screen YES

यदि ऐसा है, तो अपने ब्राउज़र में इन क्रियाओं को एक अलग कार्रवाई के लिए फिर से शुरू करें, यदि आप कर सकते हैं। वैकल्पिक रूप से, आप बटन को अलग-अलग बटन संख्याओं के लिए रीमैप कर सकते हैं, जो कि आपका ब्राउज़र सिस्टम स्तर पर बटन को पूरी तरह से या निष्क्रिय नहीं करता है। ऐसा करने के लिए, इन पंक्तियों को एक फ़ाइल में डालें ~/.Xmodmap:

! Remap button 8 to 10 and disable button 9.
pointer = 1 2 3 4 5 6 7 10 0

इसे कमांड से टेस्ट करें xmodmap ~/.Xmodmap। जब आप लॉग इन करते हैं तो अधिकांश डेस्कटॉप वातावरण और विंडो मैनेजर इस कमांड को स्वचालित रूप से चलाते हैं; यदि आपका नहीं है, तो एक्स शुरू होने पर इसे चलाने की व्यवस्था करें।

यह भी संभव है कि जब आप इन बटन को दबाते हैं तो आपका माउस एक कीबोर्ड ईवेंट भेजता है:

KeyPress event, serial 32, synthetic NO, window 0x2e00001,
    root 0x105, subw 0x0, time 2889100963, (957,357), root:(2560,388),
    state 0x0, keycode 166 (keysym 0x1008ff26, XF86Back), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

उस स्थिति में, इन लाइनों को इस तरह डालें ~/.Xmodmap:

keycode 166 = NoSymbol
keycode 167 = NoSymbol

2
सवाल और जवाब दोनों के लिए धन्यवाद। संयोग से, xevआउटपुट की पागलपन को कम करने के लिए , बस इसे grep के माध्यम से पाइप करें xev | grep -A2 ButtonPress:; यह सभी माउस मोशन ईवेंट्स, फ़ोकस इवेंट्स आदि को छोड़ देगा और बस उन ButtonPressइवेंट्स को दिखाएगा , जो आपको यहाँ चाहिए।
लामार्ट

धन्यवाद! यह कुछ सेकंड में मदद मिली! :-)
ब्रायन हक

वायलैंड में भी यह काम करता है!
रे फॉस

2

आप यह xevजानने के लिए उपयोग कर सकते हैं कि बटन किन मानचित्रों को मैप करता है और नीचे दिए गए कोड ($ HOME / .xsessionrc में) का उपयोग करके इसे उस चीज़ पर मैप करें जिसे आप उपयोग नहीं कर रहे हैं।

xmodmap -e 'keycode THE_CODE_HERE = XF86Launch1'

वैकल्पिक रूप से, आपको ऐसा करने में सक्षम होना चाहिए कि आप किसी GUI से Gnome / KDE या किसी अन्य आधुनिक डेस्कटॉप का उपयोग करें।

फिर भी एक और विकल्प बटन की परिभाषा को हटाने के लिए xorg.conf को हैक करना होगा।


1

इसे ठीक करने के लिए सिर्फ एक त्वरित आदेश, वास्तव में अन्य उत्तरों से अलग नहीं:

xmodmap -e "pointer = 1 2 3 4 5 6 7 0 0 0 0 0 0" #the fix

परिक्षण

xmodmap -pp # check the changes
xterm -e xev # test the nullified buttons

# to restore in case you are going to play some game that uses them
xmodmap -e "pointer = 1 2 3 4 5 6 7 8 9 10 11 12 13"

आप स्टार्टअप एप्लिकेशन पर फिक्स cmd डाल सकते हैं।

बेहतर होगा कि xdotool का उपयोग यह जांचने के लिए करें कि क्या सक्रिय विंडो आपके किसी ब्राउज़र की है और xmodmap को अक्षम / सक्षम करने की मांग पर कॉल करें, लेकिन इसके लिए कुछ स्क्रिप्टिंग की आवश्यकता होगी:>

मैंने 7 से ऊपर बटन रखने का कोई कारण नहीं देखा, क्या कोई कारण है?


0

Xorg config फाइल के साथ किया जा सकता है

यहाँ एक उदाहरण है कि क्षैतिज स्क्रॉल अक्षम करें (नई फ़ाइल सहेजें और रीबूट करें)

नैनो /etc/X11/xorg.conf.d/40-libinput-mouse-left-n.ff

Section "InputClass"
        Identifier "Logitech catchall"
        MatchIsPointer  "on"
        Driver "libinput"
        Option "HorizontalScrolling" "false"
EndSection

अन्य उपयोगी आदेश

xinput list
xinput list-props 15

अब इस प्रश्न के लिए xorg config फाइल का उपयोग यहां बटन को रीमैप करने के लिए किया जा सकता है

Section "InputClass"
    # ...
    Option "ButtonMapping" "1 9 3 4 5 6 7 8 2"
    # ...
EndSection

0

यदि आप xmodmapकमांड्स (एक्स पर, वेयलैंड पर नहीं) कोशिश कर रहे हैं और आपको इसमें त्रुटि मिल रही BadValue (integer parameter out of range for operation)है X_SetPointerMapping, तो आपको xinputइसके बजाय उपयोग करने की आवश्यकता हो सकती है । xinputडिवाइस आईडी प्राप्त करने के लिए कोई पैरामीटर के साथ चलाएँ (पॉइंटर के लिए एक देखें) फिर चलाएं

xinput set-button-map [pointer-device-id] 1 2 3 4 5 0 0 0 0

मेरे मामले में, मेरा माउस डिवाइस # 4 था और मुझे आगे बढ़ने के लिए बटन 6 और 7 को 8 और 9 बनाने की आवश्यकता थी ताकि मैं वापस काम कर सकूं।

xinput set-button-map 4 1 2 3 4 5 8 9 8 9

(मैं बटन 8 और 9 रखा भी मामले मैं बदल चूहों में 8 और 9 को मैप किया।)

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