Remaping Ctrl + Capslock และ Alt + Capslock บน Ubuntu


6

ฉันพยายามที่จะปิดการใช้งาน Capslock และทำการแมปต่อไปนี้:

Ctrl+Capslock => Capslock
Alt+Capslock => Escape (since my Escape key is broken)

ตอนนี้ฉันกำลังพยายามใช้ Xmodmap

ฉันมีดังต่อไปนี้เท่านั้น:

keycode 66 = NoSymbol Caps_Lock

สิ่งนี้ปิดใช้งาน Capslock และแผนที่ Shift + Capslock เป็น Capslock แต่สิ่งที่ฉันต้องการก็คือ Ctrl + Capslock แทน Shift + Capslock

ฉันไม่รู้ว่าจะจับคู่ Alt + Capslock กับปุ่ม Escape ได้อย่างไร

ฉันต้องการชี้แจงว่าฉันไม่ต้องการคำตอบในการใช้ Xmodmap วิธีการใด ๆ ก็ใช้ได้


1
+1 ตลอดชีวิตของฉันรู้สึกหงุดหงิดง่ายแค่กด CAPS โดยไม่ตั้งใจขณะพิมพ์อย่างรวดเร็วเพียงหนึ่งประโยคในภายหลังค้นพบว่าคุณต้องพิมพ์ใหม่ทุกอย่างอีกครั้ง
Vorac

มันแย่กว่านั้นสำหรับฉันฉันใช้เสียงเรียกเข้า โอ้หนังสยองขวัญ! & lt; = O
qtwtetrt

คำตอบ:


2

Xmodmap ไม่สามารถทำสิ่งที่คุณต้องการ แต่มันสามารถทำให้คุณใกล้ชิด

ไวยากรณ์พื้นฐานสำหรับการปรับเปลี่ยนพฤติกรรมของคีย์คือ

xmodmap -e "keycode  KEYCODE = KEYSYMBOL1 KEYSYMBOL1 KEYSYMBOL3 KEYSYMBOL4"
xmodmap -e "keysym KEYSYMBOL = KEYSYMBOL1 KEYSYMBOL1 KEYSYMBOL3 KEYSYMBOL4"

ที่ไหน

  • KEYSYMBOL2 ถูกทริกเกอร์เมื่อกดปุ่มขณะกด เปลี่ยน .
  • KEYSYMBOL3 ถูกทริกเกอร์เมื่อกดปุ่มขณะกด ModeSwitch .
  • KEYSYMBOL4 ถูกทริกเกอร์เมื่อกดปุ่มขณะกด เปลี่ยน + ModeSwitch .
  • KEYSYMBOL1 ถูกทริกเกอร์เมื่อกดปุ่มโดยไม่มีข้อใดข้อหนึ่งข้างต้น
  • ModeSwitch คือ AltGr โดยค่าเริ่มต้น (ใช้ได้กับรูปแบบแป้นพิมพ์บางอย่างเท่านั้น)

เราไม่สามารถตั้งค่า Ctrl หรือ Alt ที่จะเป็น ModeSwitch คีย์เนื่องจากไม่มีคีย์ใดสามารถใช้เป็นตัวดัดแปลงสองแบบที่แตกต่างกัน

อย่างไรก็ตามเรา สามารถ กลับ CapsLock เข้าไปใน ModeSwitch สำคัญ:

xmodmap -e "keysym Caps_Lock = Mode_switch Mode_switch"

เพื่อทำการแมปใหม่ CapsLock + Ctrl ไปที่ CapsLock คีย์ดำเนินการคำสั่งต่อไปนี้

xmodmap -e "keysym Control_L = Control_L Control_L Caps_Lock"
xmodmap -e "keysym Control_R = Control_R Control_R Caps_Lock"

หมายเหตุ CapsLock เป็นปุ่มตัวดัดแปลงที่นี่ดังนั้นคุณต้องกดปุ่มนี้ก่อน

เรา ลาด remap CapsLock + Alt หรือ CapsLock + ซูเปอร์ ไปยัง หนี ในลักษณะเดียวกันตั้งแต่ Alt และ ซูเปอร์ ทำหน้าที่แตกต่างกันเมื่อกดเพียงอย่างเดียวและเมื่อใช้เป็นปุ่มปรับแต่ง

คีย์อื่น ๆ จะทำงานได้ดี ตัวอย่าง:

  • สำหรับ CapsLock + ` (เลย์เอาต์ US มาตรฐาน) ใช้

    xmodmap -e "keysym grave = grave asciitilde Escape"
    
  • สำหรับ CapsLock + ช่องว่าง ใช้

    xmodmap -e "keysym space = KP_Space KP_Space Escape"
    

เคล็ดลับ:

  • หากต้องการทำให้การแมปใหม่เป็นแบบถาวรให้สร้าง / แก้ไขไฟล์ .gnomerc ในโฟลเดอร์บ้านของคุณและบันทึกคำสั่งที่เกี่ยวข้องในนั้น

  • หากต้องการยกเลิกการ remappings ทั้งหมดเพียงแค่ดำเนินการ

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