zc 190ee7fc79 初次提交 11 месяцев назад
..
bin 190ee7fc79 初次提交 11 месяцев назад
data 190ee7fc79 初次提交 11 месяцев назад
debian 190ee7fc79 初次提交 11 месяцев назад
docs 190ee7fc79 初次提交 11 месяцев назад
libnimf 190ee7fc79 初次提交 11 месяцев назад
modules 190ee7fc79 初次提交 11 месяцев назад
patchs 190ee7fc79 初次提交 11 месяцев назад
po 190ee7fc79 初次提交 11 месяцев назад
AUTHORS 190ee7fc79 初次提交 11 месяцев назад
BUILD.md 190ee7fc79 初次提交 11 месяцев назад
COPYING 190ee7fc79 初次提交 11 месяцев назад
Makefile.am 190ee7fc79 初次提交 11 месяцев назад
NEWS 190ee7fc79 初次提交 11 месяцев назад
PKGBUILD 190ee7fc79 初次提交 11 месяцев назад
README 190ee7fc79 初次提交 11 месяцев назад
README.md 190ee7fc79 初次提交 11 месяцев назад
THANKS 190ee7fc79 初次提交 11 месяцев назад
autogen.sh 190ee7fc79 初次提交 11 месяцев назад
configure.ac 190ee7fc79 初次提交 11 месяцев назад
nimf.spec 190ee7fc79 初次提交 11 месяцев назад

README

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 .


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