Linux上是否有美国国际键盘布局模仿Windows的行为?


13

我习惯于使用US International作为键盘布局。但是,Windows和Linux的实现似乎有很大差异(在我看来,Gnome可能是GTK问题,因为GTK在Windows上的行为相同)。

布局中使用死键,例如用于键,如'"^,& C。允许使用变音符号轻松输入字符。在Windows上,先按下一个死键,然后再按下一个没有配对关系的键,则会导致死键的字符(与空格配对)以及第二个键的字符。示例:按时",会a产生“ä”,但是,按时',会s产生“ s”,因为没有'和配对s

现在,有一种叫做英语的语言经常使用这两个字符,并且由于它可以在Windows上像往常一样键入它们,所以现在对我来说是肌肉记忆。这给我带来了问题:

在Linux(和GTK在Windows上),还有就是用于配对's(其中许多人),造成ś(这反过来,导致我经常键入“它”)。所以,键入“它的”要求我输入'        s在最后。

我已经习惯了其他几种组合,这些组合都不起作用。在那些之中,对于不存在的对,根本没有结果。键入“我会”会得到“我”。两次击中其中一个键会导致音调不连续,这会破坏我的习惯,即先输入两个引号(现在会产生非音调的尖音或宏音),从而打乱了我键入字符串的习惯。

长话短说:无附带的美国国际布局出现的以功能等同于Windows -是否有任何的工作相同?还是有机会以这种方式进行配置?输入带有重音符号或非变音符号的s可能会很好,但这些并不是我的常见需求。


1
对于任何想知道为什么为什么要使用US International而不是其他东西的人:我来自德国,有时需要输入ä,ö,ü,ß之类的东西。但是大多数编程语言设计人员只能为一种布局设计其语言,因此人们不得不使用断指的组合键来输入大括号或反斜杠之类的字符。
乔伊

您始终可以使用AHK或类似的解决方案通过热脚本转换字符串进行中吗?我不确定它在Linux上的表现如何,这是一个关于此的主题。
Arctiic

Answers:


6

一种可能性是避免使用死键,而改用带有Compose键的带重音字母。例如,Compose " a输入ä。您必须选择一个包含Compose键的键盘布局选项。常见的选择是右键Ctrl(我认为Windows称之为Menu)的左侧。这样做的好处Compose是,您无需改变主布局就可以键入许多花式字符。缺点是重音字母需要三按而不是两按。

另外,您可以通过.XCompose在主目录中创建一个名为(注意CApitalization)的文件并列出所需的组合来配置死键的效果。就像是:

包括“ /usr/share/X11/locale/en_US.UTF-8/Compose”

<dead_acute> <space>:“'”撇号
<dead_acute> <exclam>:“'!”
<dead_acute> <quotedbl>:“'\”“
#等...
<dead_acute> <a>:“á”
<dead_acute> <b>:“'b”
#等...

语法非常简单:左侧的键序列:变成""右侧的字符串:。右边的额外单词是与该键序列相对应的键符号(即键名称);这并不十分重要。从a #到行尾的所有内容都将被忽略。

如果您的发行版将其放在其他位置,请更改第一行以指向系统文件。您可以在此文件中查找更多语法示例。<Multi_key>Compose密钥的另一个名称。

在左边,<尖括号之间的名称>是键符号。您可以在中找到keyyms列表/usr/include/X11/keysymdef.h(此文件位于开发包中,例如,x11proto-core-dev在Ubuntu上)。

是的,输入的内容很多,但是您应该能够通过复制粘贴大块代码keysymdef.h并进行一些巧妙的批量替换来使大部分操作自动化。有帮助的事情是,由于使用了“ \ x dd ”语法,您可以重用右侧的十六进制代码来生成右侧的字符串:

#定义XK_exclam 0x0021 / * U + 0021感叹号* /

进入

<dead_acute> <exclam>:“'\ x21”

最后,您可以设置带有死键和Compose键的键盘布局。作为德国人,您可能只设置"为死键。如果您要沿着那条路线走,那么最简单的选择是使用GUI来设置没有死键的键盘和.Xmodmap用于死键的文件,其中包含类似

键盘符号撇号=撇号dead_quotedbl

1
好的,我来研究一下(现在不在另一台机器上)。不能使用Compose,因为我必须重新学习肌肉记忆,而Linux并不是我的主要系统。而且不要以为只有我是德国人,我就永远不需要变音符;-)。从其他语言中导入的很多单词也使用了严重或重音符号。
乔伊

最好是先完全覆盖遇到麻烦的那些组合,然后在发现有问题的新东西时添加到表中,例如 <dead_acute> <s> : "'s"
RolKau 2010年

您可能还必须设置GTK_IM_MODULE=xim为使用中定义的组合序列~/.XCompose,而不是GTK内置(!)。
罗尔考(RolKau)2010年

3

我知道这个问题已经“解决”了一段时间了。但是,我想展示我的解决方案,该解决方案将本页的发现与大量测试和实验结合在一起。

Win US Intl for Linux是我写的一系列脚本,用于解决Linux原生US Intl键盘布局出现问题的问题,就像OP所写的那样。我之所以使用它,主要是因为我的母语是西班牙语,并且我仍然使用许多英语论坛,文本,聊天等等(例如本网站)。

注意:这实际上与Windows XP US-国际键盘布局的行为类似(但不完全相同)。

您可以访问http://tamh.info/en/win-us-intl-4-linux/进行检查。我正在通过为其他几种边界情况添加更多XCompose条目(包括其他更改)来使其变得更好。


3
链接无效。
修补


1

因此,有一个解决方案,就像有人在这里发布的那样,有一个可以完成此工作的github存储库:https : //github.com/raelgc/win_us_intl 这是您想要做的:

  1. 下载压缩文件

  2. 提取所需的任何内容,您的焦点应该放在XCompose文件上。

  3. 用您喜欢的文本编辑器打开XCompose文件,然后在以下行中添加include“ /usr/share/X11/locale/en_US.UTF-8/Compose”这样的一行:include“%L”

  4. 将XCompose文件移动到〜/目录

  5. 编辑:

    • 不再需要此步骤,在所有新版本的linux上都不需要此步骤,如果它对您不起作用,则只有在您知道自己在做什么时才执行此步骤,因为XIM存在一些已知问题。
    • 编辑您的〜/ .profile并将export GTK_IM_MODULE =“ xim”放在文件末尾。
  6. 编辑:

    • 如果您使用的是GNOME:IBus随此环境预先安装,并且更改为另一种输入方法不会产生任何效果,因为GNOME仍会启动它并配置重要的变量。
    • 如果您不想使用IBus,请在终端中键入以下命令: im-config -n uim
  7. 重启

注意:对我来说,如果没有第5步,此解决方案将无法工作,因此,如果您知道如何在与我相同的情况下帮助我和其他人,则这是我提出的另一个问题的链接:我的系统无法读取。 XCompose文件

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.