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

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

我习惯使用美国国际键盘布局。但是,Windows 和 Linux 之间的实现似乎有很大差异(就我而言,Gnome 可能是 GTK 的问题,因为 GTK 在 Windows 上的行为相同)。

该布局使用死键,例如'"^等键,可轻松输入带变音符号的字符。在 Windows 上,按下一个死键,然后按下一个没有配对的键,将产生死键的字符(与空格配对时)和第二个键的字符。例如:按",a可产生“ä”,但按',可产生“'s”,因为和s不配对。's

现在,有一种语言叫做英语,它经常使用这两个字符,而且由于它在 Windows 上可以像往常一样输入它们,所以对我来说这已经成为了肌肉记忆。这让我想到了我的问题:

在 Linux 上(在 Windows 上为 GTK),'s(之间的)配对许多others),结果就是ś(这又导致我频繁输入“itś”)。因此,输入“it's”需要我在末尾输入',         , 。s

我习惯的其他一些组合不起作用。其中之一是,对于不存在的对,只需没有什么结果是。输入“I'd”会得到“I”。按两次其中一个键会得到一个无间距变音符号,这打破了我先输入两个引号再输入字符串的习惯(现在会得到一个无间距的尖音符或长音符号)。

长话短说:所提供的美国国际布局似乎都无法与 Windows 中的布局相同 - 是否有效果一样吗?或者有没有机会这样配置?虽然用重音符号或无间距变音符号输入 s 可能很好,但这些对我来说并不常见。

答案1

目前有一个 github repo 提供了一个解决这个问题的.deb 文件:

适用于 Linux 的 Windows™ 美国国际版 XCompose

正如其他答案所建议的那样,它基于定制的.XCompose 文件。

从该页面(Ubuntu / Debian):

sudo apt-add-repository -y ppa:rael-gc/utils
sudo apt update
sudo apt install win-us-intl
im-config -n uim

注销并登录。如果不起作用,请尝试重新启动系统。

答案2

一种可能性是避免出现死键,而是使用 Compose 键输入重音字母。例如,键入Compose " aä您必须选择包含Compose键的键盘布局选项;常见的选择是右键左侧的键Ctrl(我认为 Windows 称之为Menu)。 的优点Compose是您可以在不更改主布局的情况下输入许多花哨的字符。缺点是输入重音字母需要按三次而不是两次。

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

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

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

语法相当简单: 左侧的键序列:转换为""右侧的字符串:。右侧的额外单词是与此键序列相对应的键符(即键的名称);它并不十分重要。从 a#到行尾的所有内容都将被忽略。

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

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

是的,这需要输入很多内容,但你应该能够通过复制粘贴大块内容keysymdef.h并进行一些巧妙的批量替换来自动化大部分操作。有一点会有所帮助,那就是你可以重用右侧的十六进制代码来制作右侧字符串,这要归功于“\x“语法:turn 例如

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

进入

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

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

keysym 撇号 = 撇号 dead_quotedbl

答案3

我知道这个问题已经“解决”了一段时间。但是,我想介绍一下我的解决方案,它结合了本页的发现以及大量的测试和实验。

适用于 Linux 的 Win US Intl是我编写的一系列脚本,用于解决 Linux 原生 US Intl 键盘布局出现问题的问题,正如 OP 所写。我使用它主要是因为我的母语是西班牙语,而且我仍然使用很多英语论坛、文本、聊天等(比如这个网站)。

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

您可以前往http://tamh.info/en/win-us-intl-4-linux/来检查一下。我正在对其进行改进,包括添加更多 XCompose 条目以应对其他几个边界情况,以及其他更改。

答案4

因此有一个解决方案,正如有人在这里发布的那样,有一个 github repo 可以完成这项工作:https://github.com/raelgc/win_us_intl 以下是您要执行的操作:

  1. 下载 zip 文件

  2. 提取到您想要的任何位置,您的重点应该放在 XCompose 文件上。

  3. 使用您喜欢的文本编辑器打开 XCompose 文件,然后输入以下内容包括“/usr/share/X11/locale/en_US.UTF-8/Compose”像这样的一行:包括“%L”

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

  5. 编辑:

    • 此步骤不再需要,在所有新版本的 Linux 上它都可以正常工作,如果它不适合您,请仅当您知道自己在做什么时才执行此步骤,因为 XIM 存在一些已知问题。
    • 编辑你的〜/ .profile并输入导出 GTK_IM_MODULE="xim"在文件末尾。
  6. 编辑:

    • 如果您正在使用 GNOME:IBus 已预先安装此环境,更改为其他输入法不会产生任何影响,因为 GNOME 无论如何都会启动它并配置重要变量。
    • 如果您不想使用 IBus,请在终端中输入此命令: im-config -n uim
  7. 重启

笔记:对于我来说,如果没有第 5 步,此解决方案就不起作用,因此,如果您知道如何帮助我和其他处于与我相同情况的人,这是我提出的另一个问题的链接:我的系统无法读取 .XCompose 文件

相关内容