我一直在尝试在Mac上切换X中的超级和控制键并且已经成功了一半。如果可能的话,我想避免创建自定义.Xmodmap,因为每次加载自定义地图时都会弹出一个临时的100%cpu错误。
经过一番挖掘后,我最终在我的01-keyboard-layout.conf文件中放了选项“XkbOptions”“altwin:ctrl_win”,这个文件让我在那里中途:例如,左命令现在映射到133 Control_L。
但是,控制键保持不变。左控制,例如仍然映射到37 Control_L。
通过evdev.lst(以及一堆谷歌搜索)看到没有相关的XkbOption将控制键变成超级,现在我已经卡住了。
有什么想法吗?
答案 0 :(得分:7)
好的,我终于让它工作了。
首先,对于想要深入研究这个烂摊子的人来说,这两个资源是惊人的:
http://madduck.net/docs/extending-xkb/ &安培; http://www.charvolant.org/~doug/xkb/html/index.html
对于任何专门尝试进行此切换的人来说,这就是我所做的:
1)在/ usr / share / X11 / xkb / symbols中为新映射创建一个文件 2)把它放进去:
// Control is SWAPPED with Win-keys
partial modifier_keys
xkb_symbols "cmd_n_ctrl" {
key <LWIN> { [ Control_L ] };
key <RWIN> { [ Control_R ] };
key <LCTL> { [ Super_L ] };
modifier_map Control { <LWIN>, <RWIN> };
modifier_map Mod4 { <LCTL> };
};
3:在/ usr / share / X11 / xkb / rules中编辑evdev以包含:
altwin2:cmd_n_ctrl = +altwin2(cmd_n_ctrl)
(在选项=符号部分下)
4:将你的新选项添加到evdev.lst(相同的目录):
altwin2:cmd_n_ctrl
(在选项部分下)
5:现在编辑您的01-Keyboard conf文件以包含您创建的新选项。我看起来像这样:
Section "InputClass"
Identifier "keyboard-layout"
Driver "evdev"
MatchIsKeyboard "yes"
Option "XkbLayout" "us, ru, ca, fr"
Option "XkbOptions" "altwin2:cmd_n_ctrl"
EndSection
6:重启,你应该好好去。
上述资源可以更好地解释所有这些,或者您可能遇到的任何障碍。可能有更好的方法来做到这一点(可能不会改变/ usr / share的内容),但到目前为止,这是让我开始运行的原因。
希望能帮助其他人留在这个位置!