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


9

ฉันมีอากาศจริงๆใช้เพื่อการทำงาน "พร้อมกันโหมด Vi" ของKeyRemap4MacBookซึ่งช่วยให้คุณกดsและdปุ่มพร้อมกันและจากนั้นใช้h, j, kและlปุ่มเป็นปุ่มลูกศร เมื่อใดsและdถูกรวมเข้าด้วยกันจะไม่มีเหตุการณ์sหรือdถูกไล่ออก แต่เมื่อฉันพิมพ์ตามปกติฉันไม่สังเกตเห็นปัญหาความล่าช้าในการกดปุ่มsหรือdทีละตัว

ฉันจะสร้างฟังก์ชั่นนี้ซ้ำใน Linux (โดยเฉพาะ RHEL 6.4) ได้อย่างไร

ความคิดสองสามข้อที่ฉันมี:

  1. ถ้าs+ dอาจจะ remapped เพื่อปรับปรุงแล้วกุญแจh, j, k, l+ ปรับปรุงอาจจะแมปตาม (แป้นพิมพ์ผมใช้ตอนนี้ไม่ได้มีปุ่มปรับแต่งใด ๆ อะไหล่สามารถใช้แทนs+ dบวกจุดโหมด Vi พร้อมกันคือการเก็บนิ้วมือทั้งหมดบนแถวบ้าน. CapsLockเป็น remapped แล้วControlและEscape)

  2. เป็นการดีที่ฉันจะหาวิธีการทำเช่นนี้โดยใช้การตั้งค่าระบบหรือบางสิ่งบางอย่างเช่นแป้นพิมพ์ XKB ที่ฉันใช้อยู่แล้ว หากไม่สามารถทำได้อาจเป็นสิ่งที่คล้ายกับโปรแกรมxcape (ซึ่งฉันใช้อยู่และอนุญาตให้แมปคีย์กับสัญลักษณ์ปุ่มกดและตัวดัดแปลงอื่น) ได้ xcapeทริกเกอร์ออกจากการเปิดตัวของกุญแจดังนั้นมันจะต้องมีการปรับแต่งเพื่อป้องกันไม่ให้sและdกุญแจช้าเกินไป


ใน RHEL 6.4? คุณใช้เสียงเรียกเข้าจาก X หรือผ่านเทอร์มินัล
Otheus

โอ้แล้วคุณทำแผนที่ CapsLock เพื่อควบคุมและหลบหนีได้อย่างไร?
Otheus

แผนที่ CapsLock เพื่อควบคุมจากนั้นใช้ xcape (เชื่อมโยงด้านบน) เพื่อทำแผนที่การกดปุ่มควบคุมระยะสั้นเพื่อหนี ในคำถามฉันหมายถึงโหมดเหมือน Vi ของ KeyRemap4MacBook ไม่ให้เป็นกลุ่ม จนถึงตัวเลือกที่มีแนวโน้มมากที่สุดที่ฉันพบสำหรับสิ่งที่ฉันกำลังมองหาคือการใช้โมดูล Python Xlib ในลักษณะที่คล้ายกับที่ใช้โดย Plover จนถึงตอนนี้ฉันยังไม่มีเวลาทำงานนี้
ws_e_c421

คำตอบ:


2

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

เหตุผลของเรื่องนี้ก็คือความคิดที่ออกแบบขึ้นอยู่กับ (และปรับให้เหมาะสม) ไม่รวมถึง chording ของปุ่มปกติหรือตัวอักษรเปล่งจากตัวดัดแปลง


ฉันยังคงมองหาสิ่งนี้อยู่ (ต้องการเวลามากกว่านี้) ฉันพบโครงการ Plover ซึ่งดูเหมือนจะให้แม่แบบสำหรับโซลูชัน X-based แต่ฉันต้องการเปลี่ยนเป็น Wayland ดังนั้นฉันจึงหยุดดู เมื่อเร็ว ๆ นี้ฉันค้นพบcaps2escซึ่งใช้ libevdev และ libudev เพื่อคว้าและทำการแมปอุปกรณ์ใหม่แบบไดนามิก ฉันคิดว่าวิธีการเช่นนี้สามารถใช้เพื่อการไล่ล่าเพิ่มเติมจากการแมปใหม่ แต่ต้องได้รับการตรวจสอบเพิ่มเติม (ฉันต้องการโซลูชัน libinput ด้วย)
ws_e_c421

ความคิดเห็น libinput ของฉันถูกเข้าใจผิด ฉันคิดว่า caps2esc ทำงานกับไดรเวอร์ xf86-input-evdev ซึ่งเป็นทางเลือกแทน libinput แต่ใช้งานได้จริงในระดับ libevdev ซึ่งเป็นไลบรารีระดับล่างที่ใช้โดยทั้งสองโครงการ ใช้เครื่องมือสำหรับ caps2esc ได้รับ refactored เข้าไปในโครงการเครื่องมือสกัดกั้น ฉันเชื่อว่าปลั๊กอินที่เขียนขึ้นอย่างดีสำหรับเครื่องมือการสกัดกั้นอาจให้คุณสมบัติที่ฉันอธิบายไว้ มันอยู่ในรายการของฉันที่จะตรวจสอบ
ws_e_c421

2

ดังนั้นหลังจากสี่ปีในที่สุดฉันก็มีร่างคร่าวๆของคำตอบสำหรับคำถามนี้ คำตอบคือใช้เครื่องมือการสกัดกั้นซึ่งใช้ libevdev เพื่อจับคีย์บอร์ดและทำการประมวลผลก่อนที่จะทำการเปล่งมันใหม่ เกี่ยวกับการทำแผนที่ที่สำคัญพร้อมกันผมได้ทำปลั๊กอินคร่าวๆเพื่อเป็นเครื่องมือสกัดกั้นเรียกว่าChorded Keymapที่ช่วยให้h, j, k, lทำหน้าที่เหมือนปุ่มลูกศรเมื่อsและdถูกกดพร้อมกัน


0

คุณจะต้องได้รับอะแดปเตอร์ที่สามารถตั้งโปรแกรมได้ซึ่งอยู่ระหว่างคีย์บอร์ดและคอมพิวเตอร์ของคุณ พวกมันออกไป แต่หายาก

หรือไปตาดต่อไปเช่น: https://www.youtube.com/watch?v=ixbVd8rn6-8

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