-
Notifications
You must be signed in to change notification settings - Fork 27
Nimf is an input method framework
License
janghe11/nimf
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Nimf is an input method framework, it has a module-based client-server architecture where applications act as clients and communicate with the Nimf server via toolkit-specific input context modules and one socket per process. Nimf provides * Input Method Server * nimf-daemon including XIM * Language Engines * Chinese: nimf-sunpinyin (in alpha stage, based on sunpinyin) * Japanese: nimf-anthy (not yet, based on anthy) * Korean: nimf-libhangul (based on libhangul) * Client Modules * GTK+2, GTK+3, Qt4, Qt5 * Indicator * nimf-indicator (based on libappindicator3) for Unity, GNOME Panel, KDE * Development files Project Homepage: https://github.com/cogniti/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/>. Install ------- * Compile ./autogen.sh make sudo make install sudo ldconfig sudo make update-gtk-im-cache sudo make update-gtk-icon-cache * To use symbols in libhangul engine wget https://raw.githubusercontent.com/choehwanjin/libhangul/master/data/hanja/mssymbol.txt sudo mv mssymbol.txt /usr/share/libhangul/hanja/ ls /usr/share/libhangul/hanja/mssymbol.txt Configure --------- * For GNOME Shell, use 3rd party gnome-shell-extension-appindicator https://extensions.gnome.org/extension/615/appindicator-support/ https://github.com/rgcjonas/gnome-shell-extension-appindicator * Configure im-config Run im-config, then select Nimf, logout and login. * Configure Hangul/Hanja key if you use a keyboard without hardware Hangul/Hanja key Use xkb-data >= 2.14, then Select "Right Alt as Hangul, right Ctrl as Hanja" or "Right Ctrl as Hangul, right Alt as Hanja" from gnome-tweak-tool. Troubleshoot ------------ * Failed to load shared library Check /etc/ld.so.conf and /etc/ld.so.conf.d/ for /usr/local/lib path Architecture ------------ +- im modules --+ +-- each process ---+ +- a process --+ | gtk im module | | nimf-indicator | | X server | | qt im module | +-------------------+ +--------------+ +---------------+ | ^ | | calls | calls | | +-----------------+ +--------------------+ | | | nimf IM library | | nimf agent library | | | communicates +-----------------+ +--------------------+ | | ^ | ^ | | | | | communicates | | | | | | via Unix Socket | | | | | v | v | v +---------------------- a process ----------------------+ | nimf-daemon (including XIM) | +-------------------------------------------------------+ | calls | create instance | singleton instance | (not module yet) +---------------+ +------------------+ | engine module | calls | candidate module | | interface | ---------> | interface | +---------------+ +------------------+ | | +- nimf-sunpinyin +- nimf-candidate (gtk3) +- nimf-anthy +- nimf-libhangul Debugging --------- nimf-daemon --debug tail -f /var/log/daemon.log export GTK_IM_MODULE="nimf" export QT4_IM_MODULE="nimf" export QT_IM_MODULE="nimf" export XMODIFIERS="@im=nimf" export G_MESSAGES_DEBUG=nimf gedit # or kate for Qt References ---------- * API 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+ * Language Engines https://github.com/sunpinyin/sunpinyin https://github.com/choehwanjin/libhangul * Implementations https://github.com/choehwanjin/nabi https://github.com/choehwanjin/imhangul https://github.com/choehwanjin/ibus-hangul https://github.com/ibus/ibus https://github.com/fcitx/fcitx https://github.com/fcitx/fcitx-qt5 https://github.com/uim/uim
About
Nimf is an input method framework
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published