diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix index 8adc271ff8ff..24019041eb19 100644 --- a/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix +++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix @@ -48,8 +48,6 @@ mkDerivation rec { libXdmcp ]; - qtWrapperArgs = [ "--prefix" "FCITX_ADDON_DIRS" ":" "${placeholder "out"}/lib/fcitx5" ]; - meta = with lib; { description = "Fcitx5 Qt Library"; homepage = "https://github.com/fcitx/fcitx5-qt"; diff --git a/pkgs/tools/inputmethods/fcitx5/with-addons.nix b/pkgs/tools/inputmethods/fcitx5/with-addons.nix index d2d1e2f992ae..e2870dc1f561 100644 --- a/pkgs/tools/inputmethods/fcitx5/with-addons.nix +++ b/pkgs/tools/inputmethods/fcitx5/with-addons.nix @@ -1,18 +1,38 @@ -{ lib, symlinkJoin, makeWrapper, fcitx5, fcitx5-configtool, fcitx5-qt, fcitx5-gtk, addons ? [ ] }: +{ lib +, symlinkJoin +, makeBinaryWrapper +, fcitx5 +, withConfigtool ? true +, fcitx5-configtool +, fcitx5-qt +, fcitx5-gtk +, addons ? [ ] +}: symlinkJoin { name = "fcitx5-with-addons-${fcitx5.version}"; - paths = [ fcitx5 fcitx5-configtool fcitx5-qt fcitx5-gtk ] ++ addons; + paths = [ + fcitx5 + fcitx5-qt + fcitx5-gtk + ] ++ lib.optionals withConfigtool [ + fcitx5-configtool + ] ++ addons; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeBinaryWrapper ]; postBuild = '' wrapProgram $out/bin/fcitx5 \ --prefix FCITX_ADDON_DIRS : "$out/lib/fcitx5" \ --suffix XDG_DATA_DIRS : "$out/share" \ --suffix PATH : "$out/bin" \ - --suffix LD_LIBRARY_PATH : ${lib.makeLibraryPath (lib.flatten (map (x: x.extraLdLibraries or []) addons))} + --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath (lib.flatten (map (x: x.extraLdLibraries or []) addons))}" + + ${lib.optionals withConfigtool '' + # Configtool call libexec/fcitx5-qt5-gui-wrapper for gui addons in FCITX_ADDON_DIRS + wrapProgram $out/bin/fcitx5-config-qt --prefix FCITX_ADDON_DIRS : "$out/lib/fcitx5" + ''} desktop=share/applications/org.fcitx.Fcitx5.desktop autostart=etc/xdg/autostart/org.fcitx.Fcitx5.desktop