···44 <listitem><para><literal>services/networking/pdnsd.nix</literal></para></listitem>
45 <listitem><para><literal>services/web-apps/pump.io.nix</literal></para></listitem>
46 <listitem><para><literal>services/security/haka.nix</literal></para></listitem>
047 </itemizedlist>
48</para>
49···197 <literal>services.hardware.opengl.extraPackages{,32}</literal> instead. You can
198 also specify VDPAU drivers there.</para>
199 </listitem>
00000000000000000000000000200</itemizedlist>
201202···213 <listitem>
214 <para><literal>ejabberd</literal> module is brought back and now works on
215 NixOS.</para>
000000216 </listitem>
217218</itemizedlist></para>
···44 <listitem><para><literal>services/networking/pdnsd.nix</literal></para></listitem>
45 <listitem><para><literal>services/web-apps/pump.io.nix</literal></para></listitem>
46 <listitem><para><literal>services/security/haka.nix</literal></para></listitem>
47+ <listitem><para><literal>i18n/inputMethod/default.nix</literal></para></listitem>
48 </itemizedlist>
49</para>
50···198 <literal>services.hardware.opengl.extraPackages{,32}</literal> instead. You can
199 also specify VDPAU drivers there.</para>
200 </listitem>
201+202+ <listitem>
203+ <para>
204+ <literal>programs.ibus</literal> moved to <literal>i18n.inputMethod.ibus</literal>.
205+ The option <literal>programs.ibus.plugins</literal> changed to <literal>i18n.inputMethod.ibus.engines</literal>
206+ and the option to enable ibus changed from <literal>programs.ibus.enable</literal> to
207+ <literal>i18n.inputMethod.enabled</literal>.
208+ <literal>i18n.inputMethod.enabled</literal> should be set to the used input method name,
209+ <literal>"ibus"</literal> for ibus.
210+ An example of the new style:
211+212+<programlisting>
213+i18n.inputMethod.enabled = "ibus";
214+i18n.inputMethod.ibus.engines = with pkgs.ibus-engines; [ anthy mozc ];
215+</programlisting>
216+217+That is equivalent to the old version:
218+219+<programlisting>
220+programs.ibus.enable = true;
221+programs.ibus.plugins = with pkgs; [ ibus-anthy mozc ];
222+</programlisting>
223+224+ </para>
225+ </listitem>
226+227</itemizedlist>
228229···240 <listitem>
241 <para><literal>ejabberd</literal> module is brought back and now works on
242 NixOS.</para>
243+ </listitem>
244+245+ <listitem>
246+ <para>Input method support was improved. New NixOS modules (fcitx, nabi and uim),
247+ fcitx engines (chewing, hangul, m17n, mozc and table-other) and ibus engines (hangul and m17n)
248+ have been added.</para>
249 </listitem>
250251</itemizedlist></para>
+29
nixos/modules/i18n/inputMethod/default.nix
···00000000000000000000000000000
···1+{ config, pkgs, lib, ... }:
2+3+with lib;
4+5+{
6+ options = {
7+ i18n.inputMethod = {
8+ enabled = mkOption {
9+ type = types.nullOr (types.enum [ "ibus" "fcitx" "nabi" "uim" ]);
10+ default = null;
11+ example = "fcitx";
12+ description = ''
13+ Select the enabled input method. Input methods is a software to input symbols that are not available on standard input devices.
14+15+ Input methods are specially used to input Chinese, Japanese and Korean characters.
16+17+ Currently the following input methods are available in NixOS:
18+19+ <itemizedlist>
20+ <listitem><para>ibus: The intelligent input bus, extra input engines can be added using <literal>i18n.inputMethod.ibus.engines</literal>.</para></listitem>
21+ <listitem><para>fcitx: A customizable lightweight input method, extra input engines can be added using <literal>i18n.inputMethod.fcitx.engines</literal>.</para></listitem>
22+ <listitem><para>nabi: A Korean input method based on XIM. Nabi doesn't support Qt 5.</para></listitem>
23+ <listitem><para>uim: The universal input method, is a library with a XIM bridge. uim mainly support Chinese, Japanese and Korean.</para></listitem>
24+ </itemizedlist>
25+ '';
26+ };
27+ };
28+ };
29+}
···1-{ stdenv, buildEnv, fcitx, makeWrapper, plugins }:
23# This is based on the pidgin-with-plugins package.
4# Users should be able to configure what plugins are used
···16drv = buildEnv {
17 name = "fcitx-with-plugins-" + (builtins.parseDrvName fcitx.name).version;
1819- paths = [ fcitx ] ++ plugins;
2021 postBuild = ''
22 # TODO: This could be avoided if buildEnv could be forced to create all directories
···1+{ stdenv, buildEnv, fcitx, fcitx-configtool, makeWrapper, plugins, kde5 }:
23# This is based on the pidgin-with-plugins package.
4# Users should be able to configure what plugins are used
···16drv = buildEnv {
17 name = "fcitx-with-plugins-" + (builtins.parseDrvName fcitx.name).version;
1819+ paths = [ fcitx fcitx-configtool kde5.fcitx-qt5 ] ++ plugins;
2021 postBuild = ''
22 # TODO: This could be avoided if buildEnv could be forced to create all directories