2016-04-11 19:02:30 +03:00
|
|
|
<chapter xmlns="http://docbook.org/ns/docbook"
|
|
|
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
|
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
|
|
|
version="5.0"
|
|
|
|
xml:id="module-services-input-methods">
|
|
|
|
|
|
|
|
<title>Input Methods</title>
|
|
|
|
|
2018-04-05 11:43:56 +03:00
|
|
|
<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
|
2016-04-11 19:02:30 +03:00
|
|
|
there are keys on the keyboard.</para>
|
|
|
|
|
|
|
|
<para>The following input methods are available in NixOS:</para>
|
|
|
|
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem><para>IBus: The intelligent input bus.</para></listitem>
|
2018-04-05 11:43:56 +03:00
|
|
|
<listitem><para>Fcitx: A customizable lightweight input
|
2016-04-11 19:02:30 +03:00
|
|
|
method.</para></listitem>
|
|
|
|
<listitem><para>Nabi: A Korean input method based on XIM.</para></listitem>
|
2018-04-05 11:43:56 +03:00
|
|
|
<listitem><para>Uim: The universal input method, is a library with a XIM
|
2016-04-11 19:02:30 +03:00
|
|
|
bridge.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
|
|
|
|
<section><title>IBus</title>
|
|
|
|
|
2018-04-05 11:43:56 +03:00
|
|
|
<para>IBus is an Intelligent Input Bus. It provides full featured and user
|
2016-04-11 19:02:30 +03:00
|
|
|
friendly input method user interface.</para>
|
|
|
|
|
|
|
|
<para>The following snippet can be used to configure IBus:</para>
|
|
|
|
|
|
|
|
<programlisting>
|
|
|
|
i18n.inputMethod = {
|
2018-04-05 11:43:56 +03:00
|
|
|
<link linkend="opt-i18n.inputMethod.enabled">enabled</link> = "ibus";
|
|
|
|
<link linkend="opt-i18n.inputMethod.ibus.engines">ibus.engines</link> = with pkgs.ibus-engines; [ anthy hangul mozc ];
|
2016-04-11 19:02:30 +03:00
|
|
|
};
|
|
|
|
</programlisting>
|
|
|
|
|
2018-04-05 11:43:56 +03:00
|
|
|
<para><literal>i18n.inputMethod.ibus.engines</literal> is optional and can be
|
2016-04-11 19:02:30 +03:00
|
|
|
used to add extra IBus engines.</para>
|
|
|
|
|
|
|
|
<para>Available extra IBus engines are:</para>
|
|
|
|
|
|
|
|
<itemizedlist>
|
2018-04-05 11:43:56 +03:00
|
|
|
<listitem><para>Anthy (<literal>ibus-engines.anthy</literal>): Anthy is a
|
|
|
|
system for Japanese input method. It converts Hiragana text to Kana Kanji
|
2016-04-11 19:02:30 +03:00
|
|
|
mixed text.</para></listitem>
|
2018-04-05 11:43:56 +03:00
|
|
|
<listitem><para>Hangul (<literal>ibus-engines.hangul</literal>): Korean input
|
2016-04-11 19:02:30 +03:00
|
|
|
method.</para></listitem>
|
2018-04-05 11:43:56 +03:00
|
|
|
<listitem><para>m17n (<literal>ibus-engines.m17n</literal>): m17n is an input
|
|
|
|
method that uses input methods and corresponding icons in the m17n
|
2016-04-11 19:02:30 +03:00
|
|
|
database.</para></listitem>
|
2018-04-05 11:43:56 +03:00
|
|
|
<listitem><para>mozc (<literal>ibus-engines.mozc</literal>): A Japanese input
|
2016-04-11 19:02:30 +03:00
|
|
|
method from Google.</para></listitem>
|
2018-04-05 11:43:56 +03:00
|
|
|
<listitem><para>Table (<literal>ibus-engines.table</literal>): An input method
|
2016-04-11 19:02:30 +03:00
|
|
|
that load tables of input methods.</para></listitem>
|
2018-04-05 11:43:56 +03:00
|
|
|
<listitem><para>table-others (<literal>ibus-engines.table-others</literal>):
|
2016-10-01 21:07:28 +03:00
|
|
|
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:
|
|
|
|
<programlisting>
|
|
|
|
ibus.engines = with pkgs.ibus-engines; [ table table-others ];
|
|
|
|
</programlisting>
|
|
|
|
</para></listitem>
|
2016-04-11 19:02:30 +03:00
|
|
|
</itemizedlist>
|
2016-10-01 21:07:28 +03:00
|
|
|
|
|
|
|
<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>
|
2018-06-26 01:15:01 +03:00
|
|
|
|
|
|
|
<simplesect>
|
|
|
|
<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>
|
|
|
|
</simplesect>
|
2016-04-11 19:02:30 +03:00
|
|
|
</section>
|
|
|
|
|
|
|
|
<section><title>Fcitx</title>
|
|
|
|
|
2018-04-05 11:43:56 +03:00
|
|
|
<para>Fcitx is an input method framework with extension support. It has three
|
|
|
|
built-in Input Method Engine, Pinyin, QuWei and Table-based input
|
2016-04-11 19:02:30 +03:00
|
|
|
methods.</para>
|
|
|
|
<para>The following snippet can be used to configure Fcitx:</para>
|
|
|
|
|
|
|
|
<programlisting>
|
|
|
|
i18n.inputMethod = {
|
2018-04-05 11:43:56 +03:00
|
|
|
<link linkend="opt-i18n.inputMethod.enabled">enabled</link> = "fcitx";
|
|
|
|
<link linkend="opt-i18n.inputMethod.fcitx.engines">fcitx.engines</link> = with pkgs.fcitx-engines; [ mozc hangul m17n ];
|
2016-04-11 19:02:30 +03:00
|
|
|
};
|
|
|
|
</programlisting>
|
|
|
|
|
2018-04-05 11:43:56 +03:00
|
|
|
<para><literal>i18n.inputMethod.fcitx.engines</literal> is optional and can be
|
2016-04-11 19:02:30 +03:00
|
|
|
used to add extra Fcitx engines.</para>
|
|
|
|
|
|
|
|
<para>Available extra Fcitx engines are:</para>
|
|
|
|
|
|
|
|
<itemizedlist>
|
2018-04-05 11:43:56 +03:00
|
|
|
<listitem><para>Anthy (<literal>fcitx-engines.anthy</literal>): Anthy is a
|
|
|
|
system for Japanese input method. It converts Hiragana text to Kana Kanji
|
2016-04-11 19:02:30 +03:00
|
|
|
mixed text.</para></listitem>
|
2018-04-05 11:43:56 +03:00
|
|
|
<listitem><para>Chewing (<literal>fcitx-engines.chewing</literal>): Chewing is
|
|
|
|
an intelligent Zhuyin input method. It is one of the most popular input
|
2016-04-11 19:02:30 +03:00
|
|
|
methods among Traditional Chinese Unix users.</para></listitem>
|
2018-04-05 11:43:56 +03:00
|
|
|
<listitem><para>Hangul (<literal>fcitx-engines.hangul</literal>): Korean input
|
2016-04-11 19:02:30 +03:00
|
|
|
method.</para></listitem>
|
2018-04-05 11:43:56 +03:00
|
|
|
<listitem><para>Unikey (<literal>fcitx-engines.unikey</literal>): Vietnamese input
|
2016-08-11 16:15:40 +03:00
|
|
|
method.</para></listitem>
|
2018-04-05 11:43:56 +03:00
|
|
|
<listitem><para>m17n (<literal>fcitx-engines.m17n</literal>): m17n is an input
|
|
|
|
method that uses input methods and corresponding icons in the m17n
|
2016-04-11 19:02:30 +03:00
|
|
|
database.</para></listitem>
|
2018-04-05 11:43:56 +03:00
|
|
|
<listitem><para>mozc (<literal>fcitx-engines.mozc</literal>): A Japanese input
|
2016-04-11 19:02:30 +03:00
|
|
|
method from Google.</para></listitem>
|
2018-04-05 11:43:56 +03:00
|
|
|
<listitem><para>table-others (<literal>fcitx-engines.table-others</literal>):
|
2016-04-11 19:02:30 +03:00
|
|
|
Various table-based input methods.</para></listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section><title>Nabi</title>
|
|
|
|
|
2018-04-05 11:43:56 +03:00
|
|
|
<para>Nabi is an easy to use Korean X input method. It allows you to enter
|
|
|
|
phonetic Korean characters (hangul) and pictographic Korean characters
|
2016-04-11 19:02:30 +03:00
|
|
|
(hanja).</para>
|
|
|
|
<para>The following snippet can be used to configure Nabi:</para>
|
|
|
|
|
|
|
|
<programlisting>
|
|
|
|
i18n.inputMethod = {
|
2018-04-05 11:43:56 +03:00
|
|
|
<link linkend="opt-i18n.inputMethod.enabled">enabled</link> = "nabi";
|
2016-04-11 19:02:30 +03:00
|
|
|
};
|
|
|
|
</programlisting>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section><title>Uim</title>
|
|
|
|
|
2018-04-05 11:43:56 +03:00
|
|
|
<para>Uim (short for "universal input method") is a multilingual input method
|
2016-04-11 19:02:30 +03:00
|
|
|
framework. Applications can use it through so-called bridges.</para>
|
|
|
|
<para>The following snippet can be used to configure uim:</para>
|
|
|
|
|
|
|
|
<programlisting>
|
|
|
|
i18n.inputMethod = {
|
2018-04-05 11:43:56 +03:00
|
|
|
<link linkend="opt-i18n.inputMethod.enabled">enabled</link> = "uim";
|
2016-04-11 19:02:30 +03:00
|
|
|
};
|
|
|
|
</programlisting>
|
|
|
|
|
2018-04-05 11:43:56 +03:00
|
|
|
<para>Note: The <xref linkend="opt-i18n.inputMethod.uim.toolbar"/> option can be
|
2016-04-11 19:02:30 +03:00
|
|
|
used to choose uim toolbar.</para>
|
|
|
|
|
|
|
|
</section>
|
|
|
|
</chapter>
|