diff --git a/nixos/modules/i18n/input-method/default.xml b/nixos/modules/i18n/input-method/default.xml
index c55ac1ec245..a32ed100df3 100644
--- a/nixos/modules/i18n/input-method/default.xml
+++ b/nixos/modules/i18n/input-method/default.xml
@@ -88,6 +88,8 @@ i18n.inputMethod = {
methods among Traditional Chinese Unix users.
Hangul (fcitx-engines.hangul): Korean input
method.
+ Unikey (fcitx-engines.unikey): Vietnamese input
+ method.
m17n (fcitx-engines.m17n): m17n is an input
method that uses input methods and corresponding icons in the m17n
database.
diff --git a/pkgs/tools/inputmethods/fcitx-engines/fcitx-unikey/default.nix b/pkgs/tools/inputmethods/fcitx-engines/fcitx-unikey/default.nix
new file mode 100644
index 00000000000..b2cd71d1816
--- /dev/null
+++ b/pkgs/tools/inputmethods/fcitx-engines/fcitx-unikey/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, cmake, fcitx, gettext, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ name = "fcitx-unikey-${version}";
+ version = "0.2.5";
+
+ src = fetchurl {
+ url = "http://download.fcitx-im.org/fcitx-unikey/${name}.tar.xz";
+ sha256 = "063vc29v7ycaai98v3z4q319sv9sm91my17pmhblw1vifxnw02wf";
+ };
+
+ buildInputs = [ cmake fcitx gettext pkgconfig ];
+
+ preInstall = ''
+ substituteInPlace src/cmake_install.cmake \
+ --replace ${fcitx} $out
+ substituteInPlace data/cmake_install.cmake \
+ --replace ${fcitx} $out
+ '';
+
+ meta = with stdenv.lib; {
+ isFcitxEngine = true;
+ homepage = "https://github.com/fcitx/fcitx-unikey";
+ downloadPage = "http://download.fcitx-im.org/fcitx-table-other/";
+ description = "Fcitx wrapper for unikey";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ericsagnes ];
+ };
+
+}
\ No newline at end of file
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 0c36ac2e2db..a3fa19f57b3 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1528,6 +1528,8 @@ in
hangul = callPackage ../tools/inputmethods/fcitx-engines/fcitx-hangul { };
+ unikey = callPackage ../tools/inputmethods/fcitx-engines/fcitx-unikey { };
+
m17n = callPackage ../tools/inputmethods/fcitx-engines/fcitx-m17n { };
mozc = callPackage ../tools/inputmethods/fcitx-engines/fcitx-mozc {