ใน X11 (บนคอนโซลฉันไม่รู้) คุณสามารถทำได้โดยกำหนดพฤติกรรมของปุ่ม Escape ใหม่ ฉันดูคำจำกัดความ "shift (break_caps)" เพื่อดูว่ามันทำงานอย่างไรและปรับให้เหมาะสม
ดูคำตอบนี้บน xkbสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธี / ตำแหน่งที่จะวางไฟล์ที่ถูกแก้ไขในเครื่องและโหลด
และสำหรับการทำสิ่งที่คุณต้องการคุณต้องใช้ไฟล์สัญลักษณ์ท้องถิ่น (เช่น:) ~/.xkb/symbols/mysymbols
ส่วนดังนี้:
partial modifier_keys
xkb_symbols "esc_breaks_caps" {
key <ESC> {
type = "ALPHABETIC",
actions [Group1] = [
SetMods(modifiers=none),
SetMods(modifiers=Lock,clearLocks)
]
};
};
และในไฟล์รูปแบบแป้นท้องถิ่น (เช่น~/.xkb/keymap/mykbd
คุณสามารถสร้างมันขึ้นมาด้วยsetxkbmap -print > ~/.xkb/keymap/mykbd
) เปลี่ยนสายที่จะเพิ่มxkb_symbols
+mysymbols(esc_breaks_caps)
ตอนนี้คุณสามารถโหลดได้ด้วย: xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
และการกดEscจะลบสถานะ CapsLock (อันที่จริงแล้วเอฟเฟกต์ที่เกิดขึ้นจากการวางจำหน่ายของ Esc ฉันคิดว่ามีเพียงคีย์ตัวดัดแปลงเท่านั้นที่มีผลในทันที
โอ้ถ้าคุณต้องการสลับปุ่ม Escape และ CapsLock ด้วยเช่นกัน จากนั้นใช้สิ่งนี้แทน (และคุณใส่ "+ mysymbols (esc_swap_and_breaks_caps)" ในไฟล์ mykbd ของคุณ):
partial modifier_keys
xkb_symbols "esc_swap_and_breaks_caps" {
replace key <CAPS> {
type = "ALPHABETIC",
symbols = [ Escape, Escape ],
actions [Group1] = [
SetMods(modifiers=none),
SetMods(modifiers=Lock,clearLocks)
]
};
replace key <ESC> { [ CapsLock, CapsLock ] };
};
บันทึกคีย์ทางกายภาพ<CAPS>
และ<ESC>
; <CAPS>
(แป้นสลักCapsLockบนแป้นพิมพ์ของคุณ) ส่ง Escape และ<ESC>
(สลักกุญแจEsc) ส่ง CapsLock ซึ่ง<CAPS>
(ส่ง Escape) ยังไม่ได้ตั้งค่าสถานะ capslock
vim
หรือเดสก์ท็อปที่สมบูรณ์เท่านั้น