Один из способов добиться этого - через xmodmap
. Вы можете бежать, xev
чтобы получить ключевые события. При запуске xev
окно должно появиться, и вы можете сфокусировать его и нажать клавиши, которые вы хотите поменять местами. Должны быть выведены подробности, похожие на Altключ:
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
Я на ПК, и у меня нет «Командного ключа», но есть эквивалентный «Ключ Windows», и xev дает:
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
Поскольку xmodmap не имеет представления state
и может легко нарушать сопоставления клавиш, я предлагаю вам сделать следующее:
xmodmap -pke > defaults
Затем мы создаем файл 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
Обратите внимание, как я использую xev
возвращенные коды клавиш . Также здесь я заменяю только левые клавиши super и alt (и оставляю правые на прежнее поведение). Тогда мы можем просто запустить xmodmap
, чтобы установить эти ключи:
$ 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
Вы можете работать без -v
(многословного) переключателя для тихого запуска, но я считаю, что это полезно, если вы допустили ошибки в файле modmap. Если что-то пошло не так, просто примените настройки по умолчанию:
xmodmap defaults
Modmap часто запускается при запуске X, так что вы можете применить их как значения по умолчанию, если поместите свои команды modmap в ~/.xmodmaprc
.