映射超级键在xorg.conf中控制?

我一直试图在Mac上切换我的超级和控制键,并已经成功了一半。 如果可能的话,我想避免创build一个自定义的.Xmodmap,因为每次加载自定义地图时都会popup一个临时的100%cpu缺陷。

经过一番挖掘之后,我终于在01-keyboard-layout.conf文件中添加了选项“XkbOptions”“altwin:ctrl_win”,这个文件在那里得到了一半:例如,左边的命令现在映射到133 Control_L。

但是,控制键保持不变。 左控制,例如仍然映射到37 Control_L。

通过evdev.lst(和一堆谷歌search)看起来没有相关的XkbOption将控制键变成超级,现在我很困难。

有任何想法吗?

好的,我终于搞定了这个工作。

首先,这两个资源对于想要深入研究这个混乱的人来说是惊人的:

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键盘配置文件,以包含您创建的新选项。 我看起来像这样:

 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的内容),但到目前为止,这是让我启动和运行的东西。

希望能帮助别人卡在这个地方!