Xbindkeys का उपयोग करके माउस के अंगूठे के बटन पर संशोधक (उदाहरण के लिए CTRL) कैसे मैप करें


13

यह सवाल पहले ही पूछा जा चुका है लेकिन कभी भी इसका सही जवाब नहीं दिया गया। @ सेठ के साथ मंजूरी के बाद अब मैं इसे फिर से पूछ रहा हूं। यह मुझे जवाब देने और संभवतः प्रश्न को बहुत आसान रूप से संशोधित करने की अनुमति देगा। मूल प्रश्न यहां पाया जा सकता है:

माउस अंगूठे के बटन के लिए Ctrl और Alt मैप करें


मुद्दा:

हालाँकि किसी भी कीस्ट्रोक्स को माउस बटन xbindkeysके साथ संयोजन में उपयोग करना बहुत सरल है xdotoolया xteइसके साथ एक संशोधक कुंजी (जैसे ALT , CTRL , SHIFT इत्यादि) को मैप करने के लिए बहुत अधिक समस्याग्रस्त लगता है।

अंतिम सॉल्यूशन में बस माउस के साथ ia को एक CTRL + क्लिक (उदाहरण के लिए एक सूची की कई प्रविष्टियों को चुनने) की अनुमति देनी चाहिए ।

इसे हल करने के लिए कुछ संभव दृष्टिकोण यहां स्टैक एक्सचेंज के साथ-साथ अन्य लिनक्स से संबंधित मंचों पर पाए जा सकते हैं। लेकिन उनमें से कोई भी उम्मीद के मुताबिक काम नहीं करता है क्योंकि वे अन्य मुद्दों और दुष्प्रभावों को जन्म देते हैं।

टिप्पणियाँ:

नीचे दिए गए कुछ उदाहरणों में योजना सिंटैक्स के साथ गाइल शामिल है और फ़ाइल पर निर्भर है जबकि अन्य इसकी संबंधित सिंटैक्स के साथ फ़ाइल पर भरोसा करते हैं । मुझे पता है कि वे एक साथ काम नहीं करेंगे।.xbindkeysrc.scm.xbindkeysrc

इसके अलावा नीचे दिए गए स्निपेट xdotoolकेवल उसी पर निर्भर करते हैं, लेकिन मैं अन्य अनुप्रयोगों जैसे कि जैसे दृष्टिकोण के लिए खुला हूं xte- हालांकि ऐसा लगता है कि दोनों एक ही परिणाम के लिए नेतृत्व करते हैं और इसलिए मैं xdotoolयहां केवल कार्यों का उपयोग कर रहा हूं ।

दृष्टिकोण ए:

.xbindkeysrcफ़ाइल को इसके साथ अपडेट करना :

"xdotool keydown ctrl"
  b:8

"xdotool keyup ctrl"
  release + b:8

यही मैंने शुरू में कोशिश की, लेकिन इसका साइड-इफेक्ट है कि संशोधक आयोजित किया जा रहा है और जारी नहीं किया जा सकता है।

दृष्टिकोण बी:

.xbindkeysrc.scmफ़ाइल को इसके साथ अपडेट करना :

(xbindkey '("b:8") "xdotool keydown ctrl")
(xbindkey '(release "b:8") "xdotool keyup ctrl")

(xbindkey '("m:0x14" "b:8") "xdotool keydown ctrl")
(xbindkey '(release "m:0x14" "b:8") "xdotool keyup ctrl")

Http://www.linuxforums.org/forum/hardware-peripherals/169773-solved-map-mouse-button-modifier-key.html पर पाया गया और उस मुद्दे को संबोधित करने की कोशिश करता है जहां संशोधक आयोजित किया जा रहा है (जैसा कि दृष्टिकोण के रूप में वर्णित है) ए)।

हालांकि यह ठीक करता है कि यह केवल आंशिक रूप से काम करता है क्योंकि अन्य माउस क्लिक करना संभव नहीं है जबकि अंगूठे का बटन दबाया जाता है।

दृष्टिकोण C:

.xbindkeysrcफ़ाइल को इसके साथ अपडेट करना :

"xdotool keydown ctrl"
  b:8

"xdotool keyup ctrl"
  release + control + b:8

Askubuntu पर यहाँ से जुड़े प्रश्न के ओपी की कोशिश की। बहुत सरल और अधिक ठोस क्योंकि इसमें संशोधक राज्य शामिल नहीं हैं। फिर भी समस्या बनी हुई है, अर्थात CTRL + क्लिक संभव नहीं है।

ऐसा लगता है कि यह xbindkeysस्वयं समस्या है क्योंकि यह क्लिक को पहचानता है लेकिन इसे निष्पादित नहीं करेगा। इसका उपयोग करके परीक्षण किया जा सकता है xev | grep buttonऔर xbindkeys -v:

एक सामान्य माउस क्लिक के रूप में रिकॉर्ड किया xevजाना चाहिए:

state 0x10, button 1, same_screen YES
state 0x110, button 1, same_screen YES

साथ ही अंगूठे के बटन के लिए:

state 0x10, button 8, same_screen YES
state 0x10, button 8, same_screen YES

लेकिन उपरोक्त xbindkeysविन्यास सक्षम होने पर यह कुछ भी रिकॉर्ड नहीं करता है। यद्यपि यह थंब बटन के लिए समझ में आता है क्योंकि यह CTRL के लिए मैप किया गया है और इसलिए अब माउस बटन नहीं है, यह अजीब है कि बटन 1 भी दर्ज नहीं किया गया है। यह संभावना है क्योंकि xbindkeysयह निष्पादित नहीं करता है, लेकिन खुद इसे पहचान रहा है:

Button press !
e.xbutton.button=8
e.xbutton.state=16
"xdotool keydown ctrl"
    m:0x0 + b:8   (mouse)
got screen 0 for window 16d
Start program with fork+exec call
Button press !
e.xbutton.button=1
e.xbutton.state=20
Button release !
e.xbutton.button=1
e.xbutton.state=276
Button release !
e.xbutton.button=8
e.xbutton.state=20
"xdotool keyup ctrl"
    Release + m:0x4 + b:8   (mouse)
got screen 0 for window 16d
Start program with fork+exec call

दृष्टिकोण डी:

.xbindkeysrcफ़ाइल को इसके साथ अपडेट करना :

"xdotool keydown ctrl"
  b:8

"xdotool keyup ctrl"
  release + control + b:8

"xdotool click 1"
  b:1

बस बहुत सरल ... लेकिन क्लिकों की एक अनंत लूप की ओर जाता है।


अपडेट करें:

इस बीच मैंने एक Logitech G502 खरीदा है और ध्यान दिया है कि एक बार विंडोज पर ड्राइवर के माध्यम से कॉन्फ़िगर होने पर न केवल प्रोफ़ाइल को डिवाइस मेमोरी पर संग्रहीत किया जाता है, बल्कि वास्तविक कुंजी माउस द्वारा किया जाता है। वास्तव में लिनक्स पर मेरी समस्या हल हो गई!

केवल दूसरा माउस जो मुझे याद है कि यह करने में सक्षम था कि रेज़र कॉपरहेड वापस आ गया था। लेकिन मुझे लगता है कि आज अन्य चूहे उपलब्ध हैं जो ऐसा कर सकते हैं।


1
: यहाँ एक समाधान का उपयोग कर Easystroke है askubuntu.com/a/1010647/27202
atti

जवाबों:


8

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

ऐसे समाधान हैं जो वास्तव में अच्छे हैं, जैसे यहां प्रस्तावित एक है , लेकिन यह हमेशा xbindkeys की सीमा से ग्रस्त है जो पूरे माउस को हड़प लेते हैं, जिससे मोडिफ़र्स + माउस क्लिक मैपिंग अनिश्चित हो जाता है। इसके अलावा उपरोक्त लिंक से guile आधारित समाधान ctrl + plus / ctrl + minus का उपयोग करते हैं जो उदाहरण के लिए जिम्प द्वारा पहचाना नहीं जाता है।

मुझे पता चला कि हम जो चाहते हैं वह एक माउस बटन है जो कीबोर्ड के रूप में कार्य करता है, इसलिए मैंने uinput का उपयोग किया, जिसे अजगर के माध्यम से एक्सेस किया जा सकता है , एक स्क्रिप्ट लिखी जो अंगूठे के बटन पर क्लिक करने के लिए मॉनिटर / dev / my-mouse है और सीटीटी कुंजी भेजें आभासी कीबोर्ड के लिए। यहाँ विस्तृत कदम हैं:

1. वासुदेव नियम बनाओ

हम चाहते हैं कि उपकरण सुलभ हों (अधिकार और स्थान)।

माउस के लिए:

/etc/udev/rules.d/93-mxmouse.conf.rules
------------------------------------------------------------
KERNEL=="event[0-9]*", SUBSYSTEM=="input", SUBSYSTEMS=="input", 
ATTRS{name}=="Logitech Performance MX", SYMLINK+="my_mx_mouse", 
GROUP="mxgrabber", MODE="640"

इवेंट 5 जैसे नामों के साथ कर्नेल द्वारा पहचाने जाने वाले डिवाइस के लिए Udev दिखेगा और मैं नाम के साथ अपने माउस का चयन करता हूं। SYMLINK निर्देश आश्वासन देता हूं कि मैं अपने माउस को / dev / my_mx_mouse में ढूंढूंगा। डिवाइस "mxgrabber" समूह के एक सदस्य द्वारा पठनीय होगा।

अपने हार्डवेयर के बारे में जानकारी प्राप्त करने के लिए, आपको कुछ ऐसा चलाना चाहिए

udevadm info -a -n /dev/input/eventX

Uinput के लिए:

/etc/udev/rules.d/94-mxkey.rules
----------------------------------------------------
KERNEL=="uinput", GROUP="mxgrabber", MODE="660"

सिमलिंक की कोई जरूरत नहीं, यूनीपुट हमेशा रहेगा $/dev/uinput या $/dev/input/uinputउस सिस्टम पर निर्भर करता है जो आप कर रहे हैं। बस उसे समूह और पाठ्यक्रम के पढ़ने और लिखने के अधिकार दें।

आपको अपने माउस को अनप्लग करने की आवश्यकता है - और नया लिंक / देव में दिखाई देना चाहिए। आप udev को अपने नियमों को ट्रिगर करने के लिए बाध्य कर सकते हैं$udevadm trigger

2. UINPUT मॉड्यूल को सक्रिय करें

sudo modprobe uinput

और इसे बूट करने के लिए लगातार बने रहें:

/etc/modules-load.d/uinput.conf
-----------------------------------------------
uinput

3. नया ग्रुप बनाएं

sudo groupadd mxgrabber

या जो भी आपने अपने एक्सेस ग्रुप को कॉल किया है। फिर आपको इसमें खुद को जोड़ना चाहिए:

sudo usermod -aG mxgrabber your_login

4. पायथन लिपि

आपको अजगर-यूनीपुट लाइब्रेरी (जाहिर है) और अजगर-एवदेव लाइब्रेरी स्थापित करने की आवश्यकता है । पाइप या अपने वितरण पैकेज का उपयोग करें।

स्क्रिप्ट काफी सीधी है, आपको बस बटन के event.code की पहचान करनी है।

#!/usr/bin/python3.5
# -*- coding: utf-8 -*-

"""
Sort of mini driver.
Read a specific InputDevice (my_mx_mouse),
monitoring for special thumb button
Use uinput (virtual driver) to create a mini keyboard
Send ctrl keystroke on that keyboard
"""

from evdev import InputDevice, categorize, ecodes
import uinput

# Initialize keyboard, choosing used keys
ctrl_keyboard = uinput.Device([
    uinput.KEY_KEYBOARD,
    uinput.KEY_LEFTCTRL,
    uinput.KEY_F4,
    ])

# Sort of initialization click (not sure if mandatory)
# ( "I'm-a-keyboard key" )
ctrl_keyboard.emit_click(uinput.KEY_KEYBOARD)

# Useful to list input devices
#for i in range(0,15):
#    dev = InputDevice('/dev/input/event{}'.format(i))
#    print(dev)

# Declare device patch.
# I made a udev rule to assure it's always the same name
dev = InputDevice('/dev/my_mx_mouse')
#print(dev)
ctrlkey_on = False

# Infinite monitoring loop
for event in dev.read_loop():
    # My thumb button code (use "print(event)" to find)
    if event.code == 280 :
        # Button status, 1 is down, 0 is up
        if event.value == 1:
            ctrl_keyboard.emit(uinput.KEY_LEFTCTRL, 1)
            ctrlkey_on = True
        elif event.value == 0:
            ctrl_keyboard.emit(uinput.KEY_LEFTCTRL, 0)
            ctrlkey_on = False

5. आनंद लें!

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

6. मुफ्त में अतिरिक्त

मैं अतिरिक्त व्यवहार के लिए xbindkeys का उपयोग करता हूं। उदाहरण के लिए, निम्न कॉन्फ़िगरेशन अच्छा हो सकता है यदि आपके पास व्हील साइड क्लिक वाला माउस है:

~/.xbindkeysrc
---------------------------------------------
# Navigate between tabs with side wheel buttons
"xdotool key ctrl+Tab"
  b:7
"xdotool key ctrl+shift+Tab"
  b:6

# Close tab with ctrl + right click
# --clearmodifiers ensure that ctrl state will be 
# restored if button is still pressed
"xdotool key --clearmodifiers ctrl+F4"
  control+b:3

काम करने के लिए इस अंतिम संयोजन के लिए, आपको उस बटन को अक्षम करना होगा जिसे आपने अजगर स्क्रिप्ट के लिए कॉन्फ़िगर किया है , अन्यथा यह अभी भी xbindkeys द्वारा पकड़ा जाएगा। केवल Ctrl कुंजी रहना चाहिए:

~/.Xmodmap
-------------------------------------------
! Disable button 13
! Is mapped to ctrl with uinput and python script
pointer = 1 2 3 4 5 6 7 8 9 10 11 12 0 14 15

के साथ पुनः लोड करें $ xmodmap ~/.Xmodmap

सात निष्कर्ष

जैसा कि मैंने शुरुआत में कहा था, मैं इस तथ्य से बिल्कुल खुश नहीं हूं कि मुझे खुद को लिखने के लिए राइट्स देना होगा / देव / uinput, भले ही इसे "mxgrabber" समूह समझा जाए। मुझे यकीन है कि ऐसा करने का एक सुरक्षित तरीका है, लेकिन मुझे नहीं पता कि कैसे।

उज्ज्वल पक्ष पर, यह वास्तव में, वास्तव में अच्छी तरह से काम करता है। कीबोर्ड या माउस कुंजी का कोई भी संयोजन कैसे कीबोर्ड के Ctrl बटन के साथ काम करता है अब माउस के साथ काम करता है !!


प्रयास के लिए बहुत बहुत धन्यवाद और इसे हमारे साथ साझा करना! +1 ... हालाँकि मैंने अभी तक इसका परीक्षण नहीं किया है। BTW मैं लगभग इस पर छोड़ दिया है - बहुत अच्छा होगा अगर वह उम्मीद के मुताबिक काम करता है :)
अवधारणा

आपका स्वागत है ! मेरे लिए, यह निर्दोष रूप से काम करता है। अगर आपको परेशानी है, तो मुझे बताएं। मैं अपना जवाब पूरा करने की कोशिश करता हूं, लेकिन जैसा कि मैंने इसे काम करने के लिए लगभग दो दिन बिताए, मैं कुछ भूल सकता हूं। मेरी पोस्ट को मदद / संपादित करने में खुशी होगी।
औरेलिन साइबेरियो

मुझे बस एहसास हुआ कि ctrl + click1 एक टैब को बंद करने के लिए एक बहुत बुरा विकल्प था क्योंकि यह एक नए टैब में एक लिंक खोलता है। मैंने अपने उत्तर को पायथन स्क्रिप्ट के अंतिम भाग को हटाने और xbindkeys, क्लीनर समाधान के साथ ट्विकिंग को संपादित किया
औरेलिन सिबेरियो

बस आपको बता देना चाहता हूं, कि मेरे पास अभी तक इसका परीक्षण करने का कोई समय नहीं था - लेकिन मुझे यकीन है कि अगर यह उम्मीद के अनुसार काम करता है तो मैं इसे स्वीकार कर सकता हूं - प्रतीक्षा के लिए खेद है - मैं थोड़ा व्यस्त
हूं

मुझे आश्चर्य है कि यदि हम एक दोषपूर्ण माउस स्विच को खराब करने के लिए स्क्रिप्ट के ऊपर उपयोग कर सकते हैं। मेरे पास एक पहना-पहना माउस है। मैं विंडोज में इसे ठीक करने के लिए एक ऑटोहोटेक स्क्रिप्ट का उपयोग करता हूं लेकिन लिनक्स में इसे ठीक करने के लिए कोई उपकरण नहीं है। यहाँ बाएं बटन ठीक लिए Autohhotkey स्क्रिप्ट है autohotkey.com/board/topic/63555-debounce-mouse-keys evdev - मुझे आशा है कि किसी को लिनक्स के लिए यह बंदरगाह python3 का उपयोग कर
kenn

4

मुझे PyUserInput के साथ एक समाधान मिला । यह काफी सरल है और प्रशासन के अधिकारों की आवश्यकता नहीं है। अजगर 2 और PyUserInput स्थापित होने के साथ, मैंने निम्नलिखित स्क्रिप्ट का उपयोग किया:

#!/usr/bin/python
from pymouse import PyMouseEvent
from pykeyboard import PyKeyboard

k = PyKeyboard()
class MouseToButton(PyMouseEvent):
    def click(self, x, y, button, press):
        if button == 8:
            if press:    # press
                k.press_key(k.control_l_key)
            else:        # release
                k.release_key(k.control_l_key)

C = MouseToButton()
C.run()

स्क्रिप्ट पर निष्पादन अधिकार देने के बाद, मैं इसे ~/.xsessionrcउदाहरण के लिए, एक पंक्ति के साथ कहता हूं

~ / पथ / से / script.py और

ध्यान दें । यह माउस बटन घटना को फायरिंग से नहीं रोकता है। मेरे मामले में मैंने xinput set-button-mapxinput बटन मैपिंग को बदल दिया था और उस बटन की संख्या असाइन कर दी थी जो मुझे कुछ ऐसी चीज़ों में दिलचस्पी थी जो उपयोग में नहीं थी।

उदाहरण के लिए, यदि आप अपने माउस पर बटन 8 का उपयोग करना चाहते हैं, लेकिन बटन 8 में पहले से ही एक फ़ंक्शन (उदाहरण के लिए page-next) है, तो आप निम्नलिखित का उपयोग कर सकते हैं.xsessionrc

logitech_mouse_id=$(xinput | grep "Logitech M705" | sed 's/^.*id=\([0-9]*\)[ \t].*$/\1/')
xinput set-button-map $logitech_mouse_id 1 2 3 4 5 6 7 12 9 10 11 12 13 14 15 16 17 18 19 20
./.xbuttonmodifier.py &

उपलब्ध कराए गए बटन 12ओएस के लिए कोई अर्थ नहीं किया जाता है, और बटन के लिए एक कस्टम फ़ंक्शन असाइन 12में .xbuttonmodifier.py, स्क्रिप्ट मैं ऊपर वर्णित है।


लेकिन यह मूल घटना को गोलीबारी से नहीं रोकता है। इसलिए अगर मैं फ़ायरफ़ॉक्स में बटन 8 को स्थानांतरित करने के लिए मैप करता हूं, और फ़ायरफ़ॉक्स में बटन 8 दबाए रखता हूं, तो यह पिछले पृष्ठ पर वापस जाने की कोशिश करता है, जो अवांछनीय है।
user23013

1
सच। इससे निपटने के लिए मैंने उपयोग किए गए बटन की आईडी को बदल दिया, जिसे मैं उपयोग किए गए बटन में रुचि रखता था xinput। संपादित प्रश्न देखें।
मैक्सिम

2

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

वैसे भी, मुझे एक मंच पोस्ट मिला जो आपके प्रश्न के समान है जिसके लिए उत्तर btnx स्थापित करना था और उसके माध्यम से अपने संशोधक को कॉन्फ़िगर करना था। ऐसा लगता है कि btnx अब रेपो के माध्यम से उपलब्ध नहीं है। एक ppa है, लेकिन यह नवीनतम ubuntu के लिए काम नहीं करता है।

फोरम पोस्ट: पोस्ट: http://ubuntuforums.org/showthread.php?t=1245930

लेकिन स्रोत उपलब्ध है:

आप इसे स्रोत से संकलित कर सकते हैं, लेकिन यह आपके सिस्टम पर फ़ाइलें डाल देगा जिसे पैकेज प्रबंधक बनाए नहीं रख सकता है।

अर्थात्, निम्न फाइलें:

/usr/local/sbin/btnx
/etc/init.d/btnx
/usr/share/pixmaps/btnx.png
/usr/share/btnx-config (directory, multiple files)
/usr/share/applications/btnx-config.desktop
/usr/share/omf/btnx-config/btnx-manual-C.omf
/usr/share/locale/de/LC_MESSAGES/btnx-config.mo
/usr/share/locale/fr/LC_MESSAGES/btnx-config.mo
/usr/share/locale/nl/LC_MESSAGES/btnx-config.mo
/usr/share/locale/ru/LC_MESSAGES/btnx-config.mo

निम्नलिखित सिम्बलिंक्स:

/etc/rc0.d/K49btnx -> ../init.d/btnx
/etc/rc1.d/K49btnx -> ../init.d/btnx
/etc/rc6.d/K49btnx -> ../init.d/btnx
/etc/rc2.d/S49btnx -> ../init.d/btnx
/etc/rc3.d/S49btnx -> ../init.d/btnx
/etc/rc4.d/S49btnx -> ../init.d/btnx
/etc/rc5.d/S49btnx -> ../init.d/btnx

इसलिए ... यदि आपको स्रोत से निर्माण करने में कोई आपत्ति नहीं है ...

Btnx के लिए निर्भरताएँ प्राप्त करें:

sudo apt-get install libdaemon-dev git

यदि आपने कभी स्रोत से कुछ भी नहीं बनाया है, तो आपको बिल्ड-एसेंशियल की भी आवश्यकता हो सकती है:

sudo apt-get install build-essential

फिर btnx प्राप्त करें और संकलित करें:

git clone https://github.com/cdobrich/btnx
cd btnx
./configure
make
sudo make install
cd -

इसमें एक अलग GUI कॉन्फ़िगरेशन टूल है। इसके लिए निर्भरताएँ प्राप्त करें:

sudo apt-get install libgtk2.0-dev libglade2-dev

अब प्राप्त करें और gui config टूल को संकलित करें:

git clone https://github.com/cdobrich/btnx-config
./configure
make
sudo make install

अब उपकरण चलाएं:

sudo btnx-config

माउस बटन का पता लगाने पर क्लिक करें यदि आप उपकरण का उपयोग करते समय दिशाओं को पढ़ने में सक्षम होना चाहते हैं, तो पॉप अप करने वाली विंडो का आकार बदलें, संवाद पाठ बाद में बंद हो जाता है यदि आप नहीं करते हैं और यदि आप पता लगाने के दौरान आकार बदलने की कोशिश करते हैं तो यह रद्द हो जाएगा पता लगाना। बस खिड़की को थोड़ा बड़ा करें।

माउस का पता लगाने के लिए प्रेस पर क्लिक करें, फिर कोशिश करें कि पाठ को बदलने तक माउस को स्थानांतरित न करें ... लगभग 5-10 सेकंड लगते हैं। पाठ बदल जाएगा। जब यह होता है, तो इसे अनदेखा करें और आगे क्लिक करें।

"बटन का पता लगाने के लिए प्रेस" बटन पर क्लिक करें

यहां आप अपने माउस के एक बटन को कई बार क्लिक करेंगे (जब तक कि स्टेटस बार भर नहीं जाता)। फिर बटन का नाम सेट करें जिसे आप बाद में पहचानेंगे (उदा: LeftButton) Add बटन पर क्लिक करें।

प्रत्येक माउस बटन के लिए इसे दोहराएं (स्क्रॉल व्हील, स्क्रॉल क्लिक आदि को न भूलें)। आप शायद किसी भी बटन को छोड़ सकते हैं जिसे आप रीमैप नहीं करना चाहते हैं।

जब आप सभी बटन जोड़ लें, तो ओके पर क्लिक करें।

मुख्य GUI में, बटन पर क्लिक करें, बाएं फलक में तेह बटन चुनें जिसे आप रीमैप करना चाहते हैं। यह आपके द्वारा पिछले चरणों में दर्ज किए गए नामों का उपयोग करेगा। अपने उद्देश्यों के लिए, आप दाईं ओर कुंजी संयोजन के तहत बस एक कुंजी संशोधक का चयन करना चाहेंगे।

इस स्क्रीन पर डिलीट पर क्लिक न करें, यह बटन को हटा देगा। यदि आप ऐसा करते हैं तो आपको वापस जाकर बटन का पता लगाना होगा।

Conrigurations स्क्रीन पर वापस जाएं और btnx पुनरारंभ करें पर क्लिक करें।

नया बटन आज़माएं।

यदि आप एप्लिकेशन्स को अनइंस्टॉल करना चाहते हैं, तो btnx प्रोग्राम को बंद कर दें और फिर संबंधित git में चेक आउट डायरेक्टरीज़ पर जाएँ और उन्हें रीसेट करें:

sudo /etc/init.d/btnx stop
cd btnx
sudo make uninstall
cd -
cd btnx-config
sudo make uninstall
cd -

2
आपके द्वारा pastebin पर पोस्ट किए गए विस्तृत उत्तर के लिए बहुत बहुत धन्यवाद। लेकिन मुझे डर है कि मुझे अपने डिवाइस के बारे में विस्तार से समीक्षा किए बिना एक अविश्वसनीय पीपीए का उपयोग करने या अज्ञात स्रोत से एप्लिकेशन बनाने की अनुमति नहीं है। फिर भी मैं आपको उस प्रयास के लिए वोट दूंगा जो आपने इसमें डाला है। इसके अलावा मेरा सुझाव है कि आप अपने उत्तर को यहां अपडेट करें और जो आपने वहां लिखा है उसे कॉपी करें क्योंकि यह जानकारी दूसरों के लिए सहायक हो सकती है लेकिन अनदेखी की जा सकती है। अंत में मैंने पढ़ा है कि पैकेज उबंटू या डेबियन के तहत भी संकलित नहीं हो सकता है - क्या आपने वास्तव में कोशिश की है?
कॉन्सेप्टडेलिक

Btw: आप अपने 100% अतिरिक्त खातों को लिनक्स और यूनिक्स जैसे अन्य स्टैक एक्सचेंज खातों से जोड़कर आसानी से अतिरिक्त 100 प्रतिष्ठा प्राप्त कर सकते हैं।
कॉन्सेप्टडेलिक

हाँ, मैंने इसे Ubuntu 14.04 के तहत परीक्षण किया। मैंने सही माउस बटन को एक नियंत्रण कुंजी भेजा और पुष्टि की कि यह पोस्ट करने से पहले काम करता है। और फिर प्रतिष्ठा की आवश्यकता के कारण लगभग पद छोड़ दिया।
स्टीफन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.