默认将数字行变成符号行

rat*_*ath 13 keyboard keyboard-layout debian-wheezy

作为一名程序员,我发现自己键入符号的次数比键入数字的次数要多得多。因此,如果键盘上的数字行默认生成符号,那就太好了。

最终结果应该是:6会产生^Shift+6会给出6

我尝试切换到 Dvorak 一段时间,但陡峭的学习曲线和迫在眉睫的最后期限的结合并没有使它成为一个有吸引力的解决方案。

理想情况下,我也希望在 Windows 上进行此操作,但让我们关注 Debian,因为它是我的主要开发机器。

根据我在网上找到的“shift lock”功能,通过快速按下 Shift 按钮激活的功能与 Windows 上的完全相同,但我找不到任何 *nix 参考。

编辑:理想情况下,解决方案不应干扰非数字行键,例如,[但如果确实如此,我可以接受它({在 C 中比 更常见[)。

Hun*_*ter 8

从您的问题中,我了解到您只需要某些键就可以与按 shift 时完全一样工作,反之亦然。为此,您可以构建自己的自定义键盘布局。为此,您可以下载 Microsoft 键盘布局创建器MSKLC,然后使用它为您的系统创建自定义布局。同样在构建自定义布局之后,它应该要求您安装创建的布局,因此选择 YES 转到安装程序所在的文件夹并安装您的自定义布局。您还需要在构建自定义布局后重新启动系统。在此之后,您只需要从控制面板激活它。

转到 (对于 Windows 8)

  1. 按 Windows 按钮 + I(打开设置超级按钮菜单)
  2. 单击键盘按钮(右下角)
  3. 你应该看到你的自定义布局
  4. 选择它
  5. 现在您的自定义布局将被激活

此外,有关 MSKLC 的完整教程,您可以在此处此处获取。如果出现任何问题,请查看两个 tuts。


har*_*ymc 7

按下 shift+number的线程反转角色来这个 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
Run Code Online (Sandbox Code Playgroud)

有关使用此文件的更多信息,请参阅上面的链接。


use*_*ser 3

您可以使用dumpkeysand loadkeys(对于控制台)或xmodmap(对于 X)来重新定义给定键盘键的功能。xev可以告诉你 X 如何看待特定的按键输入。

我建议您首先打印全套键盘映射表达式;您的系统一开始的设置可能略有不同,在这种情况下,上述内容将不完全匹配。为此,只需执行xmodmap -pke(将键盘映射表打印为表达式)。

举个例子,要重新映射1到X 中的!Shift+11,我们首先使用 xev 找出1键码 10(在我的例子中;确保进行验证)。要重新映射键以反转其移位功能:

xmodmap -e 'keycode 10 = exclam 1 exclam 1 exclamdown onesuperior exclamdown'
Run Code Online (Sandbox Code Playgroud)

要恢复正常功能(这与 打印的内容匹配xmodmap -pke):

xmodmap -e 'keycode 10 = 1 exclam 1 exclam exclamdown onesuperior exclamdown'
Run Code Online (Sandbox Code Playgroud)

这些更改会立即生效,并至少影响整个 X 会话(它们不是启动 xmodmap 的应用程序的本地会话)。

一旦您有了一组按照您想要的方式设置键盘的 xmodmap 命令,请将它们存储在 ~/.xmodmaprc 中,然后添加到 ~/.xsessionrc (如果不存在则创建它):

xmodmap ~/.xmodmaprc
Run Code Online (Sandbox Code Playgroud)

您想要添加到 .xmodmaprc 的部分只是keycode XX = yyy ...命令行命令的一部分(即开关的参数-e)。