Một cách để đạt được điều đó là thông qua xmodmap
. Bạn có thể chạy xev
để có được các sự kiện quan trọng. Khi chạy xev
một hộp sẽ xuất hiện và bạn có thể tập trung vào nó và nhấn các phím bạn muốn trao đổi. Nó sẽ xuất chi tiết tương tự như cho Altkhóa:
KeyPress event, serial 28, synthetic NO, window 0x8800001,
root 0x25, subw 0x0, time 2213877115, (126,91), root:(1639,475),
state 0x0, keycode 14 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
Tôi đang dùng PC và không có "Khóa lệnh", nhưng có "Khóa Windows" tương đương và xev cung cấp:
KeyPress event, serial 28, synthetic NO, window 0x8000001,
root 0x25, subw 0x0, time 2213687746, (111,74), root:(1624,98),
state 0x0, keycode 93 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
Vì xmodmap không có ý tưởng state
và có thể dễ dàng phá vỡ ánh xạ chính, tôi khuyên bạn nên thực hiện:
xmodmap -pke > defaults
Sau đó, chúng tôi tạo một tệp xmodmap:
keycode 14 = Alt_L
keycode 93 = Super_L
remove Mod1 = Alt_L
remove Mod4 = Super_L
add Mod1 = Super_L
add Mod4 = Alt_L
Lưu ý cách tôi đang sử dụng mã khóa xev
trả về. Ngoài ra ở đây tôi chỉ thay thế các phím siêu và phím trái (và để lại các phím bên phải cho hành vi cũ của chúng). Sau đó, chúng ta chỉ cần chạy xmodmap
, để thiết lập các phím này:
$ xmodmap -v modmap.file
! modmap:
! 1: keycode 14 = Alt_L
keycode 0xe = Alt_L
! 2: keycode 93 = Super_L
keycode 0x5d = Super_L
! 3: remove Mod1 = Alt_L
! Keysym Alt_L (0xffe9) corresponds to keycode(s) 0xe
remove mod1 = 0xe
! 4: remove Mod4 = Super_L
! Keysym Super_L (0xffeb) corresponds to keycode(s) 0x5d
remove mod4 = 0x5d
! 5: add Mod1 = Super_L
add mod1 = Super_L
! 6: add Mod4 = Alt_L
add mod4 = Alt_L
!
! executing work queue
!
keycode 0xe = Alt_L
keycode 0x5d = Super_L
remove mod1 = 0xe
remove mod4 = 0x5d
add mod1 = Super_L
add mod4 = Alt_L
Bạn có thể chạy mà không cần -v
chuyển đổi (dài dòng) để chạy im lặng, nhưng tôi thấy nó hữu ích nếu bạn mắc lỗi trong tệp modmap của mình. Nếu mọi thứ trở nên lộn xộn thì chỉ cần áp dụng lại mặc định của bạn:
xmodmap defaults
Modmap thường được chạy khi khởi động X, vì vậy bạn có thể áp dụng chúng làm mặc định nếu bạn đặt các lệnh modmap của mình ~/.xmodmaprc
.