尝试使用xkg将我的左SUPER键(也称为WINDOWS键)重新映射到左侧或右侧CONTROL键

我试过阅读并理解这一点: https : //www.charvolant.org/doug/xkb/html/node5.html

作为测试,由于我的布局是/ usr / share / X11 / xkb / symbols / pl文件中的“波兰语,程序员”,我将’q’字符重新映射为’x’,并且它工作得很好。

但我想要的是将LWIN(左超级)重新映射到左控制。

所以我尝试了这个:我开始编辑/ usr / share / X11 / xkb / symbols / pc文件,假设这是所有其他文件的“根”。 注释掉这一行:

//key  { [ Super_L ] }; 

并添加了这个:

 key  { [ Control_L ] }; 

并重新启动PC,但没有成功。 即LWIN + C,不会将文本编辑器中的选定文本复制到剪贴板,而只是生成’c’字母。 在终端而不是停止当前程序,它也只是产生’c’字母。

这是我的配置文件: https : //gist.github.com/anonymous/49514ddf6f03ba87babaab51e2d5eff4

当我尝试xev命令然后按左控制键时,我看到:

 KeyPress event, serial 40, synthetic NO, window 0x5a00001, root 0x7e, subw 0x0, time 1053321, (374,-259), root:(374,545), state 0x0, keycode 133 (keysym 0xffe3, Control_L), same_screen YES, XKeysymToKeycode returns keycode: 37 XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 40, synthetic NO, window 0x5a00001, root 0x7e, subw 0x0, time 1053425, (374,-259), root:(374,545), state 0x0, keycode 133 (keysym 0xffe3, Control_L), same_screen YES, XKeysymToKeycode returns keycode: 37 XLookupString gives 0 bytes: XFilterEvent returns: False 

BTW。 问ubuntu建议我两个链接到类似的问题,但它们已经过时了,建议使用xmodmap,并且afaik它不再是Ubuntu> = 16.04(Xenial)的正确答案,这正是我的版本。

BTW2。 我真的想避免使用像Xbindkeys这样的应用程序,考虑到有一个内置的解决方案,我想我几乎可以理解,并且已经花了一些时间来试图理解它。

要临时更改它,您可以运行以下命令:

 setxkbmap -option altwin:ctrl_win 

要永久更改它,请打开/etc/default/keyboard文件进行编辑,更改该行

 XKBOPTIONS="" 

 XKBOPTIONS="altwin:ctrl_win" 

并重新启动。