Я достиг этого в Ubuntu 13.04, объединив ответ Кристофа (который помог мне, но не работал для модификаторов, и мне не нужны могилы и тильды, чтобы быть мертвыми ключами), еще один ответ о setxkbmap , играя с различными опциями в настройках - параметры раскладки клавиатуры (даже глядя на исходный код ) и проверку текущей конфигурации с помощью команды setxkbmap -query
(которую также следует выполнить, чтобы проверить конкретную модель клавиатуры и коды раскладки, поскольку они могут отличаться).
У меня есть один сценарий, который я вызываю, когда переключаюсь на клавиатуру Apple (важнейший вариант - altwin:swap_lalt_lwin
замена клавиш-модификаторов Alt и Super):
# clear all options
setxkbmap -model "pc105" -layout "hr,us" -option ""
# set the Apple keyboard
setxkbmap -rules "evdev" -model "pc105" -layout "hr,us" -option "terminate:ctrl_alt_bksp,lv3:rwin_switch,grp:shifts_toggle,caps:ctrl_modifier,altwin:swap_lalt_lwin"
# swap the grave-tilde with less-greater key
# - variant without dead keys
xmodmap -e "keycode 94 = grave asciitilde"
xmodmap -e "keycode 49 = less greater less greater bar brokenbar bar brokenbar"
И еще один, который я вызываю, когда возвращаюсь на обычной клавиатуре:
# clear settings
setxkbmap -model "pc105" -layout "hr,us" -option ""
# pc keyobard
setxkbmap -rules "evdev" -model "pc105" -layout "hr,us" -option "terminate:ctrl_alt_bksp,lv3:rwin_switch,grp:shifts_toggle,caps:ctrl_modifier"
Обратите внимание, что я добавил настройки
terminate:ctrl_alt_bksp,lv3:rwin_switch,grp:shifts_toggle,caps:ctrl_modifier
чтобы включить ctrl + alt + backspace завершение сеанса Gnome, доступ к клавише уровня 3 с помощью правой клавиши win, сдвиг макета нажатием обеих клавиш Shift и превращение моего Caps Lock в дополнительный Ctrl (соответственно). Вы можете исключить некоторые или все из них.
Вы можете использовать AutoKey, чтобы привязать вызов к какому-либо сочетанию клавиш, или вызвать его с вашего компьютера, .profile
или .bashrc
если вы все время используете клавиатуру Apple.
setxkbmap -device 8 dvorak -option altwin:swap_alt_win,ctrl:nocaps
. Я только хочу, чтобы право Alt и Win поменялись местами. Это не отменяет левую заменуsetxkbmap -device 8 dvorak -option altwin:swap_lalt_lwin,altwin:swap_alt_win,ctrl:nocaps
. По-видимому, нет никакойaltwin:swap_ralt_rwin
возможности, согласноman xkeyboard-config
.