Congratulations! mendeley have a new update version
1.19.1 and the bundled PDF reader has the ability to show most of PDF correctly without font mess. However, The bundled qt version also has updated to
qt5.10.1. And then we have no choice but compiling
libfcitxplatforminputcontextplugin.so for mendeleydesktop to support fcitx input method.
Earlier, system’s qt version are the same as mendeleydesktop’s, It is easy for me to have a link
libfcitxplatforminputcontextplugin.so to corresponding mendeleydesktop’s fold. However, these days, System’s qt version updates to qt5.11.0, so system’s fcitx plugin do not suit for Mendeley’s new version. It need rebuild
qt5.10.1, we downloaded and made great efforts to compile it before. We could learn more in the hard way but waste too much time as well. Actually, Qt official website provide compiled binary Qt package, so just download and install it!
And then add executable permission of the .run file. Next up, execute it.
chmod +x ./qt-opensource-linux-x64-5.10.1.run ./qt-opensource-linux-x64-5.10.1.run
And then choose a install path(Default $HOME/Qt5.10.1) and install it.
Next step is to compile
fcitx-qt5, The method I have described at Section 2.12 in current blog. The only stuff we need pay attention to is change default qt’s path such as:
# Suppose Qt5.10.1 has beend installed under default path $ export PATH=$HOME/Qt5.10.1/5.10.1/gcc_64/bin:$PATH
Of course, We also provide
libfcitxplatforminputcontextplugin.so for download directly. Refer to Section 2.3.
Mendeley have updated to version 1.18, And the dependency version have updated to QT5.10,So then the Mendeley works well in many Linux distribution.
If the fcitx Problem remains, Maybe you should check the qt version of system by
qmake -v, if it is equal to 5.10, You could make a file link
libfcitxplatforminputcontextplugin.so to system’s for mendeley.
$ cd mendeleydesktop/lib/mendeleydesktop/plugins/platforminputcontexts $ ln -s /usr/lib/qt/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so
if not, you need additional steps: delete/rename Qt libraries directory of mendeley and force the mendeley use system Qt.
$ cd mendeleydesktop/ $ mv qt qt_bk
mendeleydesktop/ means the top install directory of mendeley
Following the Earlier Content
There are two problems when using mendeley in linux:
- Can not use fcitx input method(but ibus works well)
- Can not open pdf file externally
Here is my working environment:
- Manjaro(based on arch)
- KDE plasma
- menedelay install from AUR(version: 1.17.11/1.17.12)
So what is cause of such two problems? This should be blamed on built-in qt5, it missing a qt fcitx plugin named
libfcitxplatforminputcontextplugin.so under the directory
So, is there any way to solve it? Of course, there are two ways.
1. Way One
One way is to use system’s qt envrionment instead of private:
$ export LD_LIBRARY_PATH=/usr/lib #/usr/lib contains system's qt5 libraries $ /opt/mendeleydesktop/lib/mendeleydesktop/libexec/mendeleydesktop.x86_64
If some error remind you that the system’s qt lack of some necessary module, just find the package name and install it.
The menedeley works well expect connecting to the network, it means that it is not the perfect way to solve the problem, here is the solution:
# Exchange the qt directory of mendeley $ cd /opt/mendeleydesktop/lib $ sudo mv qt qt_bk # You should make sure the system's qt library under this directory $ sudo ln -s /usr/lib qt # copy fcitx library plugin # Of course, you should check system's libfcitxplatforminputcontextplugin.so directory $ cd /opt/mendeleydesktop/lib/mendeleydesktop/plugins/platforminputcontexts $ sudo ln -s /usr/lib/qt/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so
And you could startup mendeley in normal way. And the two problems above have been solved[and become faster than before].
When system qt updated to 5.10, the method will lead to mendeley failed to shake SSL hands, thus, it means that we can not sync the data…Maybe the best way to solve the problem is compile the whole qt5.5.1 for mendeley but I am filed to compile
2. Way two
Another way is to compile
libfcitxplatforminputcontexplugin.so under qt5.5, and then put it under proper directory. Of course, it is a troublesome method.
2.1 Build qt5.5
First you should download the qt source from here and then decompress it:
Download Address: QT 5.5.1 source
And Then comfigure and compile it
$ sudo mkdir /opt/qt5.5.1 $ cd ./qt-everywhere-opensource-src-5.5.1 $ ./configure --prefix=/opt/qt5.5.1 -no-openssl # this would make compile faster, the number follow "j" depend on the number of core. $ make -j4 $ sudo make install
And Then you would find that qt have been installed under
2.2 Build fcitx-qt5
The next step is to build fcitx-qt5, which provides
libfcitxplatformminputcontextplugin.so. The fcitx-qt5 source could clone from github.Here are the detailed process:
$ git clone https://github.com/fcitx/fcitx-qt5.git $ cd fcitx-qt5 # Specify the qmake path of qt5.5.1 $ export PATH="/opt/qt5.5.1/bin/:$PATH" $ cmake ./ $ make
And then you would find the
so file under
fctix-qt5/platforminputcontext,just copy it to corresponding directory of mendeley.
$ cp libfcitxplatformminputcontextplugin.so /opt/mendeleydesktop/lib/mendeleydesktop/plugins/platforminputcontexts
2.3 Quick way
Here I would provide the
libfcitxplatformminputcontextplugin.so which compiles with qt5.5.1/x86_64, just copy it!
New version qt5.10.1/x86_64
DownLoad Address: libfcitxplatformminputcontextplugin.so
Of course, it can not solve the problem 2 that opening pdf file externally failed. However if you do not have the problem, it is the best and fast way.