Jam*_*ten 10 x11 keyboard-layout dead-keys
当我在 Linux Mint 机器上使用英语、美国国际(带有死键、altGr 死键或替代)的任何变体时,我总是遇到这种行为。
当我按下这些键之一时:' "然后在它们后面跟着一个“非重音”字符,比如 a[或b根本没有输出。
而在 Windows US-International 中,它将打印[或b. 如果我想输入这个,我必须用空格而不是任何“非重音”字符来转义每个死键。这在编程时很烦人(不是真的,但我用 Windows 'Qwerty International' 培训了 Typing.io 并且在系统之间来回切换很烦人)。
有什么办法可以改变它,让它像在 Windows 中一样工作?
我找到了一种在 OpenSUSE 中完成这项工作的方法,我希望它在 Mint 中不会有太大的不同。也许您的文件位于略有不同的位置,但找到正确的文件应该不会太难。
OpenSUSEibus
默认使用(或者,至少 Gnome 版本使用),但我摆脱了它并使用xim
. 我不知道 Mint 是否也使用,ibus
但无论如何,我都会发布完整的说明。根据需要跳过/调整这些步骤。
卸载ibus
. 在 OpenSUSE 中,这是sudo zypper rm ibus
. 注销并再次登录以杀死僵尸守护进程。
安装gtk3-immodule-xim
. 在 OpenSUSE 中,它是sudo zypper in gtk3-immodule-xim
.
编辑/etc/X11/xim.d/none
。设置XMODIFIERS
为@im=none
。设置GTK_IM_MODULE
和QT_IM_MODULE
到xim
。
cp /usr/share/X11/locale/en_US.UTF-8/Compose ~/.XCompose
. 如果.XCompose
您的主目录中有一个文件,X11 将使用它。所以现在我们可以编辑这个文件来自定义死键。
现在,无聊的部分。编辑.XCompose
文件并为每个死键组合创建规则,输出所需的字符串。例如:
<dead_acute> <b> : "'b"
<dead_acute> <r> : "'r"
...
Run Code Online (Sandbox Code Playgroud)
记住也要为大写字母(和标点符号,以及任何你需要的东西)创建规则。
如果像我一样,您还想在使用时使用cedilla ( ç
) 而不是重音 c ( ?
) <dead_acute> <c>
,只需查找并编辑这些行。
你有它。注销并重新登录,所有应用程序都应该正确处理输入!
编辑:我知道这xim
是旧的和有问题的(它在配置文件中这么说),但以上是我可以让一切正常工作的唯一方法。也许uim
也能完成这项工作。
在 Ubuntu 14.04 上,我执行了以下操作:
1)安装uim
使用软件管理器,其他包一样uim-xim
,uim-gtk2
,uim-gtk3
并uim-qt
安装自动。请参阅https://launchpad.net/ubuntu/+source/uim。
2) 通过在 中添加下一行来定义环境变量~/.profile
,这样自定义组合键序列仅适用于当前用户:
# Restart the X-server after making alterations using:
# $ sudo restart lightdm
# It seems only GTK_IM_MODULE or QT_IM_MODULE needs to be defined.
export GTK_IM_MODULE="uim"
export QT_IM_MODULE="uim"
Run Code Online (Sandbox Code Playgroud)
3)为了模仿Window US International
键盘,我将以下文件之一保存在~/.XCompose
:
在 1) 重新启动 Ubuntu 或 2) 通过在终端中输入以下命令后,这对我有用:
$ sudo restart lightdm
Run Code Online (Sandbox Code Playgroud)
注意:似乎只有在更改~/.profile
文件后才需要重新启动,更改~/.XCompose
将在下次应用程序(终端、Gedit 等)启动时生效。
要检查环境变量是否设置正确,请在终端中输入以下命令:
$ printenv | grep IM_MODULE
Run Code Online (Sandbox Code Playgroud)
非常感谢:
关于自定义组合键序列:
关于自定义键盘映射:
归档时间: |
|
查看次数: |
1440 次 |
最近记录: |