在 Linux 上单独更改每个布局的按键绑定

在 Linux 上单独更改每个布局的按键绑定

我在 Debian Jessie 上安装了 GNOME。我更喜欢将 () 绑定到通常的 [ 和 ] 上进行编程,因为我经常使用 lisp。我可以使用 xmodmap 做到这一点,但它会破坏我的其他(葡萄牙语)布局,因为它会转动按键,使字母如下:

á é í ó ú。

放入左圆括号“(”。

我宁愿将每个布局绑定到其特定的特殊键绑定,这样我就可以为两个布局单独切换 () 和 [],而不会互相干扰。

布局类型包括gnome 菜单栏。

答案1

我认为你不能在 中做到这一点xmodmap。以下是一些可能性...

首选方法。

  • 自定义英语键盘布局(应该是/usr/share/X11/xkb/symbols/us)。复制一份,然后将原件更改为交换括号和方括号。这不会影响葡萄牙语布局。您也可以尝试键盘布局编辑器软件。

    一些参考资料:

  • 如果您使用可定制的环境(例如 Emacs)进行编码,则您可以简单地重新绑定括号和方括号键来插入其他符号。

    例如在 Emacs 中:

    (define-key key-translation-map (kbd "[") (kbd "("))
    ;; etc...
    

    或者在 Vim 中:

    imap [ (
    " etc...
    

    笔记:如果您无法在编辑器中直接重新绑定打印键,则可以使用文本替换、自动更正或片段扩展插件来自动替换字符。(您必须检查扩展的精确功能,看看它是否适用于此。)

    例如,在 Emacs 中,除了上述方法之外,您还可以使用abbrev-mode自动更正,甚至 Yasnippet(如果您将其设置为自动和非递归扩展)。

其他方法。

  • 从技术上讲,我确信您可以在 中完成此操作xbindkeys,通过将键绑定到检查当前键映射并模拟适当按键的脚本(我不知道它是否可以本地执行后者;如果不能,您需要使用类似xkvbd或 之类的东西xdotool)。

    但这可能不是最好的方法。更改键盘映射会更快,而且不容易出错。

  • 你应该能够使用自动键。它可用于文本替换。不过,您必须做一些研究才能找到如何使其取决于当前键盘映射。

    参考:Lifehacker 文章

相关内容