วิธีแมปโมดิฟายเออร์ (เช่น CTRL) ไปที่ปุ่มนิ้วหัวแม่มือเมาส์โดยใช้ xbindkeys


13

มีการถามคำถามนี้แล้วแต่ไม่ตอบถูก หลังจากกวาดล้างด้วย @Seth ฉันกำลังถามอีกครั้ง สิ่งนี้จะช่วยให้ฉันตอบและอาจแก้ไขคำถามได้ง่ายขึ้นมาก สามารถพบคำถามเดิมได้ที่นี่:

แผนที่ Ctrl และ Alt ไปที่ปุ่มหัวแม่มือของเมาส์


ปัญหา:

แม้ว่าจะง่ายมากในการแมปการกดแป้นใด ๆ กับปุ่มเมาส์โดยใช้xbindkeysร่วมกับxdotoolหรือxteดูเหมือนว่าจะมีปัญหามากขึ้นในการแมปรหัสตัวปรับเปลี่ยน (เช่นALT , CTRL , SHIFTและอื่น ๆ ) กับมัน

การแก้ปัญหาครั้งสุดท้ายควรอนุญาตให้คลิก ia CTRL + (เช่นสำหรับการเลือกหลายรายการของรายการ) ด้วยการใช้เมาส์

สองแนวทางที่เป็นไปได้ในการแก้ไขปัญหานี้สามารถดูได้ที่ Stack Exchange รวมถึงฟอรัม Linux ที่เกี่ยวข้องอื่น ๆ แต่งานเหล่านั้นไม่เป็นไปตามที่คาดหวังเพราะนำไปสู่ปัญหาอื่น ๆ และผลข้างเคียง

หมายเหตุ:

ตัวอย่างด้านล่างบางตัวอย่างเกี่ยวข้องกับGuile with Schemeและพึ่งพา.xbindkeysrc.scmไฟล์ในขณะที่คนอื่นใช้.xbindkeysrcไฟล์ที่มีไวยากรณ์ที่เกี่ยวข้อง ฉันรู้ว่าพวกเขาจะไม่ทำงานร่วมกัน

ยิ่งไปกว่านั้นตัวอย่างด้านล่างพึ่งพาxdotoolเท่านั้น แต่ฉันเปิดกว้างถึงวิธีการที่เกี่ยวข้องกับแอปพลิเคชันอื่นเช่นเช่นxteกัน - แม้ว่ามันจะดูเหมือนจะนำไปสู่ผลลัพธ์เดียวกันและดังนั้นฉันจึงใช้xdotoolการกระทำที่นี่เท่านั้น

วิธี A:

การอัพเดต.xbindkeysrcไฟล์ด้วย:

"xdotool keydown ctrl"
  b:8

"xdotool keyup ctrl"
  release + b:8

นั่นคือสิ่งที่ฉันพยายามในตอนแรก แต่มันมีผลข้างเคียงที่โมดิฟายเออร์ถูกระงับและไม่สามารถปล่อยออกมาได้

วิธีการ B:

การอัพเดต.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

พยายามโดย OP ของคำถามที่เชื่อมโยงที่นี่ที่ 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

วิธีการ D:

การอัพเดต.xbindkeysrcไฟล์ด้วย:

"xdotool keydown ctrl"
  b:8

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

"xdotool click 1"
  b:1

ง่ายเกินไป ... แต่นำไปสู่การวนซ้ำไม่สิ้นสุด


UPDATE:

ในระหว่างนี้ฉันได้ซื้อ Logitech G502 และสังเกตว่าเมื่อกำหนดค่าผ่านไดรเวอร์ใน Windows ไม่เพียง แต่โปรไฟล์จะถูกเก็บไว้ในหน่วยความจำอุปกรณ์ แต่การกดปุ่มจริงทำได้โดยใช้เมาส์ ที่จริงแล้วแก้ปัญหาของฉันบน Linux!

หนูตัวเดียวที่ฉันจำได้ว่าสามารถทำได้คือ Razer Copperhead ย้อนกลับไปในอดีต แต่ฉันคิดว่าวันนี้มีหนูตัวอื่น ๆ ที่สามารถทำได้เหมือนกัน


1
นี่เป็นวิธีแก้ปัญหาโดยใช้ Easystroke: askubuntu.com/a/1010647/27202
atti

คำตอบ:


8

ฉันใช้เวลาส่วนใหญ่พยายามที่จะทำงานที่มีผลผูกพัน ในที่สุดฉันก็พบวิธีแก้ปัญหาซึ่งซับซ้อน แต่ทำงานได้ดีและไม่ได้หมายความถึงซอฟต์แวร์ของบุคคลที่สาม ฉันแบ่งปันที่นี่หวังว่ามันจะช่วยให้ผู้คน นอกจากนี้ฉันรู้ว่านี่ไม่สมบูรณ์แบบในแง่ของความปลอดภัยดังนั้นข้อเสนอแนะที่สร้างสรรค์ใด ๆ ก็ยินดีต้อนรับมากกว่า

มีวิธีแก้ปัญหาที่ดีจริงๆเช่นเดียวกับที่เสนอไว้ที่นี่แต่มักจะประสบกับข้อ จำกัด ของ xbindkeys ที่จับเมาส์ทั้งหมดทำให้ตัวแก้ไข + การแมปการคลิกเมาส์ไม่แน่ใจ บวกกับวิธีการหลอกลวงที่ใช้ลิงก์ด้านบนใช้ ctrl + plus / ctrl + ลบซึ่ง Gimp ไม่รู้จักเช่น

ฉันคิดว่าสิ่งที่เราต้องการคือปุ่มเมาส์ที่ทำหน้าที่เป็นคีย์บอร์ดดังนั้นฉันจึงใช้ uinput ซึ่งสามารถเข้าถึงได้ผ่าน pythonเขียนสคริปต์ที่มอนิเตอร์ / dev / my-mouse สำหรับการคลิกปุ่มหัวแม่มือและส่งคีย์ ctrl ไปที่แป้นพิมพ์เสมือนจริง นี่คือขั้นตอนโดยละเอียด:

1. สร้างกฎ udev

เราต้องการให้อุปกรณ์สามารถเข้าถึงได้ (สิทธิ์และตำแหน่ง)

สำหรับเมาส์:

/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"

Udev จะค้นหาอุปกรณ์ที่เคอร์เนลรู้จักชื่อเช่น event5 และฉันเลือกเมาส์พร้อมชื่อ คำสั่ง 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"

ไม่จำเป็นต้องใช้ symlink uinput จะอยู่ใน$/dev/uinputหรือ$/dev/input/uinputขึ้นอยู่กับระบบที่คุณใช้อยู่ เพียงให้เขากลุ่มและสิทธิในการอ่านและเขียนแน่นอน

คุณจำเป็นต้องถอดปลั๊กออก - เสียบเม้าส์แล้วลิงค์ใหม่ควรจะปรากฏขึ้นใน / dev คุณสามารถบังคับ 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. สคริปต์ Python

คุณจำเป็นต้องติดตั้งห้องสมุดหลาม uinput (ชัด) และห้องสมุดหลาม evdev ใช้ pip หรือแพ็คเกจการกระจายของคุณ

สคริปต์ค่อนข้างตรงไปตรงมาคุณเพียงแค่ต้องระบุรหัสเหตุการณ์ของคุณ

#!/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. สนุกได้เลย!

สิ่งที่คุณต้องการในตอนนี้คือทำให้ไฟล์ python ของคุณทำงานได้และขอให้ผู้จัดการเดสก์ท็อปของคุณโหลดไฟล์เมื่อเริ่มต้น บางทีไวน์สักแก้วเพื่อเฉลิมฉลองการทำงานที่ดี!

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

เพื่อให้ combinaison ล่าสุดนี้ทำงานคุณต้องปิดการใช้งานปุ่มที่คุณกำหนดค่าไว้สำหรับสคริปต์ pythonมิฉะนั้นจะยังคงถูก 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

7. สรุป

อย่างที่ฉันบอกในตอนแรกฉันไม่มีความสุขอย่างสมบูรณ์กับความจริงที่ว่าฉันต้องให้ตัวเองเพื่อเขียน / dev / uinput ถึงแม้ว่ามันจะคิดว่ากลุ่ม "mxgrabber" ฉันแน่ใจว่ามีวิธีที่ปลอดภัยกว่าในการทำเช่นนั้น แต่ฉันไม่รู้ว่าจะทำอย่างไร

ในด้านสว่างมันใช้งานได้ดีจริงๆ การรวมกันของแป้นพิมพ์หรือปุ่มเมาส์วิธีการทำงานกับปุ่ม Ctrl ของแป้นพิมพ์ในขณะนี้ทำงานร่วมกับหนึ่งในเมาส์ !!


ขอบคุณมากสำหรับความพยายามและแบ่งปันกับเรา! +1 ... แม้ว่าฉันยังไม่ได้ทดสอบ BTW ฉันได้เกือบจะถึงนี้ - จะดีถ้าผลงานที่เป็นไปตามคาด :)
conceptdeluxe

ยินดีต้อนรับคุณ! สำหรับฉันมันทำงานได้อย่างไร้ที่ติ หากคุณมีปัญหาแจ้งให้เราทราบ ฉันพยายามทำให้คำตอบของฉันเสร็จสมบูรณ์ แต่เมื่อฉันใช้เวลาเกือบสองวันในการพยายามทำให้มันสำเร็จฉันอาจลืมบางสิ่ง ยินดีที่จะช่วย / แก้ไขโพสต์ของฉัน
Aurélien Cibrario

ฉันเพิ่งรู้ว่า ctrl + click1 เป็นตัวเลือกที่ดีมากในการปิดแท็บเพราะมันเปิดลิงค์ในแท็บใหม่ ฉันแก้ไขคำตอบของฉันลบส่วนสุดท้ายของสคริปต์ไพ ธ อนและปรับแต่งด้วย xbindkeys วิธีแก้ปัญหาที่สะอาดกว่า
Aurélien Cibrario

แค่อยากให้คุณรู้ว่าฉันไม่มีเวลาที่จะทำการทดสอบ - แต่ฉันจะทำให้มันเป็นคำตอบที่ได้รับการยอมรับหากทำงานได้ตามที่คาดไว้ - ขอโทษที่รอ - ฉันยุ่งกับตู้เอทีเอ็ม
conceptdeluxe

ฉันสงสัยว่าเราสามารถใช้สคริปต์ด้านบนเพื่อ debounce สวิตช์เมาส์ผิดพลาดได้หรือไม่ ฉันมีเม้าส์ที่ชำรุด ฉันใช้สคริปต์ autohotkey เพื่อแก้ไขใน Windows แต่ไม่มีเครื่องมือในการแก้ไขใน Linux นี่คือสคริปต์ Autohhotkey สำหรับการแก้ไขปุ่มซ้ายautohotkey.com/board/topic/63555-debounce-mouse-keys ฉันหวังว่าจะมีคนพอร์ตไปยัง Linux โดยใช้ python3 - evdev
kenn

4

ผมพบว่าวิธีการแก้ปัญหาที่มีPyUserInput สิ่งนี้กลายเป็นเรื่องง่ายและไม่ต้องการสิทธิ์การดูแลระบบ เมื่อติดตั้ง python 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เป็นต้น

~ / path / to / script.py &

หมายเหตุ สิ่งนี้ไม่ได้เป็นการป้องกันไม่ให้เหตุการณ์ปุ่มเมาส์ยิง ในกรณีของฉันฉันเคยxinput set-button-mapเปลี่ยนการทำแผนที่ปุ่ม xinput และกำหนดจำนวนของปุ่มที่ฉันสนใจในสิ่งที่ไม่ได้ใช้งาน

ตัวอย่างเช่นหากคุณต้องการใช้ปุ่ม 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 ใน Firefox มันก็จะพยายามกลับไปที่หน้าก่อนหน้าซึ่งไม่พึงประสงค์
user23013

1
จริง xinputที่จะแก้ไขปัญหานี้ผมใช้เปลี่ยนรหัสของปุ่มผมสนใจให้กับปุ่มที่ใช้ใน ดูคำถามที่แก้ไขแล้ว
Maxim

2

ฉันมีทางออกบางส่วน ฉันไม่ได้รู้วิธียกเลิกการแมปปุ่มที่มีอยู่ดังนั้นคุณจะจบลงด้วยการคลิกปุ่มและตัวดัดแปลงที่คุณต้องการ ดังนั้นหากปุ่มเมาส์นั้นมีจุดประสงค์บางอย่างมันจะยังคงทำงานต่อไป ตัวอย่างเช่นการตั้งค่าปุ่มเมาส์ขวาให้กับคีย์ควบคุมจะส่งผลให้มีการควบคุม + คลิกที่ถูกส่ง

อย่างไรก็ตามฉันพบโพสต์ฟอรัมที่คล้ายกับคำถามของคุณซึ่งคำตอบคือติดตั้ง btnx และกำหนดค่าตัวดัดแปลงของคุณผ่านทางนั้น ดูเหมือนว่า btnx จะไม่สามารถใช้ได้ผ่าน repo อีกต่อไป มี 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

symlink ต่อไปนี้:

/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:

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

ตอนนี้เรียกใช้เครื่องมือ:

sudo btnx-config

คลิกที่ปุ่ม Detect Mouse หากคุณต้องการอ่านเส้นทางในขณะที่ใช้เครื่องมือปรับขนาดหน้าต่างที่ปรากฏขึ้นข้อความโต้ตอบจะถูกตัดในภายหลังหากคุณไม่ทำและหากคุณพยายามปรับขนาดระหว่างการตรวจจับจะเป็นการยกเลิก การตรวจสอบ เพียงทำให้หน้าต่างมีขนาดใหญ่ขึ้นเล็กน้อย

คลิกที่กดเพื่อเริ่มการตรวจจับเมาส์จากนั้นพยายามไม่เลื่อนเมาส์จนกว่าข้อความจะเปลี่ยน ... ใช้เวลาประมาณ 5-10 วินาที ข้อความจะเปลี่ยน เมื่อเป็นเช่นนั้นให้ข้ามสิ่งที่พูดและคลิกส่งต่อ

คลิกที่ปุ่ม "กดเพื่อเริ่มการตรวจสอบปุ่ม"

ที่นี่คุณจะคลิกปุ่มเดียวของเมาส์หลายครั้ง (จนกว่าแถบสถานะจะเต็ม) จากนั้นตั้งชื่อของปุ่มเป็นสิ่งที่คุณจะจดจำในภายหลัง (เช่นปุ่มซ้าย) คลิกปุ่มเพิ่ม

ทำซ้ำขั้นตอนนี้สำหรับปุ่มเมาส์แต่ละปุ่ม (อย่าลืมล้อเลื่อนสโครลคลิก ฯลฯ ) คุณสามารถข้ามปุ่มใด ๆ ที่คุณไม่ต้องการแมปใหม่

เมื่อคุณเพิ่มปุ่มทั้งหมดแล้วให้คลิกที่ตกลง

ใน GUI หลักคลิกที่ปุ่มในบานหน้าต่างด้านซ้ายเลือกปุ่ม teh ที่คุณต้องการทำการแมปใหม่ มันจะใช้ชื่อที่คุณป้อนในขั้นตอนก่อนหน้า เพื่อจุดประสงค์ของคุณคุณจะต้องเลือกเพียงตัวปรับเปลี่ยนคีย์ภายใต้คีย์ผสมทางด้านขวา

อย่าคลิกลบบนหน้าจอนี้มันจะลบปุ่ม คุณจะต้องย้อนกลับไปและตรวจสอบปุ่มอีกครั้งถ้าคุณทำ

กลับไปที่หน้าจอ Conrigurations และคลิกรีสตาร์ท btnx

ลองใช้ปุ่มใหม่

หากคุณต้องการถอนการติดตั้งแอพพลิเคชั่นให้หยุดโปรแกรม btnx จากนั้นไปที่ไดเรกทอรีที่เกี่ยวข้องกับการตรวจสอบและทำการถอนการติดตั้ง:

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

2
ขอบคุณมากสำหรับคำตอบโดยละเอียดที่คุณโพสต์ที่ pastebin แต่ฉันกลัวว่าฉันไม่ได้รับอนุญาตให้ใช้ ppa ที่ไม่น่าเชื่อถือหรือสร้างแอปพลิเคชันจากแหล่งที่ไม่รู้จักโดยไม่ต้องตรวจสอบโดยละเอียดในอุปกรณ์ของฉัน อย่างไรก็ตามฉันจะให้คะแนนคุณสำหรับความพยายามของคุณ นอกจากนั้นฉันขอแนะนำให้คุณอัปเดตคำตอบของคุณที่นี่และคัดลอกสิ่งที่คุณเขียนไว้ที่นั่นเนื่องจากข้อมูลนี้อาจเป็นประโยชน์สำหรับผู้อื่น แต่อาจถูกมองข้าม ในที่สุดฉันได้อ่านแล้วว่าแพคเกจอาจไม่คอมไพล์ภายใต้ Ubuntu หรือ Debian - คุณลองใช้มันแล้วจริงหรือ?
conceptdeluxe

Btw: คุณสามารถได้รับชื่อเสียงเพิ่มอีก 100 ชื่อเสียงได้อย่างง่ายดายโดยการเชื่อมโยงบัญชี askubuntu ของคุณกับบัญชี Stack Exchange อื่น ๆ เช่น Linux & Unix
conceptdeluxe

ใช่ฉันทดสอบภายใต้ Ubuntu 14.04 ฉันทำปุ่มเมาส์ขวาส่งคีย์ควบคุมและยืนยันว่ามันทำงานก่อนโพสต์ และเกือบจะยกเลิกการโพสต์เพราะความต้องการชื่อเสียง
Stephen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.