2016-04-11 17:02:30 +01: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">
|
2018-09-30 01:51:11 +01:00
|
|
|
<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>
|
|
|
|
<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>
|
|
|
|
</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>
|
2016-04-11 17:02:30 +01:00
|
|
|
|
|
|
|
<programlisting>
|
|
|
|
i18n.inputMethod = {
|
2018-04-05 09:43:56 +01: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 17:02:30 +01:00
|
|
|
};
|
|
|
|
</programlisting>
|
|
|
|
|
2018-09-30 01:51:11 +01:00
|
|
|
<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:
|
2016-10-01 19:07:28 +01:00
|
|
|
<programlisting>
|
|
|
|
ibus.engines = with pkgs.ibus-engines; [ table table-others ];
|
|
|
|
</programlisting>
|
2018-09-30 01:51:11 +01:00
|
|
|
</para>
|
|
|
|
</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>
|
|
|
|
|
|
|
|
<simplesect 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>
|
|
|
|
</simplesect>
|
|
|
|
</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>
|
2016-04-11 17:02:30 +01:00
|
|
|
|
|
|
|
<programlisting>
|
|
|
|
i18n.inputMethod = {
|
2018-04-05 09:43:56 +01: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 17:02:30 +01:00
|
|
|
};
|
|
|
|
</programlisting>
|
|
|
|
|
2018-09-30 01:51:11 +01:00
|
|
|
<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>
|
|
|
|
<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>
|
2016-04-11 17:02:30 +01:00
|
|
|
|
|
|
|
<programlisting>
|
|
|
|
i18n.inputMethod = {
|
2018-04-05 09:43:56 +01:00
|
|
|
<link linkend="opt-i18n.inputMethod.enabled">enabled</link> = "nabi";
|
2016-04-11 17:02:30 +01:00
|
|
|
};
|
|
|
|
</programlisting>
|
2018-09-30 01:51:11 +01:00
|
|
|
</section>
|
|
|
|
<section xml:id="module-services-input-methods-uim">
|
|
|
|
<title>Uim</title>
|
2016-04-11 17:02:30 +01:00
|
|
|
|
2018-09-30 01:51:11 +01:00
|
|
|
<para>
|
|
|
|
Uim (short for "universal input method") is a multilingual input method
|
|
|
|
framework. Applications can use it through so-called bridges.
|
|
|
|
</para>
|
2016-04-11 17:02:30 +01:00
|
|
|
|
2018-09-30 01:51:11 +01:00
|
|
|
<para>
|
|
|
|
The following snippet can be used to configure uim:
|
|
|
|
</para>
|
2016-04-11 17:02:30 +01:00
|
|
|
|
|
|
|
<programlisting>
|
|
|
|
i18n.inputMethod = {
|
2018-04-05 09:43:56 +01:00
|
|
|
<link linkend="opt-i18n.inputMethod.enabled">enabled</link> = "uim";
|
2016-04-11 17:02:30 +01:00
|
|
|
};
|
|
|
|
</programlisting>
|
|
|
|
|
2018-09-30 01:51:11 +01:00
|
|
|
<para>
|
|
|
|
Note: The <xref linkend="opt-i18n.inputMethod.uim.toolbar"/> option can be
|
|
|
|
used to choose uim toolbar.
|
|
|
|
</para>
|
|
|
|
</section>
|
2016-04-11 17:02:30 +01:00
|
|
|
</chapter>
|