การจำลองการคลิกเมาส์ด้วยคีย์บอร์ด


13

ฉันต้องการสร้างปุ่มบนคีย์บอร์ดเพื่อทำหน้าที่เหมือนคลิกเมาส์โดยควรใช้ xmodmap ฉันต้องทำอย่างไร?

ใช้งาน Ubuntu 10.10


setxkbmap -option keypad:pointerkeysจะทำในสิ่งที่คุณต้องการ จากนั้นเปลี่ยนเป็น -Numlock
peterh - Reinstate Monica

คำตอบ:


6

ขั้นตอนต่อไปนี้จะช่วยให้คุณเชื่อมโยงแป้นคีย์บอร์ดกับปุ่มเมาส์อีกครั้ง

  1. ระบุแป้นคีย์บอร์ดโดยใช้xevยูทิลิตี้

    การเรียกใช้ยูทิลิตี้ xev และการกดแป้นคีย์บอร์ดเพื่อทำการ rewired จะทำให้เกิดผลลัพธ์เช่นนี้

    KeyPress event, serial 37, synthetic NO, window 0x3e00001,
    root 0x82, subw 0x0, time 28977858, (-419,294), root:(175,613),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

    โปรดทราบรหัสที่จะถูก reamapped

  2. รัน xkbset utilty

    xkbset m

  3. ทำการแมปใหม่โดยใช้ยูทิลิตี้ xmodmap

    ในปุ่มเมนูด้านล่างกรณีจะถูกแมปไปยังปุ่มเมาส์ขวา

    xmodmap -e "keycode 135 = Pointer_Button3"


ดูสคริปต์ของฉันsuperuser.com/questions/313926/…ใช้ปุ่มสำหรับปุ่มเมาส์บน linux ทางเลือกเพื่อ AHK?
รุสโซ

4

ฉันคิดว่าคุณสามารถทำได้โดยใช้ xmodmap และ Pointer_Button1 keymap

ดูในไฟล์ /usr/include/X11/keysymdef.h สำหรับการสะกดและการใช้อักษรตัวพิมพ์ใหญ่ที่แน่นอน แต่ควรแมปแป้นคีย์บอร์ดเข้ากับปุ่มเมาส์ (1,2,3 ฯลฯ ) แม้แต่การดับเบิลคลิก ( ดูไฟล์ส่วนหัวใกล้กับบรรทัดที่ 460 หรือมากกว่านั้น)

keysym W = Pointer_Button1

อาจทำงานได้ทำให้ปุ่ม W ทำหน้าที่เป็นปุ่มซ้ายของเมาส์ ฉันขอแนะนำให้ใช้รหัสอื่นยกเว้นว่าคุณไม่ได้ใช้ W's ใด ๆ แต่มีประโยชน์สำหรับคุณ (ไม่ฉันจะไม่ลองด้วยตัวเองฉันต้องการ W ของฉัน!)

ดูหน้า man สำหรับ xmodmap และเนื้อหาของ /usr/include/X11/keysymdef.h เพื่อให้การสะกดถูกต้อง วางคำนำหน้า XK_ เพื่อใช้ชื่อ keysym สำหรับ xmodmap

ดูเหมือนว่ามัน (keysymdef.h) ในแพ็คเกจ x11-proto-core-dev สำหรับระบบ Debian ของฉัน ... คุณอาจต้องการค้นหาไฟล์และเนื้อหาในระบบออนไลน์สงสัยว่าคุณต้องการติดตั้งไฟล์ -dev ทั้งหมดที่เกี่ยวข้องกับ เพิ่งได้รับหนึ่งที่ GIYF

บางสิ่งบางอย่างที่จั๊กจี้อยู่ในหัวของฉันเกี่ยวกับวิธีการทำเช่นนี้อีก แต่ตอนนี้ไม่มีอะไรมาหาฉัน

OH! ขึ้นอยู่กับความต้องการของคุณคุณอาจเปลี่ยนไปใช้ Keyboard Mouse Emulation โดยเปลี่ยนแป้นตัวเลขเป็นเมาส์สองปุ่ม (ไม่มีล้อเลื่อน!)


1
สำหรับข้อมูลของผู้อ่านเกี่ยวกับ 'แป้นพิมพ์เมาส์ Emulation': en.linuxreviews.org/...การรวมกันที่สำคัญในการเปิดการทำงานนี้ได้รับการยกเลิกโดยปริยายOption XkbOptions "keypad:pointerkeys"ตั้งแต่ในขณะที่ที่ผ่านมาและตอนนี้ความต้องการ การกดปุ่มไม่ใช่วิธีเดียวที่จะเปิดใช้งาน: xkbset mทำตามcrunchbang.org/forums/viewtopic.php?id=27937หรือไม่และสามารถควบคุมการหมดเวลาที่น่ารังเกียจและปิดใช้งานจาก cmdline
imz - Ivan Zakharyaschev

3

โหมด "Keyboard Mouse Emulation" ในตัวสามารถทำได้และ / แต่มีคีย์ผสมที่กำหนดค่าไว้ล่วงหน้าสำหรับการจำลองการคลิกและกดของเมาส์ต่างๆ (สำหรับการลาก)

(FYI: การผสมคีย์เพื่อเปิดใช้นี้ได้ถูกลบออกจากคีย์แมปเริ่มต้นตั้งแต่เมื่อสักครู่ที่ผ่านมาและตอนนี้ต้องการOption XkbOptions "keypad:pointerkeys")

การกดปุ่มไม่ใช่วิธีเดียวที่จะเปิดโหมดนี้:

xkbset m

ทำสิ่งนี้ตามhttp://crunchbang.org/forums/viewtopic.php?id=27937และสามารถควบคุมการหมดเวลาที่น่ารังเกียจและปิดใช้งานได้จาก cmdline หากต้องการปิดการหมดเวลาที่น่ารังเกียจ:

xkbset exp =m

ดังนั้นxkbsetมีประโยชน์มากกว่า (มีเพียงปุ่มสำหรับเปิดโหมดนี้) เพราะxkbsetให้การควบคุมมากกว่าการหมดเวลาที่ต้องการและอื่น ๆ

มีการใช้งานตัวเลข ชุดค่าผสมพื้นฐานบางอย่าง (เพิ่มเติมได้ที่http://en.linuxreviews.org/HOWTO_use_the_numeric_keyboard_keys_as_mouse_in_XOrg :

  • /, *, -มีการเลือกทางซ้าย, ปุ่มกลางหรือขวา;
  • 5ใช้สำหรับคลิกด้วยปุ่มที่เลือก ;
  • 0และ.สำหรับการกดและปล่อยปุ่มที่เลือก (สำหรับการลาก ฯลฯ )

หมายเหตุเกี่ยวกับปัญหาในการเปิดใช้งาน "Keyboard Mouse Emulation" เสมอ

  1. ฉันไม่สามารถเปิดใช้งาน "Keyboard Mouse Emulation" ได้เสมอ ดังนั้นฉันจึงใช้รหัสพิเศษ (เหมือนในkeypad:pointerkeys) เพื่อทำสิ่งนี้

  2. ฉันพบว่า Xfce กำลังสับสนกับการตั้งค่าเหล่านี้เช่นกันเมื่อเริ่มต้นดังนั้นหากxkbset mเรียกใช้ก่อน Xfce การตั้งค่าจะไม่ทำงาน ดังนั้นผมต้องเปลี่ยนการตั้งค่าในการกำหนดค่า Xfce เพื่อให้ตรงกับความปรารถนาโดยรวมของฉันคือ: การตั้งค่า Xfce: การเข้าถึง: เมาส์: เปิดใช้งานการจำลอง (แหล่งที่มาสำหรับฉันเรียนรู้เกี่ยวกับการดำรงอยู่ของตัวเลือก Xfce นั้นคือ: https://bugzilla.xfce.org/show_bug.cgi?id=3860 ) สิ่งนี้ดูเหมือนจะช่วยได้ (ฉันยังปิดการใช้งานทัชแพดของฉันด้วยxinput float ...สิ่งนี้ยุ่งเหยิงโดยการสลับระหว่างคอนโซลลินุกซ์ แต่สามารถแก้ไขได้อีกครั้งโดยปิดใช้งานอุปกรณ์นี้ในการตั้งค่า Xfce อย่างน้อย)

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