XKB - ทำการแมปปุ่มลูกศรและรักษาการทำงานของกะเพื่อเลือกข้อความ


5

ฉันรู้ว่าการแมปปุ่มลูกศรเป็นปัญหาเก่า แต่ฉันไม่สามารถหาวิธีแก้ปัญหาที่ดีที่ให้ฉันเลือกข้อความด้วยแป้น SHIFT + ที่แมปใหม่เหมือนกับที่ฉันทำกับปุ่มลูกศรวานิลลา

ตัวอย่างเช่นถ้าฉันทำการตั้งค่า Caps Lock เป็น ISO_Level3_Shift อีกครั้งและตั้งค่า xkb_symbols ให้อ่าน

key <AC08>  { [         k,          K , Down, Down] };

หรือ

key <AC08>  { type="THREE_LEVEL",
              [         k,          K , Down ]  };

การกด Shift + CapsLock + K จะทำงานเหมือนกันกับ CapsLock + K

ฉันค่อนข้างประสบความสำเร็จมากกว่าการใช้มาโครระดับสูงกว่าและสร้างเหตุการณ์แป้นพิมพ์ (เช่นสร้างทั้งการเปลี่ยนแปลงและการกดแป้นลูกศร) ทุกครั้งที่วิธีการนั้นมีปัญหาที่แตกต่างกันทั้งชุด - บ่อยครั้งที่การตอบสนอง UI ของการกดปุ่มจำลองนั้นแตกต่างจากการกดปุ่ม "ของจริง" และมีปัญหาด้านประสิทธิภาพด้วย

tl; ดร; คุณจะเปลี่ยนการเลือกโดยใช้ปุ่มลูกศรที่แมปใหม่ภายใต้ X

คำตอบ:


5

คุณสามารถใช้ได้ preserve สำหรับสิ่งนั้น: เพิ่มคำจำกัดความของคุณให้กับพิมพ์ (เช่น THREE_LEVEL ) เส้น

preserve[LevelThree+Shift] = Shift;

สิ่งนี้จะบอกให้ xkb รักษาตัวโมดิฟายเออร์ shift ไว้เมื่อหาระดับที่เหมาะสมจากชุดค่าโมดิฟายเออร์ของคุณในกรณีที่ LevelThree + Shift. ตัวปรับเปลี่ยนกะส่งผ่านเพื่อใช้งานโดยชุดเครื่องมือหรือแอปพลิเคชั่น ใช้รักษาด้วยประเภท )

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

key <AC08> { type="THREE_LEVEL", [ k, K, kappa ]  };

และคุณต้องการกด Ctrl + Shift + LevelThree + <AC08> แอปพลิเคชันจะอ่านมันเป็นคำสั่งผสมที่สำคัญ Ctrl + Shift + kappa (แทนปกติ Ctrl + kappa ) เนื่องจากตัวปรับเปลี่ยนกะถูกเก็บรักษาไว้และส่งผ่านไปยังแอปพลิเคชัน


นี่คือสิ่งที่ฉันกำลังมองหา แต่ฉันหายไปหนึ่งชิ้นสุดท้าย: มันเป็นไปได้ที่จะกำหนดค่า xkb เพื่อให้การกดแป้นพิมพ์หนึ่งครั้งสลับปุ่ม Shift (หรืออื่น ๆ )? สิ่งที่ฉันต้องการจะทำคือมีตัวอย่างเช่น CapsLock + s สลับปุ่ม Shift เพื่อให้ฉันสามารถใช้ Capkslock + jkl เพื่อเลือกข้อความ
dgirardi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.