Tôi có một bàn phím Apple và tôi đã phải thực hiện một số thao tác ánh xạ lại các phím để biến mod-4
phím này thành phím đầu tiên ở bên trái của Spacethanh khi làm việc với Emacs. Kịch bản dưới đây hoạt động tốt khi tôi đang sử dụng trình quản lý cửa sổ dwm, nhưng sau khi chuyển sang Openbox tôi đã thấy rằng thay vì hoán đổi mã phím giữa tùy chọn và phím lệnh, cả hai phím đều làm điều tương tự.
Một điều kỳ lạ tôi nhận thấy, là trên thiết lập mới khi tôi nhấp chạy showkey
và nhấn tùy chọn và các phím lệnh tôi nhận được 56 và 125 tương ứng, nhưng các phím này hoàn toàn không hoạt động khi chèn chúng vào tập lệnh bên dưới thay vì 64 và 133.
Tôi phải thừa nhận tôi đã tạo tập lệnh bên dưới bằng cách liên tục chỉnh sửa nó cho đến khi nó hoạt động để có thể có cách làm tốt hơn nhiều.
.xmodmap
# switch alt and command...the switch is not being done properly
xmodmap -e "keycode 64 = Alt_L"
xmodmap -e "keycode 133 = Meta_L"
# remap of mod 4
xmodmap -e "clear Mod4"
xmodmap -e "add Mod4 = Super_L"
Cập nhật
Tôi đã quen với việc thiết lập bàn phím trước đó và từ bỏ việc cố gắng điều chỉnh nó. Thật không may, sau một lần khởi động lại gần đây, CapsLocknó Ctrlkhông còn hoạt động nữa nên tôi lại ở đây.
Lần này thay vì ánh xạ được sử dụng ở trên, tôi đã chạy xmodmap -pke > ~/.xmod
và điều chỉnh các phím ở đó thay vào đó (dễ dàng hơn nhiều).
Tuy nhiên, mọi thứ vẫn chưa hoàn toàn đúng. Các CapsLockchức năng tĩnh như bình thường ngoại trừ khi xev
lệnh được chạy, sau đó nó trả về các mục sau đây dường như hiển thị ánh xạ chính xác:
# caplock
KeyRelease event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4858000, (57,-31), root:(426,402),
state 0x2, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
XKeysymToKeycode returns keycode: 37
XLookupString gives 0 bytes:
XFilterEvent returns: False
# ctrl-L
KeyRelease event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4805947, (686,148), root:(1055,581),
state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
# Alt-L
KeyPress event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4555825, (-158,-649), root:(959,133),
state 0x0, keycode 64 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
# Super-L
KeyRelease event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4920564, (-63,169), root:(306,602),
state 0x40, keycode 133 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
~/.config/openbox/rc.xml
vấn đề mâu thuẫn .
showkey
không hiển thị cùng mã phím mà X sử dụng. Chạyxev
để xem mã khóa X và hành động của họ. Chỉ cho chúng tôi đầu raxmodmap -pm
và đầu raxev
khi bạn nhấn từng phím liên quan.