zc 190ee7fc79 初次提交 8 ماه پیش
..
bin 190ee7fc79 初次提交 8 ماه پیش
data 190ee7fc79 初次提交 8 ماه پیش
debian 190ee7fc79 初次提交 8 ماه پیش
docs 190ee7fc79 初次提交 8 ماه پیش
libnimf 190ee7fc79 初次提交 8 ماه پیش
modules 190ee7fc79 初次提交 8 ماه پیش
patchs 190ee7fc79 初次提交 8 ماه پیش
po 190ee7fc79 初次提交 8 ماه پیش
AUTHORS 190ee7fc79 初次提交 8 ماه پیش
BUILD.md 190ee7fc79 初次提交 8 ماه پیش
COPYING 190ee7fc79 初次提交 8 ماه پیش
Makefile.am 190ee7fc79 初次提交 8 ماه پیش
NEWS 190ee7fc79 初次提交 8 ماه پیش
PKGBUILD 190ee7fc79 初次提交 8 ماه پیش
README 190ee7fc79 初次提交 8 ماه پیش
README.md 190ee7fc79 初次提交 8 ماه پیش
THANKS 190ee7fc79 初次提交 8 ماه پیش
autogen.sh 190ee7fc79 初次提交 8 ماه پیش
configure.ac 190ee7fc79 初次提交 8 ماه پیش
nimf.spec 190ee7fc79 初次提交 8 ماه پیش

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