| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- 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
|