ทำการแมปชุดค่าผสมเข้ากับชุดค่าผสมอื่นเช่น Super + Ctrl + Shift + J -> Ctrl + Shift + Left


11

ฉันต้องการใช้เลเยอร์คีย์เพิ่มเติมเพื่อให้ฉันสามารถเข้าถึงคีย์ที่ไม่ใช่ตัวอักษรและตัวเลขโดยไม่ต้องเลื่อนข้อมือ

ฉันใช้ Autokey เพื่อจุดประสงค์นี้ แต่ประสบการณ์ไม่น่าพึงพอใจ: มันมีความล่าช้าเป็นครั้งคราวและให้การกดแป้นพิมพ์ครั้งแรกลื่นไถลในแอพบางตัว

ดังนั้นฉันต้องการโซลูชันระดับต่ำ


คุณอาจต้องสร้างไดรเวอร์อินพุตเสมือนแบบกำหนดเองเพื่อทำสิ่งนี้ซึ่งฉันคิดว่าจะเขียนใน C
Amias

@Amias คุณช่วยอธิบายเพิ่มเติมได้ไหม?
lolmaus - Andrey Mikhaylov

คุณสามารถมี xinput ไดรเวอร์ที่ใช้ไดรเวอร์แป้นพิมพ์ปกติ แต่ตีความการกดแป้นก่อนที่จะส่งไปยัง xorg สิ่งนี้จะช่วยให้คุณควบคุมได้อย่างสมบูรณ์ แต่จะทำงานได้สองสามวันสำหรับโปรแกรมเมอร์ C
Amias

คำตอบ:


10

ให้การรวมกันของxbindkeysและxvkbdลอง xbindkeys รับฟังคีย์และส่งการแปลไปยัง xvkbd

sudo apt-get install xbindkeys xvkbd
xbindkeys --defaults > /home/your-user-name/.xbindkeysrc

เปิด. xbindkeysrc ในโปรแกรมแก้ไขรายการโปรดของคุณ ฉันแสดงความคิดเห็นทุกอย่างออกไป แต่ก็เป็นการดีถ้าจะอ้างถึง

เพื่อลองดูฉันลองทำแผนที่ Ctrl +; ถึง Ctrl + V

"xvkbd -xsendevent -text "\Cv""
   control + semicolon

ฉันคาดหวังว่าคุณจะได้รับสิ่งนี้

"xvkbd -xsendevent -text "\C\S\[Left]""
  Super+Control+Shift+J

บันทึกไฟล์จากนั้นเรียกใช้ xbindkeys

เพื่อโหลดการเปลี่ยนแปลงการตั้งค่าใหม่อีกครั้งฉันได้ฆ่ากระบวนการ xbindkeys จากนั้นรีสตาร์ท

xbindkeys ไวยากรณ์

ฉันใช้ชุดคีย์โดยใช้ GUI สำหรับ xbindkeys

sudo apt-get install xbindkeys-config
xbindkeys-config

เมื่อคุณเรียกใช้แล้วกดปุ่มรับสำหรับชุดค่าผสมเพื่อใส่ลงในบรรทัดที่สองของไฟล์. xbindkeysrc ของคุณ

ไวยากรณ์ xvkbd

จากคู่มือ:

\r - Return
\t - Tab
\b - Backspace
\e - Escape
\d - Delete
\S - Shift (modify the next character; please note that modify with ``\S'' will be ignored in many cases. For example, ``a\Cb\ScD\CE'' will be interpreted as a, Control-b, c, Shift-D, and Control-Shift-E.)
\C - Control (modify the next character)
\A - Alt (modify the next character)
\M - Meta (modify the next character)
\[keysym] - the keysym keysym (e.g., \[Left]), which will be processed in the similar matter with other general characters
\{keysym} - the keysym keysym (e.g., \{Left}), which will be processed in more primitive matter and can also be used for modofier keys such as Control_L, Meta_L, etc.; also, \{+keysym} and \{+keysym} will simulate press and release of the key, respectively [Version 3.3]
\Ddigit - delay digit * 100 ms
\xvalue - move mouse pointer (use "+" or "-" for relative motion)
\yvalue - move mouse pointer (use "+" or "-" for relative motion)
\mdigit - simulate click of the specified mouse button

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


เฮ้ @ MarkHewitt! ขอบคุณมากสำหรับคำตอบอย่างละเอียด! น่าเสียดายที่นี่ใช้งานไม่ได้กับฉันดีมาก: ปุ่มกดแบบดั้งเดิมยังคงทำงานต่อไป
lolmaus - Andrey Mikhaylov

0

ฉันคิดว่าคุณสามารถหาวิธีแก้ปัญหาได้ที่นี่ (เพราะ Xorg เป็นเลเยอร์ระดับต่ำ ... ): https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg

แก้ไข: สำหรับสิ่งที่ฉันเข้าใจว่าคุณต้องเพิ่มตัวเลือกlv3:win_switchในไฟล์. conf ของคุณ


1
ฉันต้องการตัวอย่างที่เฉพาะเจาะจง
lolmaus - Andrey Mikhaylov

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