python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / nixos / modules / i18n / input-method / default.xml
blobdd66316c730801b9e320cffc21baa18cd63a3109
1 <chapter xmlns="http://docbook.org/ns/docbook"
2          xmlns:xlink="http://www.w3.org/1999/xlink"
3          xmlns:xi="http://www.w3.org/2001/XInclude"
4          version="5.0"
5          xml:id="module-services-input-methods">
6  <title>Input Methods</title>
7  <para>
8   Input methods are an operating system component that allows any data, such as
9   keyboard strokes or mouse movements, to be received as input. In this way
10   users can enter characters and symbols not found on their input devices.
11   Using an input method is obligatory for any language that has more graphemes
12   than there are keys on the keyboard.
13  </para>
14  <para>
15   The following input methods are available in NixOS:
16  </para>
17  <itemizedlist>
18   <listitem>
19    <para>
20     IBus: The intelligent input bus.
21    </para>
22   </listitem>
23   <listitem>
24    <para>
25     Fcitx: A customizable lightweight input method.
26    </para>
27   </listitem>
28   <listitem>
29    <para>
30     Nabi: A Korean input method based on XIM.
31    </para>
32   </listitem>
33   <listitem>
34    <para>
35     Uim: The universal input method, is a library with a XIM bridge.
36    </para>
37   </listitem>
38   <listitem>
39    <para>
40     Hime: An extremely easy-to-use input method framework.
41    </para>
42   </listitem>
43   <listitem>
44     <para>
45      Kime: Korean IME
46     </para>
47   </listitem>
48  </itemizedlist>
49  <section xml:id="module-services-input-methods-ibus">
50   <title>IBus</title>
52   <para>
53    IBus is an Intelligent Input Bus. It provides full featured and user
54    friendly input method user interface.
55   </para>
57   <para>
58    The following snippet can be used to configure IBus:
59   </para>
61 <programlisting>
62 i18n.inputMethod = {
63   <link linkend="opt-i18n.inputMethod.enabled">enabled</link> = "ibus";
64   <link linkend="opt-i18n.inputMethod.ibus.engines">ibus.engines</link> = with pkgs.ibus-engines; [ anthy hangul mozc ];
66 </programlisting>
68   <para>
69    <literal>i18n.inputMethod.ibus.engines</literal> is optional and can be used
70    to add extra IBus engines.
71   </para>
73   <para>
74    Available extra IBus engines are:
75   </para>
77   <itemizedlist>
78    <listitem>
79     <para>
80      Anthy (<literal>ibus-engines.anthy</literal>): Anthy is a system for
81      Japanese input method. It converts Hiragana text to Kana Kanji mixed text.
82     </para>
83    </listitem>
84    <listitem>
85     <para>
86      Hangul (<literal>ibus-engines.hangul</literal>): Korean input method.
87     </para>
88    </listitem>
89    <listitem>
90     <para>
91      m17n (<literal>ibus-engines.m17n</literal>): m17n is an input method that
92      uses input methods and corresponding icons in the m17n database.
93     </para>
94    </listitem>
95    <listitem>
96     <para>
97      mozc (<literal>ibus-engines.mozc</literal>): A Japanese input method from
98      Google.
99     </para>
100    </listitem>
101    <listitem>
102     <para>
103      Table (<literal>ibus-engines.table</literal>): An input method that load
104      tables of input methods.
105     </para>
106    </listitem>
107    <listitem>
108     <para>
109      table-others (<literal>ibus-engines.table-others</literal>): Various
110      table-based input methods. To use this, and any other table-based input
111      methods, it must appear in the list of engines along with
112      <literal>table</literal>. For example:
113 <programlisting>
114 ibus.engines = with pkgs.ibus-engines; [ table table-others ];
115 </programlisting>
116     </para>
117    </listitem>
118   </itemizedlist>
120   <para>
121    To use any input method, the package must be added in the configuration, as
122    shown above, and also (after running <literal>nixos-rebuild</literal>) the
123    input method must be added from IBus' preference dialog.
124   </para>
126   <simplesect xml:id="module-services-input-methods-troubleshooting">
127    <title>Troubleshooting</title>
128    <para>
129     If IBus works in some applications but not others, a likely cause of this
130     is that IBus is depending on a different version of <literal>glib</literal>
131     to what the applications are depending on. This can be checked by running
132     <literal>nix-store -q --requisites &lt;path&gt; | grep glib</literal>,
133     where <literal>&lt;path&gt;</literal> is the path of either IBus or an
134     application in the Nix store. The <literal>glib</literal> packages must
135     match exactly. If they do not, uninstalling and reinstalling the
136     application is a likely fix.
137    </para>
138   </simplesect>
139  </section>
140  <section xml:id="module-services-input-methods-fcitx">
141   <title>Fcitx</title>
143   <para>
144    Fcitx is an input method framework with extension support. It has three
145    built-in Input Method Engine, Pinyin, QuWei and Table-based input methods.
146   </para>
148   <para>
149    The following snippet can be used to configure Fcitx:
150   </para>
152 <programlisting>
153 i18n.inputMethod = {
154   <link linkend="opt-i18n.inputMethod.enabled">enabled</link> = "fcitx";
155   <link linkend="opt-i18n.inputMethod.fcitx.engines">fcitx.engines</link> = with pkgs.fcitx-engines; [ mozc hangul m17n ];
157 </programlisting>
159   <para>
160    <literal>i18n.inputMethod.fcitx.engines</literal> is optional and can be
161    used to add extra Fcitx engines.
162   </para>
164   <para>
165    Available extra Fcitx engines are:
166   </para>
168   <itemizedlist>
169    <listitem>
170     <para>
171      Anthy (<literal>fcitx-engines.anthy</literal>): Anthy is a system for
172      Japanese input method. It converts Hiragana text to Kana Kanji mixed text.
173     </para>
174    </listitem>
175    <listitem>
176     <para>
177      Chewing (<literal>fcitx-engines.chewing</literal>): Chewing is an
178      intelligent Zhuyin input method. It is one of the most popular input
179      methods among Traditional Chinese Unix users.
180     </para>
181    </listitem>
182    <listitem>
183     <para>
184      Hangul (<literal>fcitx-engines.hangul</literal>): Korean input method.
185     </para>
186    </listitem>
187    <listitem>
188     <para>
189      Unikey (<literal>fcitx-engines.unikey</literal>): Vietnamese input method.
190     </para>
191    </listitem>
192    <listitem>
193     <para>
194      m17n (<literal>fcitx-engines.m17n</literal>): m17n is an input method that
195      uses input methods and corresponding icons in the m17n database.
196     </para>
197    </listitem>
198    <listitem>
199     <para>
200      mozc (<literal>fcitx-engines.mozc</literal>): A Japanese input method from
201      Google.
202     </para>
203    </listitem>
204    <listitem>
205     <para>
206      table-others (<literal>fcitx-engines.table-others</literal>): Various
207      table-based input methods.
208     </para>
209    </listitem>
210   </itemizedlist>
211  </section>
212  <section xml:id="module-services-input-methods-nabi">
213   <title>Nabi</title>
215   <para>
216    Nabi is an easy to use Korean X input method. It allows you to enter
217    phonetic Korean characters (hangul) and pictographic Korean characters
218    (hanja).
219   </para>
221   <para>
222    The following snippet can be used to configure Nabi:
223   </para>
225 <programlisting>
226 i18n.inputMethod = {
227   <link linkend="opt-i18n.inputMethod.enabled">enabled</link> = "nabi";
229 </programlisting>
230  </section>
231  <section xml:id="module-services-input-methods-uim">
232   <title>Uim</title>
234   <para>
235    Uim (short for "universal input method") is a multilingual input method
236    framework. Applications can use it through so-called bridges.
237   </para>
239   <para>
240    The following snippet can be used to configure uim:
241   </para>
243 <programlisting>
244 i18n.inputMethod = {
245   <link linkend="opt-i18n.inputMethod.enabled">enabled</link> = "uim";
247 </programlisting>
249   <para>
250    Note: The <xref linkend="opt-i18n.inputMethod.uim.toolbar"/> option can be
251    used to choose uim toolbar.
252   </para>
253  </section>
254  <section xml:id="module-services-input-methods-hime">
255   <title>Hime</title>
257   <para>
258    Hime is an extremely easy-to-use input method framework. It is lightweight,
259    stable, powerful and supports many commonly used input methods, including
260    Cangjie, Zhuyin, Dayi, Rank, Shrimp, Greek, Korean Pinyin, Latin Alphabet,
261    etc...
262   </para>
264   <para>
265    The following snippet can be used to configure Hime:
266   </para>
268 <programlisting>
269 i18n.inputMethod = {
270   <link linkend="opt-i18n.inputMethod.enabled">enabled</link> = "hime";
272 </programlisting>
273  </section>
274  <section xml:id="module-services-input-methods-kime">
275   <title>Kime</title>
277   <para>
278    Kime is Korean IME. it's built with Rust language and let you get simple, safe, fast Korean typing
279   </para>
281   <para>
282    The following snippet can be used to configure Kime:
283   </para>
285 <programlisting>
286 i18n.inputMethod = {
287   <link linkend="opt-i18n.inputMethod.enabled">enabled</link> = "kime";
289 </programlisting>
290  </section>
291 </chapter>