我在Ubuntu 13.04中通过结合Christophe的答案(这对我有所帮助,但不适用于修饰符,并且我不需要坟墓和波浪号作为固定键)来实现这一目标,这是关于setxkbmap的另一种答案,在设置中使用不同的选项, keyboard-layout-options(甚至查看源代码),并使用命令检查当前配置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会话终止,使用右Win键访问3级键,通过同时按下两个Shift键并分别将我的Caps Lock变成另一个Ctrl来进行布局转换。您可能要排除其中的一些或全部。
您可以使用“ 自动键”将呼叫绑定到某些键盘快捷方式,也可以使用您的.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
。