按移位+数字的反转作用

有没有办法扭转键盘动作Shift + [1..9]的作用? 基本上我发现自己使用数字上的符号比数字本身更频繁。 我有数字的小键盘。 许多这些符号用于编码和乳胶。 所以如果有人知道我怎么能得到!@#$%^&*()而不使用shift我会非常感激。

使用xmodmap实际上很容易实现。 只需创建一个新文件,即可:

keycode 10 = exclam 1 exclam 1 keycode 11 = at 2 at 2 keycode 12 = numbersign 3 numbersign 3 keycode 13 = dollar 4 dollar 4 keycode 14 = percent 5 percent 5 keycode 15 = asciicircum 6 asciicircum 6 keycode 16 = ampersand 7 ampersand 7 keycode 17 = asterisk 8 asterisk 8 keycode 18 = parenleft 9 parenleft 9 keycode 19 = parenright 0 parenright 0 

将其保存在主目录的根目录中,格式为.Xmodmap(大写很重要)。 现在,只需注销并重新登录(您可能需要重启),您的密钥将被交换。 继续阅读我是如何想出这个的。 我用来解决这个问题的信息来自这里 。 启动终端并键入以下命令:

 xmodmap -pke 

这将吐出一堆键码设置/值对,如下所示:

 ...... keycode 27 = r R r R keycode 28 = t T t T keycode 29 = y Y y Y keycode 30 = u U u U keycode 31 = i I i I keycode 32 = o O o O keycode 33 = p P p P keycode 34 = bracketleft braceleft bracketleft braceleft keycode 35 = bracketright braceright bracketright braceright keycode 36 = Return NoSymbol Return keycode 37 = Control_L NoSymbol Control_L keycode 38 = a A a A keycode 39 = s S s S keycode 40 = d D d D keycode 41 = f F f F keycode 42 = g G g G keycode 43 = h H h H keycode 44 = j J j J keycode 45 = k K k K ...... 

键码是物理键盘上的键,等号右侧的值是发送到PC的键。 有四个原因是第一个是普通的,第二个是按下shift,第三个(普通)和第四个(shift)似乎一旦你点击Scroll Lock按钮就启用了。 正如您所看到的,这为您提供了很多灵活性,可以做任何您想要修改键盘的事情。

现在,这只有在您登录X时(如在GUI中)才有效,因此名称。 如果你在Gnome,Unity等中启动一个终端,你仍然可以使用Xmodmap,但如果你想在控制台中使用相同的function(即按下CTRL + ALT + 1,sshing到一个盒子里,在服务器上工作,或没有GUI的PC)您将需要使用loadkeys。 虽然一般的想法是相同的,但loadkeys提供了更多的function和粒度,因此它稍微复杂一些。 现在,这些命令都必须从实际的控制台完成,它们无法通过终端仿真器完成,否则您将收到错误,如下所示: Couldn't get a file descriptor referring to the console

首先,我们需要创建默认的keymap,如下所示:

 dumpkeys > ~/my_keymap.map 

如果你真的搞砸了,最好复制一下这个。 现在,我们只需要根据我们的更改进行编辑。 每个键定义如下所示:

 keycode 2 = one exclam one one alt keycode 2 = Meta_one shift alt keycode 2 = Meta_exclam altgr alt keycode 2 = Meta_one shift altgr alt keycode 2 = Meta_one shiftl keycode 2 = one shift shiftl keycode 2 = exclam altgr shiftl keycode 2 = one shift altgr shiftl keycode 2 = one alt shiftl keycode 2 = Meta_one shift alt shiftl keycode 2 = Meta_exclam altgr alt shiftl keycode 2 = Meta_one shift altgr alt shiftl keycode 2 = Meta_one shiftr keycode 2 = one shift shiftr keycode 2 = exclam altgr shiftr keycode 2 = one shift altgr shiftr keycode 2 = one alt shiftr keycode 2 = Meta_one shift alt shiftr keycode 2 = Meta_exclam altgr alt shiftr keycode 2 = Meta_one shift altgr alt shiftr keycode 2 = Meta_one shiftl shiftr keycode 2 = one shift shiftl shiftr keycode 2 = exclam altgr shiftl shiftr keycode 2 = one shift altgr shiftl shiftr keycode 2 = one alt shiftl shiftr keycode 2 = Meta_one shift alt shiftl shiftr keycode 2 = Meta_exclam altgr alt shiftl shiftr keycode 2 = Meta_one shift altgr alt shiftl shiftr keycode 2 = Meta_one ctrll keycode 2 = one shift ctrll keycode 2 = exclam altgr ctrll keycode 2 = one shift altgr ctrll keycode 2 = one alt ctrll keycode 2 = Meta_one shift alt ctrll keycode 2 = Meta_exclam altgr alt ctrll keycode 2 = Meta_one shift altgr alt ctrll keycode 2 = Meta_one shiftl ctrll keycode 2 = one shift shiftl ctrll keycode 2 = exclam altgr shiftl ctrll keycode 2 = one shift altgr shiftl ctrll keycode 2 = one alt shiftl ctrll keycode 2 = Meta_one shift alt shiftl ctrll keycode 2 = Meta_exclam altgr alt shiftl ctrll keycode 2 = Meta_one shift altgr alt shiftl ctrll keycode 2 = Meta_one shiftr ctrll keycode 2 = one shift shiftr ctrll keycode 2 = exclam altgr shiftr ctrll keycode 2 = one shift altgr shiftr ctrll keycode 2 = one alt shiftr ctrll keycode 2 = Meta_one shift alt shiftr ctrll keycode 2 = Meta_exclam altgr alt shiftr ctrll keycode 2 = Meta_one shift altgr alt shiftr ctrll keycode 2 = Meta_one shiftl shiftr ctrll keycode 2 = one shift shiftl shiftr ctrll keycode 2 = exclam altgr shiftl shiftr ctrll keycode 2 = one shift altgr shiftl shiftr ctrll keycode 2 = one alt shiftl shiftr ctrll keycode 2 = Meta_one shift alt shiftl shiftr ctrll keycode 2 = Meta_exclam altgr alt shiftl shiftr ctrll keycode 2 = Meta_one shift altgr alt shiftl shiftr ctrll keycode 2 = Meta_one 

如您所见,它提供了更多function/粒度。 对于每个键,只需交换shift和常规值,即这里将是交换的一个键:

 keycode 2 = exclam one exclam exclam alt keycode 2 = Meta_exclam shift alt keycode 2 = Meta_one altgr alt keycode 2 = Meta_exclam shift altgr alt keycode 2 = Meta_exclam shiftl keycode 2 = exclam shift shiftl keycode 2 = one altgr shiftl keycode 2 = exclam shift altgr shiftl keycode 2 = exclam alt shiftl keycode 2 = Meta_exclam shift alt shiftl keycode 2 = Meta_one altgr alt shiftl keycode 2 = Meta_exclam shift altgr alt shiftl keycode 2 = Meta_exclam shiftr keycode 2 = exclam shift shiftr keycode 2 = one altgr shiftr keycode 2 = exclam shift altgr shiftr keycode 2 = exclam alt shiftr keycode 2 = Meta_exclam shift alt shiftr keycode 2 = Meta_one altgr alt shiftr keycode 2 = Meta_exclam shift altgr alt shiftr keycode 2 = Meta_exclam shiftl shiftr keycode 2 = exclam shift shiftl shiftr keycode 2 = one altgr shiftl shiftr keycode 2 = exclam shift altgr shiftl shiftr keycode 2 = exclam alt shiftl shiftr keycode 2 = Meta_exclam shift alt shiftl shiftr keycode 2 = Meta_one altgr alt shiftl shiftr keycode 2 = Meta_exclam shift altgr alt shiftl shiftr keycode 2 = Meta_exclam ctrll keycode 2 = exclam shift ctrll keycode 2 = one altgr ctrll keycode 2 = exclam shift altgr ctrll keycode 2 = exclam alt ctrll keycode 2 = Meta_exclam shift alt ctrll keycode 2 = Meta_one altgr alt ctrll keycode 2 = Meta_exclam shift altgr alt ctrll keycode 2 = Meta_exclam shiftl ctrll keycode 2 = exclam shift shiftl ctrll keycode 2 = one altgr shiftl ctrll keycode 2 = exclam shift altgr shiftl ctrll keycode 2 = exclam alt shiftl ctrll keycode 2 = Meta_exclam shift alt shiftl ctrll keycode 2 = Meta_exclam altgr alt shiftl ctrll keycode 2 = Meta_exclam shift altgr alt shiftl ctrll keycode 2 = Meta_exclam shiftr ctrll keycode 2 = exclam shift shiftr ctrll keycode 2 = one altgr shiftr ctrll keycode 2 = exclam shift altgr shiftr ctrll keycode 2 = exclam alt shiftr ctrll keycode 2 = Meta_exclam shift alt shiftr ctrll keycode 2 = Meta_one altgr alt shiftr ctrll keycode 2 = Meta_exclam shift altgr alt shiftr ctrll keycode 2 = Meta_exclam shiftl shiftr ctrll keycode 2 = exclam shift shiftl shiftr ctrll keycode 2 = one altgr shiftl shiftr ctrll keycode 2 = exclam shift altgr shiftl shiftr ctrll keycode 2 = exclam alt shiftl shiftr ctrll keycode 2 = Meta_exclam shift alt shiftl shiftr ctrll keycode 2 = Meta_one altgr alt shiftl shiftr ctrll keycode 2 = Meta_exclam shift altgr alt shiftl shiftr ctrll keycode 2 = Meta_exclam 

额外粒度的原因是因为它在使用控制台时倾向于使用更多的键盘快捷键,因为它的性质。

现在,要测试更改,可以使用以下命令:

 loadkeys ~/my_keymap.map 

到处玩,使用一些你经常使用的程序,并确保它按你想要的方式工作。 如果搞砸了,可以使用loadkeys命令回退到默认值。 要使其永久化,您可以将命令添加到~/.bashrc文件的末尾。