mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-19 04:02:10 +00:00
274 lines
8.5 KiB
XML
274 lines
8.5 KiB
XML
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="module-services-input-methods">
|
|
<title>Input Methods</title>
|
|
<para>
|
|
Input methods are an operating system component that allows any
|
|
data, such as keyboard strokes or mouse movements, to be received as
|
|
input. In this way users can enter characters and symbols not found
|
|
on their input devices. Using an input method is obligatory for any
|
|
language that has more graphemes than there are keys on the
|
|
keyboard.
|
|
</para>
|
|
<para>
|
|
The following input methods are available in NixOS:
|
|
</para>
|
|
<itemizedlist spacing="compact">
|
|
<listitem>
|
|
<para>
|
|
IBus: The intelligent input bus.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Fcitx: A customizable lightweight input method.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Nabi: A Korean input method based on XIM.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Uim: The universal input method, is a library with a XIM bridge.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Hime: An extremely easy-to-use input method framework.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Kime: Korean IME
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<section xml:id="module-services-input-methods-ibus">
|
|
<title>IBus</title>
|
|
<para>
|
|
IBus is an Intelligent Input Bus. It provides full featured and
|
|
user friendly input method user interface.
|
|
</para>
|
|
<para>
|
|
The following snippet can be used to configure IBus:
|
|
</para>
|
|
<programlisting>
|
|
i18n.inputMethod = {
|
|
enabled = "ibus";
|
|
ibus.engines = with pkgs.ibus-engines; [ anthy hangul mozc ];
|
|
};
|
|
</programlisting>
|
|
<para>
|
|
<literal>i18n.inputMethod.ibus.engines</literal> is optional and
|
|
can be used to add extra IBus engines.
|
|
</para>
|
|
<para>
|
|
Available extra IBus engines are:
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Anthy (<literal>ibus-engines.anthy</literal>): Anthy is a
|
|
system for Japanese input method. It converts Hiragana text to
|
|
Kana Kanji mixed text.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Hangul (<literal>ibus-engines.hangul</literal>): Korean input
|
|
method.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
m17n (<literal>ibus-engines.m17n</literal>): m17n is an input
|
|
method that uses input methods and corresponding icons in the
|
|
m17n database.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
mozc (<literal>ibus-engines.mozc</literal>): A Japanese input
|
|
method from Google.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Table (<literal>ibus-engines.table</literal>): An input method
|
|
that load tables of input methods.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
table-others (<literal>ibus-engines.table-others</literal>):
|
|
Various table-based input methods. To use this, and any other
|
|
table-based input methods, it must appear in the list of
|
|
engines along with <literal>table</literal>. For example:
|
|
</para>
|
|
<programlisting>
|
|
ibus.engines = with pkgs.ibus-engines; [ table table-others ];
|
|
</programlisting>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<para>
|
|
To use any input method, the package must be added in the
|
|
configuration, as shown above, and also (after running
|
|
<literal>nixos-rebuild</literal>) the input method must be added
|
|
from IBus' preference dialog.
|
|
</para>
|
|
<section xml:id="module-services-input-methods-troubleshooting">
|
|
<title>Troubleshooting</title>
|
|
<para>
|
|
If IBus works in some applications but not others, a likely
|
|
cause of this is that IBus is depending on a different version
|
|
of <literal>glib</literal> to what the applications are
|
|
depending on. This can be checked by running
|
|
<literal>nix-store -q --requisites <path> | grep glib</literal>,
|
|
where <literal><path></literal> is the path of either IBus
|
|
or an application in the Nix store. The <literal>glib</literal>
|
|
packages must match exactly. If they do not, uninstalling and
|
|
reinstalling the application is a likely fix.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section xml:id="module-services-input-methods-fcitx">
|
|
<title>Fcitx</title>
|
|
<para>
|
|
Fcitx is an input method framework with extension support. It has
|
|
three built-in Input Method Engine, Pinyin, QuWei and Table-based
|
|
input methods.
|
|
</para>
|
|
<para>
|
|
The following snippet can be used to configure Fcitx:
|
|
</para>
|
|
<programlisting>
|
|
i18n.inputMethod = {
|
|
enabled = "fcitx";
|
|
fcitx.engines = with pkgs.fcitx-engines; [ mozc hangul m17n ];
|
|
};
|
|
</programlisting>
|
|
<para>
|
|
<literal>i18n.inputMethod.fcitx.engines</literal> is optional and
|
|
can be used to add extra Fcitx engines.
|
|
</para>
|
|
<para>
|
|
Available extra Fcitx engines are:
|
|
</para>
|
|
<itemizedlist spacing="compact">
|
|
<listitem>
|
|
<para>
|
|
Anthy (<literal>fcitx-engines.anthy</literal>): Anthy is a
|
|
system for Japanese input method. It converts Hiragana text to
|
|
Kana Kanji mixed text.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Chewing (<literal>fcitx-engines.chewing</literal>): Chewing is
|
|
an intelligent Zhuyin input method. It is one of the most
|
|
popular input methods among Traditional Chinese Unix users.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Hangul (<literal>fcitx-engines.hangul</literal>): Korean input
|
|
method.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Unikey (<literal>fcitx-engines.unikey</literal>): Vietnamese
|
|
input method.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
m17n (<literal>fcitx-engines.m17n</literal>): m17n is an input
|
|
method that uses input methods and corresponding icons in the
|
|
m17n database.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
mozc (<literal>fcitx-engines.mozc</literal>): A Japanese input
|
|
method from Google.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
table-others (<literal>fcitx-engines.table-others</literal>):
|
|
Various table-based input methods.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</section>
|
|
<section xml:id="module-services-input-methods-nabi">
|
|
<title>Nabi</title>
|
|
<para>
|
|
Nabi is an easy to use Korean X input method. It allows you to
|
|
enter phonetic Korean characters (hangul) and pictographic Korean
|
|
characters (hanja).
|
|
</para>
|
|
<para>
|
|
The following snippet can be used to configure Nabi:
|
|
</para>
|
|
<programlisting>
|
|
i18n.inputMethod = {
|
|
enabled = "nabi";
|
|
};
|
|
</programlisting>
|
|
</section>
|
|
<section xml:id="module-services-input-methods-uim">
|
|
<title>Uim</title>
|
|
<para>
|
|
Uim (short for "universal input method") is a
|
|
multilingual input method framework. Applications can use it
|
|
through so-called bridges.
|
|
</para>
|
|
<para>
|
|
The following snippet can be used to configure uim:
|
|
</para>
|
|
<programlisting>
|
|
i18n.inputMethod = {
|
|
enabled = "uim";
|
|
};
|
|
</programlisting>
|
|
<para>
|
|
Note: The <xref linkend="opt-i18n.inputMethod.uim.toolbar"></xref>
|
|
option can be used to choose uim toolbar.
|
|
</para>
|
|
</section>
|
|
<section xml:id="module-services-input-methods-hime">
|
|
<title>Hime</title>
|
|
<para>
|
|
Hime is an extremely easy-to-use input method framework. It is
|
|
lightweight, stable, powerful and supports many commonly used
|
|
input methods, including Cangjie, Zhuyin, Dayi, Rank, Shrimp,
|
|
Greek, Korean Pinyin, Latin Alphabet, etc...
|
|
</para>
|
|
<para>
|
|
The following snippet can be used to configure Hime:
|
|
</para>
|
|
<programlisting>
|
|
i18n.inputMethod = {
|
|
enabled = "hime";
|
|
};
|
|
</programlisting>
|
|
</section>
|
|
<section xml:id="module-services-input-methods-kime">
|
|
<title>Kime</title>
|
|
<para>
|
|
Kime is Korean IME. it's built with Rust language and let you get
|
|
simple, safe, fast Korean typing
|
|
</para>
|
|
<para>
|
|
The following snippet can be used to configure Kime:
|
|
</para>
|
|
<programlisting>
|
|
i18n.inputMethod = {
|
|
enabled = "kime";
|
|
};
|
|
</programlisting>
|
|
</section>
|
|
</chapter>
|