···4444 <listitem><para><literal>services/networking/pdnsd.nix</literal></para></listitem>
4545 <listitem><para><literal>services/web-apps/pump.io.nix</literal></para></listitem>
4646 <listitem><para><literal>services/security/haka.nix</literal></para></listitem>
4747+ <listitem><para><literal>i18n/inputMethod/default.nix</literal></para></listitem>
4748 </itemizedlist>
4849</para>
4950···197198 <literal>services.hardware.opengl.extraPackages{,32}</literal> instead. You can
198199 also specify VDPAU drivers there.</para>
199200 </listitem>
201201+202202+ <listitem>
203203+ <para>
204204+ <literal>programs.ibus</literal> moved to <literal>i18n.inputMethod.ibus</literal>.
205205+ The option <literal>programs.ibus.plugins</literal> changed to <literal>i18n.inputMethod.ibus.engines</literal>
206206+ and the option to enable ibus changed from <literal>programs.ibus.enable</literal> to
207207+ <literal>i18n.inputMethod.enabled</literal>.
208208+ <literal>i18n.inputMethod.enabled</literal> should be set to the used input method name,
209209+ <literal>"ibus"</literal> for ibus.
210210+ An example of the new style:
211211+212212+<programlisting>
213213+i18n.inputMethod.enabled = "ibus";
214214+i18n.inputMethod.ibus.engines = with pkgs.ibus-engines; [ anthy mozc ];
215215+</programlisting>
216216+217217+That is equivalent to the old version:
218218+219219+<programlisting>
220220+programs.ibus.enable = true;
221221+programs.ibus.plugins = with pkgs; [ ibus-anthy mozc ];
222222+</programlisting>
223223+224224+ </para>
225225+ </listitem>
226226+200227</itemizedlist>
201228202229···213240 <listitem>
214241 <para><literal>ejabberd</literal> module is brought back and now works on
215242 NixOS.</para>
243243+ </listitem>
244244+245245+ <listitem>
246246+ <para>Input method support was improved. New NixOS modules (fcitx, nabi and uim),
247247+ fcitx engines (chewing, hangul, m17n, mozc and table-other) and ibus engines (hangul and m17n)
248248+ have been added.</para>
216249 </listitem>
217250218251</itemizedlist></para>
+29
nixos/modules/i18n/inputMethod/default.nix
···11+{ config, pkgs, lib, ... }:
22+33+with lib;
44+55+{
66+ options = {
77+ i18n.inputMethod = {
88+ enabled = mkOption {
99+ type = types.nullOr (types.enum [ "ibus" "fcitx" "nabi" "uim" ]);
1010+ default = null;
1111+ example = "fcitx";
1212+ description = ''
1313+ Select the enabled input method. Input methods is a software to input symbols that are not available on standard input devices.
1414+1515+ Input methods are specially used to input Chinese, Japanese and Korean characters.
1616+1717+ Currently the following input methods are available in NixOS:
1818+1919+ <itemizedlist>
2020+ <listitem><para>ibus: The intelligent input bus, extra input engines can be added using <literal>i18n.inputMethod.ibus.engines</literal>.</para></listitem>
2121+ <listitem><para>fcitx: A customizable lightweight input method, extra input engines can be added using <literal>i18n.inputMethod.fcitx.engines</literal>.</para></listitem>
2222+ <listitem><para>nabi: A Korean input method based on XIM. Nabi doesn't support Qt 5.</para></listitem>
2323+ <listitem><para>uim: The universal input method, is a library with a XIM bridge. uim mainly support Chinese, Japanese and Korean.</para></listitem>
2424+ </itemizedlist>
2525+ '';
2626+ };
2727+ };
2828+ };
2929+}
···11-{ stdenv, buildEnv, fcitx, makeWrapper, plugins }:
11+{ stdenv, buildEnv, fcitx, fcitx-configtool, makeWrapper, plugins, kde5 }:
2233# This is based on the pidgin-with-plugins package.
44# Users should be able to configure what plugins are used
···1616drv = buildEnv {
1717 name = "fcitx-with-plugins-" + (builtins.parseDrvName fcitx.name).version;
18181919- paths = [ fcitx ] ++ plugins;
1919+ paths = [ fcitx fcitx-configtool kde5.fcitx-qt5 ] ++ plugins;
20202121 postBuild = ''
2222 # TODO: This could be avoided if buildEnv could be forced to create all directories