From f67f57e0f14f42bdc3d79630010823269a0086f6 Mon Sep 17 00:00:00 2001 From: Poscat Date: Sun, 13 Dec 2020 10:57:55 +0800 Subject: [PATCH 01/13] xcb-imdkit: Init at 1.0.1 --- .../libraries/xcb-imdkit/default.nix | 41 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 43 insertions(+) create mode 100644 pkgs/development/libraries/xcb-imdkit/default.nix diff --git a/pkgs/development/libraries/xcb-imdkit/default.nix b/pkgs/development/libraries/xcb-imdkit/default.nix new file mode 100644 index 00000000000..72ce94d98f1 --- /dev/null +++ b/pkgs/development/libraries/xcb-imdkit/default.nix @@ -0,0 +1,41 @@ +{ stdenv +, fetchFromGitHub +, cmake +, extra-cmake-modules +, uthash +, xcbutil +, xcbutilkeysyms +, xorgproto +}: + +stdenv.mkDerivation rec { + pname = "xcb-imdkit"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "fcitx"; + repo = "xcb-imdkit"; + rev = version; + sha256 = "dvax+Wj8+tHdiL6txcuugrOlRnxdIW25DYO4iNAYK8M="; + }; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + xorgproto + uthash + ]; + + buildInputs = [ + xcbutil + xcbutilkeysyms + ]; + + meta = with stdenv.lib; { + description = "input method development support for xcb"; + homepage = "https://github.com/fcitx/xcb-imdkit"; + license = licenses.lgpl21Plus; + maintainers = with maintainers; [ poscat ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f39e097ec08..19ac0d0bf80 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12442,6 +12442,8 @@ in xc3sprog = callPackage ../development/tools/misc/xc3sprog { }; + xcb-imdkit = callPackage ../development/libraries/xcb-imdkit { }; + xcodebuild = callPackage ../development/tools/xcbuild/wrapper.nix { inherit (darwin.apple_sdk.frameworks) CoreServices CoreGraphics ImageIO; }; From 85a30b1fd8b86ce96fe6df2773ff782b79290917 Mon Sep 17 00:00:00 2001 From: Poscat Date: Sun, 13 Dec 2020 11:06:44 +0800 Subject: [PATCH 02/13] fcitx5: Init at 5.0.3 --- pkgs/tools/inputmethods/fcitx5/default.nix | 100 +++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 102 insertions(+) create mode 100644 pkgs/tools/inputmethods/fcitx5/default.nix diff --git a/pkgs/tools/inputmethods/fcitx5/default.nix b/pkgs/tools/inputmethods/fcitx5/default.nix new file mode 100644 index 00000000000..5fa85064fa3 --- /dev/null +++ b/pkgs/tools/inputmethods/fcitx5/default.nix @@ -0,0 +1,100 @@ +{ stdenv +, fetchurl +, fetchFromGitHub +, pkg-config +, cmake +, extra-cmake-modules +, cairo +, cldr-emoji-annotation +, pango +, fribidi +, fmt +, wayland +, systemd +, wayland-protocols +, json_c +, isocodes +, xkeyboard_config +, enchant +, gdk-pixbuf +, libGL +, libevent +, libuuid +, libselinux +, libXdmcp +, libsepol +, libxkbcommon +, libthai +, libdatrie +, xcbutilkeysyms +, pcre +, xcbutilwm +, xcb-imdkit +, libxkbfile +}: +let + enDictVer = "20121020"; + enDict = fetchurl { + url = "https://download.fcitx-im.org/data/en_dict-${enDictVer}.tar.gz"; + sha256 = "1svcb97sq7nrywp5f2ws57cqvlic8j6p811d9ngflplj8xw5sjn4"; + }; +in +stdenv.mkDerivation rec { + pname = "fcitx5"; + version = "5.0.3"; + + src = fetchFromGitHub { + owner = "fcitx"; + repo = "fcitx5"; + rev = version; + sha256 = "QYMH0WbhHqDKUvpj1VOB8U5sbBD89H6moLFkQBJijZA="; + }; + + prePatch = '' + ln -s ${enDict} src/modules/spell/dict/$(stripHash ${enDict}) + ''; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + pkg-config + ]; + + buildInputs = [ + fmt + isocodes + cairo + enchant + pango + libthai + libdatrie + fribidi + systemd + gdk-pixbuf + wayland + wayland-protocols + cldr-emoji-annotation + json_c + libGL + libevent + libuuid + libselinux + libsepol + libXdmcp + libxkbcommon + pcre + xcbutilwm + xcbutilkeysyms + xcb-imdkit + xkeyboard_config + libxkbfile + ]; + + meta = with stdenv.lib; { + description = "Next generation of fcitx"; + homepage = "https://github.com/fcitx/fcitx5"; + license = licenses.lgpl21Plus; + maintainers = with maintainers; [ poscat ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 19ac0d0bf80..b1e3b2ff8c7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3932,6 +3932,8 @@ in chewing-editor = libsForQt5.callPackage ../applications/misc/chewing-editor { }; + fcitx5 = libsForQt5.callPackage ../tools/inputmethods/fcitx5 { }; + fcppt = callPackage ../development/libraries/fcppt { }; fcrackzip = callPackage ../tools/security/fcrackzip { }; From e42b4d312fb39a38ac487671c233dfe868e9d6db Mon Sep 17 00:00:00 2001 From: Poscat Date: Sun, 13 Dec 2020 11:07:21 +0800 Subject: [PATCH 03/13] fcitx5-qt: Init at 5.0.1 --- pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix | 46 ++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 48 insertions(+) create mode 100644 pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix new file mode 100644 index 00000000000..580082096ec --- /dev/null +++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix @@ -0,0 +1,46 @@ +{ stdenv +, mkDerivation +, fetchFromGitHub +, cmake +, extra-cmake-modules +, fcitx5 +, qtx11extras +, libxcb +, libXdmcp +}: + +mkDerivation rec { + pname = "fcitx5-qt"; + version = "5.0.1"; + + src = fetchFromGitHub { + owner = "fcitx"; + repo = "fcitx5-qt"; + rev = version; + sha256 = "BVOumk2xj3vmwmm4KwiktQhWyTuUA2OFwYXNR6HgwyM="; + }; + + cmakeFlags = [ + "-DENABLE_QT4=0" + ]; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + ]; + + buildInputs = [ + fcitx5 + qtx11extras + libxcb + libXdmcp + ]; + + meta = with stdenv.lib; { + description = "Fcitx5 Qt Library"; + homepage = "https://github.com/fcitx/fcitx5-qt"; + license = with licenses; [ lgpl21Plus bsd3 ]; + maintainers = with maintainers; [ poscat ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b1e3b2ff8c7..e066edc52dd 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15842,6 +15842,8 @@ in fcitx-qt5 = callPackage ../tools/inputmethods/fcitx/fcitx-qt5.nix { }; + fcitx5-qt = callPackage ../tools/inputmethods/fcitx5/fcitx5-qt.nix { }; + qgpgme = callPackage ../development/libraries/gpgme { }; grantlee = callPackage ../development/libraries/grantlee/5 { }; From 5409030ea1a8091e06a7c1cdc2ced196d3ed79d9 Mon Sep 17 00:00:00 2001 From: Poscat Date: Sun, 13 Dec 2020 11:13:52 +0800 Subject: [PATCH 04/13] fcitx5-gtk: Init at 5.0.1 --- pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix | 71 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 73 insertions(+) create mode 100644 pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix new file mode 100644 index 00000000000..ce157f79253 --- /dev/null +++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix @@ -0,0 +1,71 @@ +{ stdenv +, fetchurl +, fetchFromGitHub +, cmake +, extra-cmake-modules +, fcitx5 +, gobject-introspection +, gtk2 +, gtk3 +, pcre +, libuuid +, libselinux +, libsepol +, libthai +, libdatrie +, libXdmcp +, libxkbcommon +, epoxy +, dbus +, at-spi2-core +, libXtst +, withGTK2 ? false +}: + +stdenv.mkDerivation rec { + pname = "fcitx5-gtk"; + version = "5.0.1"; + + src = fetchFromGitHub { + owner = "fcitx"; + repo = "fcitx5-gtk"; + rev = version; + sha256 = "rkusIqMRQMTjcpJR335as1xUQrzD9dLVB/wrLstPXPY="; + }; + + cmakeFlags = [ + "-DGOBJECT_INTROSPECTION_GIRDIR=share/gir-1.0" + "-DGOBJECT_INTROSPECTION_TYPELIBDIR=lib/girepository-1.0" + ] ++ stdenv.lib.optional (! withGTK2) "-DENABLE_GTK2_IM_MODULE=off"; + + buildInputs = [ + gtk3 + gobject-introspection + fcitx5 + pcre + libuuid + libselinux + libsepol + libthai + libdatrie + libXdmcp + libxkbcommon + epoxy + dbus + at-spi2-core + libXtst + ] ++ stdenv.lib.optional withGTK2 gtk2; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + ]; + + meta = with stdenv.lib; { + description = "Fcitx5 gtk im module and glib based dbus client library"; + homepage = "https://github.com/fcitx/fcitx5-gtk"; + license = licenses.lgpl21Plus; + maintainers = with maintainers; [ poscat ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e066edc52dd..79220de9818 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3934,6 +3934,8 @@ in fcitx5 = libsForQt5.callPackage ../tools/inputmethods/fcitx5 { }; + fcitx5-gtk = callPackage ../tools/inputmethods/fcitx5/fcitx5-gtk.nix { }; + fcppt = callPackage ../development/libraries/fcppt { }; fcrackzip = callPackage ../tools/security/fcrackzip { }; From 1da3fbf0ebb0ec4ecd2fd1d20ba789f303758ab4 Mon Sep 17 00:00:00 2001 From: Poscat Date: Sun, 13 Dec 2020 11:14:54 +0800 Subject: [PATCH 05/13] fcitx5-configtool: Init at 5.0.1 --- .../inputmethods/fcitx5/fcitx5-configtool.nix | 60 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 62 insertions(+) create mode 100644 pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix new file mode 100644 index 00000000000..e5b55c26cd4 --- /dev/null +++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix @@ -0,0 +1,60 @@ +{ stdenv +, mkDerivation +, fetchFromGitHub +, cmake +, extra-cmake-modules +, fcitx5 +, fcitx5-qt +, qtx11extras +, kwidgetsaddons +, kdeclarative +, kirigami2 +, isocodes +, xkeyboardconfig +, libxkbfile +, libXdmcp +, kcmSupport ? true +}: + +mkDerivation rec { + pname = "fcitx5-configtool"; + version = "5.0.1"; + + src = fetchFromGitHub { + owner = "fcitx"; + repo = "fcitx5-configtool"; + rev = version; + sha256 = "npSqd0R6bqKc+JxYCGcfVzgNLpuLtnHq6zM58smZ8/I="; + }; + + cmakeFlags = [ + "-DKDE_INSTALL_USE_QT_SYS_PATHS=ON" + ]; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + ]; + + buildInputs = [ + fcitx5 + fcitx5-qt + qtx11extras + kirigami2 + isocodes + xkeyboardconfig + libxkbfile + libXdmcp + ] ++ stdenv.lib.optionals kcmSupport [ + kdeclarative + kwidgetsaddons + ]; + + meta = with stdenv.lib; { + description = "Configuration Tool for Fcitx5"; + homepage = "https://github.com/fcitx/fcitx5-configtool"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ poscat ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 79220de9818..ea8f4572aa2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3934,6 +3934,8 @@ in fcitx5 = libsForQt5.callPackage ../tools/inputmethods/fcitx5 { }; + fcitx5-configtool = libsForQt5.callPackage ../tools/inputmethods/fcitx5/fcitx5-configtool.nix { }; + fcitx5-gtk = callPackage ../tools/inputmethods/fcitx5/fcitx5-gtk.nix { }; fcppt = callPackage ../development/libraries/fcppt { }; From ea503004994399098189d5b7662fbf61def8ab6f Mon Sep 17 00:00:00 2001 From: Poscat Date: Sun, 13 Dec 2020 11:16:03 +0800 Subject: [PATCH 06/13] fcitx5-rime: Init at 5.0.2 --- .../tools/inputmethods/fcitx5/fcitx5-rime.nix | 47 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 49 insertions(+) create mode 100644 pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix new file mode 100644 index 00000000000..9992e198758 --- /dev/null +++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix @@ -0,0 +1,47 @@ +{ stdenv +, fetchurl +, fetchFromGitHub +, pkgconfig +, cmake +, extra-cmake-modules +, gettext +, fcitx5 +, librime +, brise +}: + +stdenv.mkDerivation rec { + pname = "fcitx5-rime"; + version = "5.0.2"; + + src = fetchFromGitHub { + owner = "fcitx"; + repo = "fcitx5-rime"; + rev = version; + sha256 = "cVCTsD1Iw6OtyYFpxff3ix2CubRTnDaBevAYA4I9Ai8="; + }; + + cmakeFlags = [ + "-DRIME_DATA_DIR=${brise}/share/rime-data" + ]; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + pkgconfig + gettext + ]; + + buildInputs = [ + fcitx5 + librime + ]; + + meta = with stdenv.lib; { + description = "RIME support for Fcitx5"; + homepage = "https://github.com/fcitx/fcitx5-rime"; + license = licenses.lgpl21Plus; + maintainers = with maintainers; [ poscat ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ea8f4572aa2..f1da7ddaddc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3938,6 +3938,8 @@ in fcitx5-gtk = callPackage ../tools/inputmethods/fcitx5/fcitx5-gtk.nix { }; + fcitx5-rime = callPackage ../tools/inputmethods/fcitx5/fcitx5-rime.nix { }; + fcppt = callPackage ../development/libraries/fcppt { }; fcrackzip = callPackage ../tools/security/fcrackzip { }; From ea1e46a232ccc7b2ebe1d90417cc6939119dfe55 Mon Sep 17 00:00:00 2001 From: Poscat Date: Sun, 13 Dec 2020 11:17:47 +0800 Subject: [PATCH 07/13] libime: Init at 1.0.2 --- pkgs/development/libraries/libime/default.nix | 63 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 65 insertions(+) create mode 100644 pkgs/development/libraries/libime/default.nix diff --git a/pkgs/development/libraries/libime/default.nix b/pkgs/development/libraries/libime/default.nix new file mode 100644 index 00000000000..476d2419ef3 --- /dev/null +++ b/pkgs/development/libraries/libime/default.nix @@ -0,0 +1,63 @@ +{ stdenv +, fetchurl +, fetchFromGitHub +, cmake +, extra-cmake-modules +, boost +, python3 +, fcitx5 +}: + +let + table = fetchurl { + url = "https://download.fcitx-im.org/data/table.tar.gz"; + sha256 = "1dw7mgbaidv3vqy0sh8dbfv8631d2zwv5mlb7npf69a1f8y0b5k1"; + }; + arpaVer = "20140820"; + arpa = fetchurl { + url = "https://download.fcitx-im.org/data/lm_sc.3gm.arpa-${arpaVer}.tar.bz2"; + sha256 = "0bqy3l7mif0yygjrcm65qallszgn17mvgyxhvz7a54zaamyan6vm"; + }; + dictVer = "20200715"; + dict = fetchurl { + url = "https://download.fcitx-im.org/data/dict.utf8-${dictVer}.tar.xz"; + sha256 = "1ln7r64j8mc7wz4j0q4v8wd68wy7qqz4bz1dpxk7zqbdvza6rhr3"; + }; +in +stdenv.mkDerivation rec { + pname = "libime"; + version = "1.0.2"; + + src = fetchFromGitHub { + owner = "fcitx"; + repo = "libime"; + rev = version; + sha256 = "hDfxuDIj9qx5d+UFwxDdP2PCboPnUV1n+VVoEIGsucM="; + fetchSubmodules = true; + }; + + prePatch = '' + ln -s ${table} data/$(stripHash ${table}) + ln -s ${arpa} data/$(stripHash ${arpa}) + ln -s ${dict} data/$(stripHash ${dict}) + ''; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + python3 + ]; + + buildInputs = [ + boost + fcitx5 + ]; + + meta = with stdenv.lib; { + description = "A library to support generic input method implementation"; + homepage = "https://github.com/fcitx/libime"; + license = licenses.lgpl21Plus; + maintainers = with maintainers; [ poscat ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f1da7ddaddc..88b56c5e66f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14591,6 +14591,8 @@ in libimagequant = callPackage ../development/libraries/libimagequant {}; + libime = callPackage ../development/libraries/libime { }; + libinfinity = callPackage ../development/libraries/libinfinity { }; libinput = callPackage ../development/libraries/libinput { From 208b419ab518cf9fe78ed4817c66edbbff47edcd Mon Sep 17 00:00:00 2001 From: Poscat Date: Sun, 13 Dec 2020 11:23:55 +0800 Subject: [PATCH 08/13] fcitx5-lua: Init at 5.0.1 --- pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix | 40 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 42 insertions(+) create mode 100644 pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix new file mode 100644 index 00000000000..310cae035ba --- /dev/null +++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix @@ -0,0 +1,40 @@ +{ stdenv +, fetchFromGitHub +, cmake +, extra-cmake-modules +, fcitx5 +, lua5_3 +, luaPackage ? lua5_3 +, gettext +}: + +stdenv.mkDerivation rec { + pname = "fcitx5-lua"; + version = "5.0.1"; + + src = fetchFromGitHub { + owner = "fcitx"; + repo = "fcitx5-lua"; + rev = "${version}"; + sha256 = "OiTk9ldqBqF7WT1KY71hacLD6OQQNO05F7+cSXlli40="; + }; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + ]; + + buildInputs = [ + fcitx5 + luaPackage + gettext + ]; + + meta = with stdenv.lib; { + description = "Lua support for Fcitx 5"; + homepage = "https://github.com/fcitx/fcitx5-lua"; + license = licenses.lgpl21Plus; + maintainers = with maintainers; [ poscat ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 88b56c5e66f..fcf8bc31c26 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3936,6 +3936,8 @@ in fcitx5-configtool = libsForQt5.callPackage ../tools/inputmethods/fcitx5/fcitx5-configtool.nix { }; + fcitx5-lua = callPackage ../tools/inputmethods/fcitx5/fcitx5-lua.nix { }; + fcitx5-gtk = callPackage ../tools/inputmethods/fcitx5/fcitx5-gtk.nix { }; fcitx5-rime = callPackage ../tools/inputmethods/fcitx5/fcitx5-rime.nix { }; From 3dbd3d11e33e824ae6c9d59f6709d0dd838c6f27 Mon Sep 17 00:00:00 2001 From: Poscat Date: Sun, 13 Dec 2020 11:24:30 +0800 Subject: [PATCH 09/13] fcitx5-chinese-addons: Init at 5.0.2 --- .../fcitx5/fcitx5-chinese-addons.nix | 76 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 78 insertions(+) create mode 100644 pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix new file mode 100644 index 00000000000..2b8a07537b0 --- /dev/null +++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix @@ -0,0 +1,76 @@ +{ stdenv +, mkDerivation +, fetchurl +, fetchFromGitHub +, cmake +, extra-cmake-modules +, boost +, libime +, fcitx5 +, fcitx5-qt +, fcitx5-lua +, qtwebengine +, opencc +, curl +, fmt +, luaSupport ? true +}: + +let + pyStrokeVer = "20121124"; + pyStroke = fetchurl { + url = "http://download.fcitx-im.org/data/py_stroke-${pyStrokeVer}.tar.gz"; + sha256 = "0j72ckmza5d671n2zg0psg7z9iils4gyxz7jgkk54fd4pyljiccf"; + }; + pyTableVer = "20121124"; + pyTable = fetchurl { + url = "http://download.fcitx-im.org/data/py_table-${pyTableVer}.tar.gz"; + sha256 = "011cg7wssssm6hm564cwkrrnck2zj5rxi7p9z5akvhg6gp4nl522"; + }; +in + +mkDerivation rec { + pname = "fcitx5-chinese-addons"; + version = "5.0.2"; + + src = fetchFromGitHub { + owner = "fcitx"; + repo = "fcitx5-chinese-addons"; + rev = version; + sha256 = "11UIMrwzZqO8nrQx5oubeoQN8hspL1mvHw5Dc9sVOqQ="; + }; + + cmakeFlags = [ + "-DUSE_WEBKIT=off" + ]; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + boost + fcitx5-lua + ]; + + prePatch = '' + ln -s ${pyStroke} modules/pinyinhelper/$(stripHash ${pyStroke}) + ln -s ${pyTable} modules/pinyinhelper/$(stripHash ${pyTable}) + ''; + + buildInputs = [ + fcitx5 + fcitx5-qt + libime + curl + opencc + qtwebengine + fmt + ] ++ stdenv.lib.optional luaSupport fcitx5-lua; + + meta = with stdenv.lib; { + description = "Addons related to Chinese, including IME previous bundled inside fcitx4"; + homepage = "https://github.com/fcitx/fcitx5-chinese-addons"; + license = with licenses; [ gpl2Plus lgpl21Plus ]; + maintainers = with maintainers; [ poscat ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fcf8bc31c26..5f7661f5852 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3934,6 +3934,8 @@ in fcitx5 = libsForQt5.callPackage ../tools/inputmethods/fcitx5 { }; + fcitx5-chinese-addons = libsForQt5.callPackage ../tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix { }; + fcitx5-configtool = libsForQt5.callPackage ../tools/inputmethods/fcitx5/fcitx5-configtool.nix { }; fcitx5-lua = callPackage ../tools/inputmethods/fcitx5/fcitx5-lua.nix { }; From 1b06ca4b0d74a0d04e64896a7b38c95e2cfc77ac Mon Sep 17 00:00:00 2001 From: Poscat Date: Sun, 13 Dec 2020 11:27:15 +0800 Subject: [PATCH 10/13] fcitx5-with-addons: Init --- pkgs/tools/inputmethods/fcitx5/with-addons.nix | 18 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 20 insertions(+) create mode 100644 pkgs/tools/inputmethods/fcitx5/with-addons.nix diff --git a/pkgs/tools/inputmethods/fcitx5/with-addons.nix b/pkgs/tools/inputmethods/fcitx5/with-addons.nix new file mode 100644 index 00000000000..854020effea --- /dev/null +++ b/pkgs/tools/inputmethods/fcitx5/with-addons.nix @@ -0,0 +1,18 @@ +{ symlinkJoin, makeWrapper, fcitx5, fcitx5-lua, fcitx5-configtool, fcitx5-qt, fcitx5-gtk, addons ? [] }: + +symlinkJoin { + name = "fcitx5-with-addons-${fcitx5.version}"; + + paths = [ fcitx5 fcitx5-configtool fcitx5-lua fcitx5-qt fcitx5-gtk ] ++ addons; + + buildInputs = [ makeWrapper ]; + + postBuild = '' + wrapProgram $out/bin/fcitx5 \ + --prefix FCITX_ADDON_DIRS : "$out/lib/fcitx5" \ + --suffix XDG_DATA_DIRS : "$out/share" \ + --suffix PATH : "$out/bin" + ''; + + meta = fcitx5.meta; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5f7661f5852..1f9a3561f89 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3934,6 +3934,8 @@ in fcitx5 = libsForQt5.callPackage ../tools/inputmethods/fcitx5 { }; + fcitx5-with-addons = libsForQt5.callPackage ../tools/inputmethods/fcitx5/with-addons.nix { }; + fcitx5-chinese-addons = libsForQt5.callPackage ../tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix { }; fcitx5-configtool = libsForQt5.callPackage ../tools/inputmethods/fcitx5/fcitx5-configtool.nix { }; From 14227a94b2a4b83151aae803adae6766af9f2b3f Mon Sep 17 00:00:00 2001 From: Poscat Date: Sun, 13 Dec 2020 11:29:58 +0800 Subject: [PATCH 11/13] nixos/input-methods: add fcitx5 --- nixos/modules/i18n/input-method/default.nix | 2 +- nixos/modules/i18n/input-method/fcitx5.nix | 33 +++++++++++++++++++++ nixos/modules/module-list.nix | 1 + 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 nixos/modules/i18n/input-method/fcitx5.nix diff --git a/nixos/modules/i18n/input-method/default.nix b/nixos/modules/i18n/input-method/default.nix index 0d6dd3399bf..2e7cfaab7b7 100644 --- a/nixos/modules/i18n/input-method/default.nix +++ b/nixos/modules/i18n/input-method/default.nix @@ -29,7 +29,7 @@ in options.i18n = { inputMethod = { enabled = mkOption { - type = types.nullOr (types.enum [ "ibus" "fcitx" "nabi" "uim" "hime" ]); + type = types.nullOr (types.enum [ "ibus" "fcitx" "fcitx5" "nabi" "uim" "hime" ]); default = null; example = "fcitx"; description = '' diff --git a/nixos/modules/i18n/input-method/fcitx5.nix b/nixos/modules/i18n/input-method/fcitx5.nix new file mode 100644 index 00000000000..44962d202fe --- /dev/null +++ b/nixos/modules/i18n/input-method/fcitx5.nix @@ -0,0 +1,33 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + im = config.i18n.inputMethod; + cfg = im.fcitx5; + fcitx5Package = pkgs.fcitx5-with-addons.override { inherit (cfg) addons; }; +in + { + options = { + i18n.inputMethod.fcitx5 = { + addons = mkOption { + type = with types; listOf package; + default = []; + example = with pkgs; [ fcitx5-rime ]; + description = '' + Enabled Fcitx5 addons. + ''; + }; + }; + }; + + config = mkIf (im.enabled == "fcitx5") { + i18n.inputMethod.package = fcitx5Package; + + environment.variables = { + GTK_IM_MODULE = "fcitx"; + QT_IM_MODULE = "fcitx"; + XMODIFIERS = "@im=fcitx"; + }; + }; + } diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 8fd5d4519fd..9cd27d50f18 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -82,6 +82,7 @@ ./hardware/xpadneo.nix ./i18n/input-method/default.nix ./i18n/input-method/fcitx.nix + ./i18n/input-method/fcitx5.nix ./i18n/input-method/hime.nix ./i18n/input-method/ibus.nix ./i18n/input-method/nabi.nix From 7b99329edda843f669f46f6524272b89147991b2 Mon Sep 17 00:00:00 2001 From: Poscat Date: Mon, 14 Dec 2020 08:01:03 +0800 Subject: [PATCH 12/13] fcitx5-table-extra: Init at 5.0.1 --- .../fcitx5/fcitx5-table-extra.nix | 38 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 40 insertions(+) create mode 100644 pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix new file mode 100644 index 00000000000..7dcca7e130d --- /dev/null +++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix @@ -0,0 +1,38 @@ +{ stdenv +, fetchFromGitHub +, cmake +, extra-cmake-modules +, gettext +, libime +, boost +, fcitx5 +}: + +stdenv.mkDerivation rec { + pname = "fcitx5-table-extra"; + version = "5.0.1"; + + src = fetchFromGitHub { + owner = "fcitx"; + repo = "fcitx5-table-extra"; + rev = version; + sha256 = "UHhiWm2Khh6JBB9jz0ZKFofkAJPlqn6SqHeK9etoaxs="; + }; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + gettext + libime + boost + fcitx5 + ]; + + meta = with stdenv.lib; { + description = "Extra table for Fcitx, including Boshiamy, Zhengma, Cangjie, and Quick"; + homepage = "https://github.com/fcitx/fcitx5-table-extra"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ poscat ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1f9a3561f89..b875484299d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3946,6 +3946,8 @@ in fcitx5-rime = callPackage ../tools/inputmethods/fcitx5/fcitx5-rime.nix { }; + fcitx5-table-extra = callPackage ../tools/inputmethods/fcitx5/fcitx5-table-extra.nix { }; + fcppt = callPackage ../development/libraries/fcppt { }; fcrackzip = callPackage ../tools/security/fcrackzip { }; From 4ef64822612839af18c863192e5f4ddc638fd96b Mon Sep 17 00:00:00 2001 From: Poscat Date: Mon, 14 Dec 2020 08:01:19 +0800 Subject: [PATCH 13/13] fcitx5-table-other: Init at 5.0.1 --- .../fcitx5/fcitx5-table-other.nix | 38 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 40 insertions(+) create mode 100644 pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix new file mode 100644 index 00000000000..eb9d93d6e7c --- /dev/null +++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix @@ -0,0 +1,38 @@ +{ stdenv +, fetchFromGitHub +, cmake +, extra-cmake-modules +, gettext +, libime +, boost +, fcitx5 +}: + +stdenv.mkDerivation rec { + pname = "fcitx5-table-other"; + version = "5.0.1"; + + src = fetchFromGitHub { + owner = "fcitx"; + repo = "fcitx5-table-other"; + rev = version; + sha256 = "hQlrjDPImDof2+3/uOtTdJ27cInevbxH9B+lNwquKbs="; + }; + + nativeBuildInputs = [ + cmake + extra-cmake-modules + gettext + libime + boost + fcitx5 + ]; + + meta = with stdenv.lib; { + description = "Some other tables for Fcitx"; + homepage = "https://github.com/fcitx/fcitx5-table-other"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ poscat ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b875484299d..6cd28813e83 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3948,6 +3948,8 @@ in fcitx5-table-extra = callPackage ../tools/inputmethods/fcitx5/fcitx5-table-extra.nix { }; + fcitx5-table-other = callPackage ../tools/inputmethods/fcitx5/fcitx5-table-other.nix { }; + fcppt = callPackage ../development/libraries/fcppt { }; fcrackzip = callPackage ../tools/security/fcrackzip { };