init
Some checks failed
Docker. / Ubuntu (push) Has been cancelled
User-agent updater. / User-agent (push) Failing after 15s
Lock Threads / lock (push) Failing after 10s
Waiting for answer. / waiting-for-answer (push) Failing after 22s
Needs user action. / needs-user-action (push) Failing after 8s
Can't reproduce. / cant-reproduce (push) Failing after 8s
Close stale issues and PRs / stale (push) Has been cancelled
Some checks failed
Docker. / Ubuntu (push) Has been cancelled
User-agent updater. / User-agent (push) Failing after 15s
Lock Threads / lock (push) Failing after 10s
Waiting for answer. / waiting-for-answer (push) Failing after 22s
Needs user action. / needs-user-action (push) Failing after 8s
Can't reproduce. / cant-reproduce (push) Failing after 8s
Close stale issues and PRs / stale (push) Has been cancelled
This commit is contained in:
279
Telegram/ThirdParty/nimf/README
vendored
Normal file
279
Telegram/ThirdParty/nimf/README
vendored
Normal file
@@ -0,0 +1,279 @@
|
||||
Nimf is a lightweight, fast and extensible input method framework.
|
||||
|
||||
Because this document contains upstream content, there may be errors in the build.
|
||||
If you have any questions, please visit the address below.
|
||||
https://github.com/hamonikr/nimf/wiki
|
||||
https://github.com/hamonikr/nimf/issues
|
||||
|
||||
Nimf provides:
|
||||
* Input Method Server:
|
||||
* nimf
|
||||
* Language Engines:
|
||||
* System keyboard
|
||||
* Chinese (based on librime)
|
||||
* Japanese (based on anthy)
|
||||
* Korean (based on libhangul)
|
||||
* Various languages (based on m17n)
|
||||
* Service Modules:
|
||||
* Indicator (based on appindicator)
|
||||
* Wayland
|
||||
* NIM (Nimf Input Method)
|
||||
* XIM (based on IMdkit)
|
||||
* Preedit window
|
||||
* Candidate
|
||||
* Client Modules:
|
||||
* GTK+2, GTK+3, Qt5
|
||||
* Settings tool to configure the Nimf:
|
||||
* nimf-settings
|
||||
* Development files:
|
||||
* C library, headers and documents
|
||||
|
||||
Project Homepage:
|
||||
* https://github.com/hamonikr/nimf
|
||||
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
Nimf is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Nimf is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with this program; If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
Downloads
|
||||
---------
|
||||
|
||||
Download latest snapshot of the current master branch
|
||||
|
||||
* Clone with HTTPS
|
||||
|
||||
git clone https://github.com/hamonikr/nimf/nimf.git
|
||||
|
||||
* Download tar.gz
|
||||
|
||||
https://github.com/hamonikr/nimf/archive/master/nimf-master.tar.gz
|
||||
|
||||
|
||||
|
||||
Compiling and installing
|
||||
------------------------
|
||||
|
||||
* Debian, Ubuntu, Kubuntu
|
||||
|
||||
First of all, install devscripts, build-essential, debhelper.
|
||||
|
||||
username:~$ sudo apt install devscripts build-essential debhelper
|
||||
|
||||
After installing devscripts, build-essential perform the following commands.
|
||||
|
||||
username:~$ cd
|
||||
username:~$ mkdir tmp-build
|
||||
username:~$ cd tmp-build
|
||||
username:~/tmp-build$ wget https://github.com/hamonikr/nimf/archive/master/nimf-master.tar.gz
|
||||
username:~/tmp-build$ tar zxf nimf-master.tar.gz
|
||||
username:~/tmp-build$ cd nimf-master
|
||||
username:~/tmp-build/nimf-master$ dpkg-checkbuilddeps
|
||||
|
||||
You may see something like:
|
||||
|
||||
dpkg-checkbuilddeps: Unmet build dependencies: some-package1 some-package2 ...
|
||||
|
||||
Install all dependent packages and perform the following commands.
|
||||
|
||||
username:~/tmp-build/nimf-master$ debuild -b -uc -us
|
||||
username:~/tmp-build/nimf-master$ cd ..
|
||||
username:~/tmp-build$ ls
|
||||
libnimf1_YYYY.mm.dd_amd64.deb
|
||||
libnimf1-dbgsym_YYYY.mm.dd_amd64.deb
|
||||
nimf_YYYY.mm.dd_amd64.build
|
||||
nimf_YYYY.mm.dd_amd64.buildinfo
|
||||
nimf_YYYY.mm.dd_amd64.changes
|
||||
nimf_YYYY.mm.dd_amd64.deb
|
||||
nimf_YYYY.mm.dd.dsc
|
||||
nimf_YYYY.mm.dd.tar.xz
|
||||
nimf-anthy_YYYY.mm.dd_amd64.deb
|
||||
nimf-anthy-dbgsym_YYYY.mm.dd_amd64.deb
|
||||
nimf-dbgsym_YYYY.mm.dd_amd64.deb
|
||||
nimf-dev_YYYY.mm.dd_amd64.deb
|
||||
nimf-libhangul_YYYY.mm.dd_amd64.deb
|
||||
nimf-libhangul-dbgsym_YYYY.mm.dd_amd64.deb
|
||||
nimf-m17n_YYYY.mm.dd_amd64.deb
|
||||
nimf-m17n-dbgsym_YYYY.mm.dd_amd64.deb
|
||||
nimf-master
|
||||
nimf-rime_YYYY.mm.dd_amd64.deb
|
||||
nimf-rime-dbgsym_YYYY.mm.dd_amd64.deb
|
||||
|
||||
Install deb packages.
|
||||
|
||||
username:~/tmp-build$ sudo dpkg -i nimf_YYYY.mm.dd_amd64.deb \
|
||||
libnimf1_YYYY.mm.dd_amd64.deb nimf-anthy_YYYY.mm.dd_amd64.deb \
|
||||
nimf-libhangul_YYYY.mm.dd_amd64.deb nimf-m17n_YYYY.mm.dd_amd64.deb \
|
||||
nimf-rime_YYYY.mm.dd_amd64.deb
|
||||
|
||||
* CentOS
|
||||
|
||||
Open the terminal and run the following commands step by step.
|
||||
|
||||
wget https://gitlab.com/nimf-i18n/nimf/-/archive/master/nimf-master.tar.bz2
|
||||
tar -jxvf nimf-master.tar.bz2
|
||||
|
||||
NIMF_VERSION=`grep AC_INIT nimf-master/configure.ac | \
|
||||
grep -Po '\d{4}.\d{2}.\d{2}'`
|
||||
|
||||
cp -r nimf-master nimf-$NIMF_VERSION
|
||||
tar -jcvf nimf-master.tar.bz2 nimf-$NIMF_VERSION
|
||||
mkdir -p rpmbuild/SOURCES
|
||||
cp -f nimf-master.tar.bz2 rpmbuild/SOURCES
|
||||
sudo yum install epel-release
|
||||
|
||||
sudo yum install gcc-c++ libtool glib2-devel pkgconfig intltool \
|
||||
gtk3-devel gtk2-devel qt5-qtbase-devel qt5-qtbase-private-devel \
|
||||
libappindicator-gtk3-devel librsvg2-tools google-noto-cjk-fonts \
|
||||
libhangul-devel anthy-devel anthy libxkbcommon-devel wayland-devel \
|
||||
libxklavier-devel gtk-doc
|
||||
|
||||
rpmbuild -bb nimf-master/nimf.spec
|
||||
ls -R rpmbuild/RPMS/
|
||||
|
||||
sudo yum install \
|
||||
rpmbuild/RPMS/`uname -m`/nimf-YYYY.mm.dd-1.el7.`uname-m`.rpm
|
||||
|
||||
* Other Linux distributions
|
||||
|
||||
There are configuration options. Use it for your situation.
|
||||
|
||||
--disable-hardening Disable hardening
|
||||
--disable-nimf-anthy Disable nimf-anthy
|
||||
--disable-nimf-m17n Disable nimf-m17n
|
||||
--disable-nimf-rime Disable nimf-rime
|
||||
--with-im-config-data Install im-config data
|
||||
--with-imsettings-data Install imsettings data
|
||||
|
||||
Open the terminal and run the following commands step by step.
|
||||
|
||||
username:~$ cd
|
||||
username:~$ mkdir tmp-build
|
||||
username:~$ cd tmp-build
|
||||
username:~/tmp-build$ wget https://gitlab.com/nimf-i18n/nimf/-/archive/master/nimf-master.tar.gz
|
||||
username:~/tmp-build$ tar zxf nimf-master.tar.gz
|
||||
username:~/tmp-build$ cd nimf-master
|
||||
|
||||
If you are using im-config
|
||||
|
||||
./autogen.sh --with-im-config-data
|
||||
|
||||
If you are using im-chooser
|
||||
|
||||
./autogen.sh --with-imsettings-data
|
||||
|
||||
Otherwise
|
||||
|
||||
./autogen.sh
|
||||
|
||||
make
|
||||
sudo make install
|
||||
sudo ldconfig
|
||||
sudo make update-gtk-im-cache
|
||||
sudo make update-gtk-icon-cache
|
||||
|
||||
To uninstall nimf, run the following command.
|
||||
|
||||
sudo make uninstall
|
||||
|
||||
|
||||
Configure
|
||||
---------
|
||||
|
||||
* For GNOME Shell, use 3rd party gnome-shell-extension-appindicator
|
||||
|
||||
https://github.com/ubuntu/gnome-shell-extension-appindicator
|
||||
https://extensions.gnome.org/extension/615/appindicator-support/
|
||||
|
||||
* How to enable Nimf on systems using im-config
|
||||
|
||||
im-config -n nimf
|
||||
|
||||
* How to enable Nimf on systems using im-chooser
|
||||
|
||||
imsettings-switch nimf
|
||||
|
||||
* How to enable Nimf on systems using systemd v233 or later
|
||||
|
||||
Run nimf-settings.
|
||||
Turn on the "Setup environment variables" option in the Nimf menu.
|
||||
|
||||
|
||||
Debugging
|
||||
---------
|
||||
|
||||
nimf --debug
|
||||
nimf-settings --gapplication-service & # for nimf-indicator
|
||||
tail -f /var/log/daemon.log # or /var/log/syslog
|
||||
|
||||
export GTK_IM_MODULE="nimf"
|
||||
export QT4_IM_MODULE="xim"
|
||||
export QT_IM_MODULE="nimf"
|
||||
export XMODIFIERS="@im=nimf"
|
||||
export G_MESSAGES_DEBUG=nimf
|
||||
gedit # or kate for Qt
|
||||
|
||||
|
||||
Participate
|
||||
-----------
|
||||
|
||||
* Development
|
||||
|
||||
You may send pull requests.
|
||||
https://github.com/hamonikr/nimf/pulls
|
||||
|
||||
* Translation
|
||||
|
||||
You can make nimf.pot using the following commands.
|
||||
|
||||
git clone https://github.com/hamonikr/nimf/nimf.git
|
||||
cd nimf
|
||||
./autogen.sh
|
||||
cd po
|
||||
make nimf.pot
|
||||
|
||||
Then, you may translate nimf.pot into your native language.
|
||||
|
||||
|
||||
References
|
||||
----------
|
||||
|
||||
* APIs
|
||||
|
||||
http://www.x.org/releases/X11R7.6/doc/libX11/specs/XIM/xim.html
|
||||
http://www.w3.org/TR/ime-api/
|
||||
https://developer.chrome.com/extensions/input_ime
|
||||
https://docs.enlightenment.org/stable/efl/group__Ecore__IMF__Lib__Group.html
|
||||
http://doc.qt.io/qt-4.8/qinputcontext.html
|
||||
http://doc.qt.io/qt-5/qinputmethod.html
|
||||
https://git.gnome.org/browse/gtk+/tree/gtk/gtkimcontext.c
|
||||
|
||||
* Language Engines (alphabetically listed)
|
||||
|
||||
http://anonscm.debian.org/cgit/collab-maint/anthy.git
|
||||
https://github.com/libhangul/libhangul
|
||||
https://github.com/rime/librime
|
||||
https://www.nongnu.org/m17n/
|
||||
|
||||
* Implementations
|
||||
|
||||
https://github.com/libhangul/nabi
|
||||
https://github.com/libhangul/imhangul
|
||||
https://github.com/libhangul/ibus-hangul
|
||||
https://github.com/ibus/ibus
|
||||
https://github.com/fcitx/fcitx
|
||||
https://github.com/fcitx/fcitx-qt5
|
||||
https://github.com/uim/uim
|
||||
Reference in New Issue
Block a user