จะเปลี่ยนคีย์ CapsLock เพื่อสร้าง“ a” ได้อย่างไร?


22

ขณะพิมพ์ฉันมักกดCapsLockปุ่มแทนaปุ่ม (แป้นพิมพ์ QWERTZU) มันค่อนข้างน่ารำคาญเพราะเมื่อฉันรู้ว่าฉันกดปุ่มผิดฉันจะต้องลบตัวละคร / บรรทัดของข้อความหลาย ๆ คำและเขียนมันในรูปแบบที่ถูกต้อง

ฉันกำลังค้นหาวิธีที่จะป้องกันสิ่งนี้

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

บวก -> ฉันไม่ต้องเขียนทั้งบรรทัดใหม่ แต่มีเพียงตัวเดียว

เชิงลบ -> ไม่ชัดเจนว่าฉันกดคีย์ผิดเนื่องจากอักขระที่หายไปไม่สามารถมองเห็นเป็นบรรทัดตัวพิมพ์ใหญ่ได้

ฉันจึงต้องการแผนที่ที่เป็นCapsLockไปaได้ ดังนั้นเมื่อกดปุ่มCapsLockaตัวละครที่จะเขียน

แง่บวก -> ถ้าฉันกดCapsLockแทนaฉันจะได้ผลลัพธ์ฉันอยากจะพิมพ์จริง ๆ

ติดลบ -> ถ้าฉันกดCapsLockในบริบทอื่นฉันจะได้aตัวละคร เนื่องจากฉันไม่ได้ตั้งใจใช้CapsLockรหัสนี้จะไม่เป็นปัญหาจริงๆ (ฉันคิดหรือทำอย่างนั้น?)

คำถามของฉัน:

  1. ดังนั้นฉันจะเปลี่ยนเป็นaอย่างไร
  2. และมีกรณีใดบ้างที่สิ่งนี้อาจเป็นอันตราย / ก่อให้เกิดพฤติกรรมที่ไม่พึงประสงค์?

3
คุณได้รับ CapsLock และ a เพื่อดูแฟนซีและปุ่มทั้งหมดอย่างไร
djeikyb

fluteflute แก้ไขคำถามของฉันเพื่อทำให้ดูเหมือนว่า แต่ฉันก็จะสนใจเช่นกัน
หลุม

7
คุณเขียน<kbd>a</kbd>(ใช้ได้กับคำถามและคำตอบเท่านั้นไม่ใช่ความคิดเห็น)
8128

คำตอบ:


21

โดยเฉพาะผมไม่ทราบวิธีการเปลี่ยนCapsLockไปaเพราะผมจำไม่ได้ keycode ฉันจะหามันทีหลัง แต่โดยทั่วไปคุณสามารถใช้xmodmap(และ.Xmodmap) เพื่อเปลี่ยนการจับคู่คีย์ได้ ครั้งแรกที่ GNOME ตรวจพบ.Xmodmapไฟล์ของคุณมันจะถามว่าคุณต้องการโหลดไฟล์หรือไม่จากนั้นคุณก็ตั้งค่าไว้

ฉันยังคิดว่าแคปล็อคโง่ อย่างไรก็ตามตำแหน่งสำคัญนั้นมีประโยชน์ ฉันชอบแผนที่กับปุ่มควบคุม ฉันใช้การควบคุมเป็นจำนวนมากและมันทำให้ฉันพิ้งกี้ต้องพยายามที่จะเอื้อมมือเข้าไปในตำแหน่งที่อึดอัดใจอยู่ตลอดเวลา และเป็นฉันภายหลังพบว่าในอดีตControlเป็นที่ที่Caps Lockเป็นอยู่ในปัจจุบัน อย่างไรก็ตาม. สร้างไฟล์ในโฮมไดเร็กตอรี่ของคุณชื่อ.Xmodmapด้วยบรรทัดต่อไปนี้:

remove Lock = Caps_Lock
keysym Caps_Lock = Control_L

xmodmap ~/.Xmodmapเพื่อให้การเปลี่ยนแปลงเหล่านี้มีผลบังคับใช้สิทธินี้ทันทีวิ่ง

xevคุณสามารถค้นหาการพิมพ์ซ้ำด้วยตัวคุณเองโดยใช้ ปรากฎรหัสสำหรับaเป็น 38 หรือเลขฐานสิบหก 0x61 ดังนั้นแทนที่จะเป็น. Xmmap ของคุณอาจเป็น:

remove Lock = Caps_Lock
keysym Caps_Lock = 0x61

ฉันขอแนะนำให้อ่านหน้า man, สิ่งที่น่าสนใจมากมาย


ฉันต้องใช้บรรทัดสุดท้ายกับบรรทัดที่คุณโพสต์หรือไม่ ฉันได้รับข้อผิดพลาดต่อไปนี้: xmodmap: /home/pit/.Xmodmap:1: bad keysym in remove modifier list 'Caps_Lock', no corresponding keycodes xmodmap: /home/pit/.Xmodmap:2: bad keysym target keysym 'Caps_Lock', no corresponding keycodes xmodmap: 2 errors encountered, aborting. ฉันไม่เห็นอะไรเลยใน manpage ที่อธิบายพฤติกรรมนี้ ฉันพยายามเรียกใช้คำสั่งเป็น sudo แต่ไม่ได้เปลี่ยนข้อผิดพลาด
Pit

2
ฮ่า ๆ ฉันยังคงปิดการใช้งานปุ่ม CapsLock จากการทดสอบก่อนหน้าของฉันในตัวเลือกเค้าโครงแป้นพิมพ์ หลังจากเปิดใช้งานอีกครั้งมันก็ใช้งานได้ ขอบคุณ
Pit

เพียงแค่ทราบ: ฉันใช้คำแนะนำนี้เพื่อให้ได้ตัวพิมพ์ใหญ่ไปยังแผนที่เพื่อควบคุม แต่ฉันต้องแทรกadd Control = Caps_Lockระหว่างบรรทัดลบและบรรทัด keysym เพื่อให้มันทำงานได้
ไบรอันเฮด

2

หลังจากดูman xmodmapแล้วปรากฎว่ามีวิธี idempotent ในการกำหนดสิ่งนี้:

clear Lock
keysym Caps_Lock = Caps_Lock Control_L

หลังจากรีสตาร์ท X คุณควรจะสามารถเรียกใช้xmodmap ~/.Xmodmapซ้ำ ๆ ได้โดยไม่มีข้อผิดพลาด "คีย์ผิดพลาด"

ปรับปรุง : แต่น่าเสียดายที่นี้ไม่ได้ดูเหมือนจะเป็นแบบพกพาและ idempotent

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