janghe11 / nimf Goto Github PK
View Code? Open in Web Editor NEWNimf is an input method framework
License: GNU Lesser General Public License v3.0
Nimf is an input method framework
License: GNU Lesser General Public License v3.0
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.