├── .docker ├── arch.Dockerfile ├── fedora.latest.Dockerfile ├── opensuse.Dockerfile ├── ubuntu.2204.Dockerfile └── ubuntu.2404.Dockerfile ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── ------.md │ ├── -----.md │ └── bug-report-eng.md └── workflows │ ├── build.yml │ ├── cla.yml │ └── release.yml ├── .gitignore ├── .gitmodules ├── AUTHORS ├── BUILD.md ├── COPYING ├── Changelog.md ├── Makefile.am ├── NEWS ├── PKGBUILD ├── README ├── README.md ├── RPM-GPG-KEY-nimf ├── THANKS ├── autogen.sh ├── bin ├── Makefile.am ├── nimf-settings │ ├── Makefile.am │ ├── nimf-settings-autostart.desktop.in │ ├── nimf-settings.1 │ ├── nimf-settings.c │ ├── nimf-settings.desktop.in │ └── org.nimf.settings.gschema.xml └── nimf │ ├── Makefile.am │ ├── nimf.1 │ └── nimf.c ├── build_packages.sh ├── cla ├── cla_en.md ├── cla_ko.md └── signatures │ └── version1 │ └── cla.json ├── configure.ac ├── data ├── Makefile.am ├── apparmor-abstractions │ ├── Makefile.am │ └── nimf ├── icons │ ├── Makefile.am │ └── scalable │ │ ├── nimf-anthy.svg │ │ ├── nimf-focus-out.svg │ │ ├── nimf-libhangul.svg │ │ ├── nimf-libhangul_orig.svg │ │ ├── nimf-logo.svg │ │ ├── nimf-rime-simplified.svg │ │ ├── nimf-rime-traditional.svg │ │ └── nimf-system-keyboard.svg ├── im-config │ ├── 23_nimf.conf │ ├── 23_nimf.rc │ └── Makefile.am ├── imsettings │ ├── Makefile.am │ └── nimf.conf └── nimf.conf ├── debian ├── autoreconf.after ├── changelog ├── compat ├── control ├── copyright ├── git-build-recipe.manifest ├── libnimf1.install ├── nimf-anthy.install ├── nimf-dev.install ├── nimf-libhangul.install ├── nimf-m17n.install ├── nimf-rime.install ├── nimf.install ├── rules └── source │ ├── format │ └── lintian-overrides ├── docs ├── Makefile.am ├── hangul-combination-default.xml ├── hangul-keyboard-2.xml ├── html │ ├── NimfCandidatable.html │ ├── NimfEngine.html │ ├── NimfIM.html │ ├── NimfPreeditable.html │ ├── NimfServer.html │ ├── NimfService.html │ ├── NimfServiceIC.html │ ├── abstract-classes.html │ ├── annotation-glossary.html │ ├── api-index-full.html │ ├── executables.html │ ├── home.png │ ├── index.html │ ├── interfaces.html │ ├── left-insensitive.png │ ├── left.png │ ├── libnimf-api.html │ ├── nimf-events.html │ ├── nimf-key-syms.html │ ├── nimf-settings.html │ ├── nimf-types.html │ ├── nimf-utils.html │ ├── nimf.devhelp2 │ ├── nimf.html │ ├── object-tree.html │ ├── right-insensitive.png │ ├── right.png │ ├── style.css │ ├── up-insensitive.png │ └── up.png ├── manjaro.png ├── nimf-decl-list.txt ├── nimf-decl.txt ├── nimf-docs.xml ├── nimf-overrides.txt ├── nimf-sections.txt ├── nimf.png └── xml │ ├── annotation-glossary.xml │ ├── api-index-deprecated.xml │ ├── api-index-full.xml │ ├── gtkdocentities.ent │ ├── nimf-candidatable.xml │ ├── nimf-doc.bottom │ ├── nimf-doc.top │ ├── nimf-engine.xml │ ├── nimf-events.xml │ ├── nimf-im.xml │ ├── nimf-key-syms.xml │ ├── nimf-preeditable.xml │ ├── nimf-server.xml │ ├── nimf-service-ic.xml │ ├── nimf-service.xml │ ├── nimf-settings.xml │ ├── nimf-types.xml │ ├── nimf-utils.xml │ ├── nimf.xml │ ├── object_index.sgml │ └── tree_index.sgml ├── libnimf ├── Makefile.am ├── nimf-candidatable.c ├── nimf-candidatable.h ├── nimf-engine.c ├── nimf-engine.h ├── nimf-enum-types-private.h.template ├── nimf-enum-types.c.template ├── nimf-events.c ├── nimf-events.h ├── nimf-im.c ├── nimf-im.h ├── nimf-key-syms.h ├── nimf-marshalers.list ├── nimf-message-enum-types-private.h.template ├── nimf-message-enum-types.c.template ├── nimf-message-private.h ├── nimf-message.c ├── nimf-module-private.h ├── nimf-module.c ├── nimf-preeditable.c ├── nimf-preeditable.h ├── nimf-server-private.h ├── nimf-server.c ├── nimf-server.h ├── nimf-service-ic-private.h ├── nimf-service-ic.c ├── nimf-service-ic.h ├── nimf-service.c ├── nimf-service.h ├── nimf-types.c ├── nimf-types.h ├── nimf-utils-private.h ├── nimf-utils.c ├── nimf-utils.h ├── nimf.h ├── nimf.pc.in └── org.nimf.gschema.xml ├── modules ├── Makefile.am ├── clients │ ├── Makefile.am │ ├── gtk │ │ ├── Makefile.am │ │ ├── im-nimf.c │ │ └── org.nimf.clients.gtk.gschema.xml │ ├── qt5 │ │ ├── Makefile.am │ │ ├── im-nimf-qt5.cpp │ │ ├── nimf.json │ │ └── org.nimf.clients.qt5.gschema.xml │ └── qt6 │ │ ├── Makefile.am │ │ ├── im-nimf-qt6.cpp │ │ ├── nimf.json │ │ └── org.nimf.clients.qt6.gschema.xml ├── engines │ ├── Makefile.am │ ├── nimf-anthy │ │ ├── Makefile.am │ │ ├── nimf-anthy.c │ │ └── org.nimf.engines.nimf-anthy.gschema.xml │ ├── nimf-libhangul │ │ ├── Makefile.am │ │ ├── mssymbol.txt │ │ ├── nimf-libhangul.c │ │ └── org.nimf.engines.nimf-libhangul.gschema.xml │ ├── nimf-m17n │ │ ├── Makefile.am │ │ ├── icons │ │ │ ├── Makefile.am │ │ │ └── scalable │ │ │ │ ├── nimf-m17n-am.svg │ │ │ │ ├── nimf-m17n-ar.svg │ │ │ │ ├── nimf-m17n-as.svg │ │ │ │ ├── nimf-m17n-ath.svg │ │ │ │ ├── nimf-m17n-be.svg │ │ │ │ ├── nimf-m17n-bla.svg │ │ │ │ ├── nimf-m17n-bn.svg │ │ │ │ ├── nimf-m17n-bo.svg │ │ │ │ ├── nimf-m17n-cmc.svg │ │ │ │ ├── nimf-m17n-cr.svg │ │ │ │ ├── nimf-m17n-cs.svg │ │ │ │ ├── nimf-m17n-da.svg │ │ │ │ ├── nimf-m17n-dv.svg │ │ │ │ ├── nimf-m17n-el.svg │ │ │ │ ├── nimf-m17n-eo.svg │ │ │ │ ├── nimf-m17n-fa.svg │ │ │ │ ├── nimf-m17n-fr.svg │ │ │ │ ├── nimf-m17n-grc.svg │ │ │ │ ├── nimf-m17n-gu.svg │ │ │ │ ├── nimf-m17n-he.svg │ │ │ │ ├── nimf-m17n-hi.svg │ │ │ │ ├── nimf-m17n-hr.svg │ │ │ │ ├── nimf-m17n-hu.svg │ │ │ │ ├── nimf-m17n-hy.svg │ │ │ │ ├── nimf-m17n-ii.svg │ │ │ │ ├── nimf-m17n-iu.svg │ │ │ │ ├── nimf-m17n-ka.svg │ │ │ │ ├── nimf-m17n-kk.svg │ │ │ │ ├── nimf-m17n-km.svg │ │ │ │ ├── nimf-m17n-kn.svg │ │ │ │ ├── nimf-m17n-ks.svg │ │ │ │ ├── nimf-m17n-lo.svg │ │ │ │ ├── nimf-m17n-mai.svg │ │ │ │ ├── nimf-m17n-ml.svg │ │ │ │ ├── nimf-m17n-mr.svg │ │ │ │ ├── nimf-m17n-my.svg │ │ │ │ ├── nimf-m17n-ne.svg │ │ │ │ ├── nimf-m17n-nsk.svg │ │ │ │ ├── nimf-m17n-oj.svg │ │ │ │ ├── nimf-m17n-or.svg │ │ │ │ ├── nimf-m17n-pa.svg │ │ │ │ ├── nimf-m17n-ps.svg │ │ │ │ ├── nimf-m17n-ru.svg │ │ │ │ ├── nimf-m17n-sa.svg │ │ │ │ ├── nimf-m17n-sd.svg │ │ │ │ ├── nimf-m17n-si.svg │ │ │ │ ├── nimf-m17n-sk.svg │ │ │ │ ├── nimf-m17n-sr.svg │ │ │ │ ├── nimf-m17n-sv.svg │ │ │ │ ├── nimf-m17n-t.svg │ │ │ │ ├── nimf-m17n-ta.svg │ │ │ │ ├── nimf-m17n-tai.svg │ │ │ │ ├── nimf-m17n-te.svg │ │ │ │ ├── nimf-m17n-th.svg │ │ │ │ ├── nimf-m17n-ug.svg │ │ │ │ ├── nimf-m17n-uk.svg │ │ │ │ ├── nimf-m17n-ur.svg │ │ │ │ ├── nimf-m17n-uz.svg │ │ │ │ ├── nimf-m17n-vi.svg │ │ │ │ └── nimf-m17n-yi.svg │ │ ├── nimf-m17n-am.c │ │ ├── nimf-m17n-ar.c │ │ ├── nimf-m17n-as.c │ │ ├── nimf-m17n-ath.c │ │ ├── nimf-m17n-be.c │ │ ├── nimf-m17n-bla.c │ │ ├── nimf-m17n-bn.c │ │ ├── nimf-m17n-bo.c │ │ ├── nimf-m17n-cmc.c │ │ ├── nimf-m17n-cr.c │ │ ├── nimf-m17n-cs.c │ │ ├── nimf-m17n-da.c │ │ ├── nimf-m17n-dv.c │ │ ├── nimf-m17n-el.c │ │ ├── nimf-m17n-eo.c │ │ ├── nimf-m17n-fa.c │ │ ├── nimf-m17n-fr.c │ │ ├── nimf-m17n-grc.c │ │ ├── nimf-m17n-gu.c │ │ ├── nimf-m17n-he.c │ │ ├── nimf-m17n-hi.c │ │ ├── nimf-m17n-hr.c │ │ ├── nimf-m17n-hu.c │ │ ├── nimf-m17n-hy.c │ │ ├── nimf-m17n-ii.c │ │ ├── nimf-m17n-iu.c │ │ ├── nimf-m17n-ka.c │ │ ├── nimf-m17n-kk.c │ │ ├── nimf-m17n-km.c │ │ ├── nimf-m17n-kn.c │ │ ├── nimf-m17n-ks.c │ │ ├── nimf-m17n-lo.c │ │ ├── nimf-m17n-mai.c │ │ ├── nimf-m17n-ml.c │ │ ├── nimf-m17n-mr.c │ │ ├── nimf-m17n-my.c │ │ ├── nimf-m17n-ne.c │ │ ├── nimf-m17n-nsk.c │ │ ├── nimf-m17n-oj.c │ │ ├── nimf-m17n-or.c │ │ ├── nimf-m17n-pa.c │ │ ├── nimf-m17n-ps.c │ │ ├── nimf-m17n-ru.c │ │ ├── nimf-m17n-sa.c │ │ ├── nimf-m17n-sd.c │ │ ├── nimf-m17n-si.c │ │ ├── nimf-m17n-sk.c │ │ ├── nimf-m17n-sr.c │ │ ├── nimf-m17n-sv.c │ │ ├── nimf-m17n-t.c │ │ ├── nimf-m17n-ta.c │ │ ├── nimf-m17n-tai.c │ │ ├── nimf-m17n-te.c │ │ ├── nimf-m17n-th.c │ │ ├── nimf-m17n-ug.c │ │ ├── nimf-m17n-uk.c │ │ ├── nimf-m17n-ur.c │ │ ├── nimf-m17n-uz.c │ │ ├── nimf-m17n-vi.c │ │ ├── nimf-m17n-yi.c │ │ ├── nimf-m17n.c │ │ ├── nimf-m17n.h │ │ ├── org.nimf.engines.nimf-m17n-hi.gschema.xml │ │ ├── org.nimf.engines.nimf-m17n-hu.gschema.xml │ │ ├── org.nimf.engines.nimf-m17n-kn.gschema.xml │ │ ├── org.nimf.engines.nimf-m17n-ml.gschema.xml │ │ ├── org.nimf.engines.nimf-m17n-mr.gschema.xml │ │ ├── org.nimf.engines.nimf-m17n-ne.gschema.xml │ │ ├── org.nimf.engines.nimf-m17n.gschema.xml │ │ └── test-nimf-m17n.c │ ├── nimf-rime │ │ ├── Makefile.am │ │ ├── nimf-rime.c │ │ └── org.nimf.engines.nimf-rime.gschema.xml │ └── nimf-system-keyboard │ │ ├── Makefile.am │ │ ├── nimf-system-keyboard.c │ │ └── org.nimf.engines.nimf-system-keyboard.gschema.xml └── services │ ├── Makefile.am │ ├── candidate │ ├── Makefile.am │ └── nimf-candidate.c │ ├── indicator │ ├── Makefile.am │ └── nimf-indicator.c │ ├── nim │ ├── Makefile.am │ ├── nimf-connection.c │ ├── nimf-connection.h │ ├── nimf-nim-ic.c │ ├── nimf-nim-ic.h │ ├── nimf-nim.c │ └── nimf-nim.h │ ├── preedit-window │ ├── Makefile.am │ └── nimf-preedit-window.c │ ├── wayland │ ├── Makefile.am │ ├── nimf-wayland-ic.c │ ├── nimf-wayland-ic.h │ ├── nimf-wayland.c │ └── nimf-wayland.h │ └── xim │ ├── IMdkit │ ├── FrameMgr.c │ ├── FrameMgr.h │ ├── Xi18n.h │ ├── XimFunc.h │ ├── XimProto.h │ ├── i18nAttr.c │ ├── i18nClbk.c │ ├── i18nIMProto.c │ ├── i18nIc.c │ ├── i18nMethod.c │ ├── i18nMethod.h │ ├── i18nOffsetCache.c │ ├── i18nPtHdr.c │ ├── i18nUtil.c │ ├── i18nX.c │ └── i18nX.h │ ├── Makefile.am │ ├── nimf-xim-ic.c │ ├── nimf-xim-ic.h │ ├── nimf-xim.c │ └── nimf-xim.h ├── nimf.spec ├── patchs ├── README ├── nimf-2020.04.28.patch ├── nimf-2020.11.28-hamonikr.patch └── usr │ └── lib │ └── x86_64-linux-gnu │ └── qt5 │ └── plugins │ └── platforminputcontexts │ ├── README │ └── libqt5im-nimf.so └── po ├── .intltool-merge-cache.lock ├── LINGUAS ├── POTFILES.in ├── de.po └── ko.po /.docker/arch.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM archlinux:latest AS builder 2 | 3 | # 필요한 패키지 설치 4 | RUN pacman -Syu --noconfirm \ 5 | binutils \ 6 | autoconf \ 7 | automake \ 8 | gcc \ 9 | make \ 10 | glib2 \ 11 | glib2-devel \ 12 | gtk3 \ 13 | gtk2 \ 14 | qt5-base \ 15 | qt6-base \ 16 | libappindicator-gtk3 \ 17 | libayatana-appindicator \ 18 | librsvg \ 19 | noto-fonts-cjk \ 20 | anthy \ 21 | librime \ 22 | libxkbcommon \ 23 | wayland \ 24 | wayland-protocols \ 25 | libxklavier \ 26 | m17n-lib \ 27 | m17n-db \ 28 | gtk-doc \ 29 | git \ 30 | base-devel \ 31 | sudo \ 32 | wget 33 | 34 | # 일반 사용자 생성 35 | RUN useradd -m builduser && echo "builduser ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers 36 | 37 | # 소스 코드 복사 및 작업 디렉토리 설정 38 | COPY . /home/builduser/src 39 | RUN chown -R builduser:builduser /home/builduser/src 40 | 41 | # 일반 사용자로 전환 42 | USER builduser 43 | WORKDIR /home/builduser/src 44 | 45 | # AUR 도우미 yay 설치 46 | RUN git clone https://aur.archlinux.org/yay.git /home/builduser/yay \ 47 | && cd /home/builduser/yay \ 48 | && makepkg -si --noconfirm 49 | 50 | # AUR에서 libhangul-git 패키지 설치 51 | RUN yay -S --noconfirm libhangul-git 52 | 53 | # 패키지 빌드 및 설치 54 | # RUN makepkg -si --noconfirm 55 | 56 | # 루트 사용자로 전환 57 | USER root 58 | RUN rm -rf /home/builduser/yay 59 | 60 | # 프로젝트 빌드 61 | RUN cd /home/builduser/src \ 62 | && ./autogen.sh --prefix=/usr --enable-gtk-doc \ 63 | && make -j $(nproc) 64 | 65 | # 패키지 설치 66 | RUN cd /home/builduser/src \ 67 | && make DESTDIR="/pkgdir/" install 68 | 69 | # 설치 후 설정 안내 70 | RUN echo 'To use Nimf as your input method framework, add the following lines to your ~/.xprofile:' \ 71 | && echo 'export GTK_IM_MODULE=nimf' \ 72 | && echo 'export QT4_IM_MODULE="nimf"' \ 73 | && echo 'export QT_IM_MODULE=nimf' \ 74 | && echo 'export QT6_IM_MODULE=nimf' \ 75 | && echo 'export XMODIFIERS="@im=nimf"' 76 | 77 | ENTRYPOINT ["bash"] 78 | -------------------------------------------------------------------------------- /.docker/fedora.latest.Dockerfile: -------------------------------------------------------------------------------- 1 | # Use the latest Fedora image as the base 2 | FROM fedora:latest AS builder 3 | 4 | # Install the required packages 5 | RUN yum install -y \ 6 | cmake \ 7 | autoconf \ 8 | automake \ 9 | libtool \ 10 | pkg-config \ 11 | make \ 12 | gcc \ 13 | gcc-c++ \ 14 | sudo \ 15 | rpm-build \ 16 | redhat-rpm-config \ 17 | glib2-devel \ 18 | gtk3-devel \ 19 | gtk2-devel \ 20 | wayland-devel \ 21 | wayland-protocols-devel \ 22 | libxkbcommon-devel \ 23 | libxklavier-devel \ 24 | libappindicator-gtk3-devel \ 25 | libayatana-appindicator-gtk3-devel.x86_64 \ 26 | librsvg2-tools \ 27 | google-noto-cjk-fonts \ 28 | m17n-lib-devel \ 29 | m17n-db-devel \ 30 | anthy-devel \ 31 | qt5-qtbase-devel \ 32 | qt5-qttools-devel \ 33 | qt5-qtbase-private-devel \ 34 | qt6-qtbase-devel \ 35 | qt6-qttools-devel \ 36 | qt6-qtbase-private-devel \ 37 | librime-devel \ 38 | gtk-doc \ 39 | intltool \ 40 | gettext-devel \ 41 | git \ 42 | expat \ 43 | expat-devel 44 | 45 | # Clone, build, and install libhangul 46 | RUN git clone https://github.com/libhangul/libhangul.git \ 47 | && cd libhangul \ 48 | && ./autogen.sh \ 49 | && ./configure --prefix=/usr \ 50 | && make \ 51 | && sudo make install 52 | 53 | # Copy the source code and set the working directory 54 | COPY . /src 55 | WORKDIR /src 56 | 57 | # Build, compile, and install the project 58 | RUN ./autogen.sh \ 59 | && ./configure --prefix=/usr/local \ 60 | && make -j$(nproc) \ 61 | && make install 62 | 63 | # Set the default entrypoint to bash 64 | ENTRYPOINT ["bash"] 65 | -------------------------------------------------------------------------------- /.docker/opensuse.Dockerfile: -------------------------------------------------------------------------------- 1 | # Use the openSUSE Leap 15.6 as the base 2 | FROM opensuse/leap:15.6 AS builder 3 | 4 | # Change fastest repo and set priority to 50 5 | # RUN zypper addrepo --priority 50 -f https://ftp.kaist.ac.kr/opensuse/update/leap/15.6/oss/ Kaist_Main_Update_Repo \ 6 | # && zypper addrepo --priority 50 -f https://ftp.kaist.ac.kr/opensuse/distribution/leap/15.6/repo/oss/ Kaist_Main_OSS_Repo \ 7 | # && zypper addrepo --priority 50 -f https://ftp.kaist.ac.kr/opensuse/distribution/leap/15.6/repo/non-oss/ Kaist_Main_NON-OSS_Repo \ 8 | # && zypper addrepo --priority 50 -f https://ftp.kaist.ac.kr/opensuse/update/leap/15.6/backports/ Kaist_Update_Backports_Repo \ 9 | # && zypper addrepo --priority 50 -f https://ftp.kaist.ac.kr/opensuse/update/leap/15.6/sle/ Kaist_Update_SUSE_Enterprise_Linux_Repo 10 | 11 | # Install the required packages 12 | RUN zypper install -y \ 13 | rpm-build \ 14 | rpmdevtools \ 15 | anthy \ 16 | anthy-devel \ 17 | libexpat-devel \ 18 | gcc-c++ \ 19 | glib2-devel \ 20 | gtk-doc \ 21 | gtk2-devel \ 22 | gtk3-devel \ 23 | intltool \ 24 | libhangul-devel \ 25 | libtool \ 26 | libxkbcommon-devel \ 27 | libxklavier-devel \ 28 | wayland-devel \ 29 | wayland-protocols-devel \ 30 | google-noto-sans-cjk-fonts \ 31 | libappindicator3-devel \ 32 | libayatana-appindicator3-devel \ 33 | librsvg-devel \ 34 | libqt5-qtbase-devel \ 35 | libqt5-qtbase-private-headers-devel \ 36 | qt6-base-devel \ 37 | qt6-base-private-devel \ 38 | rsvg-convert \ 39 | librime-devel \ 40 | m17n-lib-devel \ 41 | git 42 | 43 | # Clone, build, and install libhangul 44 | RUN git clone https://github.com/libhangul/libhangul.git \ 45 | && cd libhangul \ 46 | && ./autogen.sh \ 47 | && ./configure --prefix=/usr \ 48 | && make \ 49 | && make install 50 | 51 | # Copy the source code and set the working directory 52 | COPY . /src 53 | WORKDIR /src 54 | 55 | # Build, compile, and install the project 56 | RUN ./autogen.sh \ 57 | && ./configure --prefix=/usr/local \ 58 | && make -j$(nproc) \ 59 | && make install 60 | 61 | # Set the default entrypoint to bash 62 | ENTRYPOINT ["bash"] 63 | -------------------------------------------------------------------------------- /.docker/ubuntu.2204.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:22.04 AS builder 2 | 3 | RUN export DEBIAN_FRONTEND=noninteractive \ 4 | && apt-get -qq update \ 5 | && apt-get -qq upgrade 6 | 7 | RUN apt-get install --no-install-recommends -y \ 8 | cmake \ 9 | g++ \ 10 | make \ 11 | pkg-config \ 12 | python3-dev \ 13 | devscripts \ 14 | equivs \ 15 | sudo \ 16 | xterm \ 17 | apt-utils 18 | 19 | COPY . /src 20 | WORKDIR /build 21 | 22 | # 자동으로 yes 응답을 전달 23 | RUN yes | mk-build-deps --install --root-cmd sudo --remove /src/debian/control 24 | 25 | # Build the entire project 26 | RUN cd /src \ 27 | && ./autogen.sh \ 28 | && ./configure --prefix=/usr/local \ 29 | && make -j $(nproc) \ 30 | && make install 31 | 32 | ENTRYPOINT ["bash"] 33 | -------------------------------------------------------------------------------- /.docker/ubuntu.2404.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:24.04 AS builder 2 | 3 | RUN export DEBIAN_FRONTEND=noninteractive \ 4 | && apt-get -qq update \ 5 | && apt-get -qq upgrade 6 | 7 | RUN apt-get install --no-install-recommends -y \ 8 | cmake \ 9 | g++ \ 10 | make \ 11 | pkg-config \ 12 | python3-dev \ 13 | devscripts \ 14 | equivs \ 15 | sudo \ 16 | xterm \ 17 | apt-utils 18 | 19 | COPY . /src 20 | WORKDIR /build 21 | 22 | # 자동으로 yes 응답을 전달 23 | RUN yes | mk-build-deps --install --root-cmd sudo --remove /src/debian/control 24 | 25 | # Build the entire project 26 | RUN cd /src \ 27 | && autoreconf --force --install --verbose \ 28 | && ./configure --prefix=/usr/local \ 29 | && make -j $(nproc) \ 30 | && make install 31 | 32 | ENTRYPOINT ["bash"] 33 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: hamonikr 10 | issuehunt: # Replace with a single IssueHunt username 11 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 12 | polar: # Replace with a single Polar username 13 | buy_me_a_coffee: # Replace with a single Buy Me a Coffee username 14 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 15 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/------.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 버그 리포트 3 | about: 발견한 버그를 알려주세요 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **버그 설명** 11 | 어떤 버그인지 내용을 적어주세요 12 | 13 | **버그 재현 과정** 14 | 어떤 과정으로 버그가 발생하는지 단계별로 과정을 설명해주세요. 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **예상한 결과** 21 | 이 기능을 동작시킬때 예상한 결과를 적어주세요. 22 | 23 | **Screenshots** 24 | 가능하다면 화면 캡처를 포함해주세요. (이미지를 드래그앤드롭으로 업로드하세요) 25 | 26 | **자신의 PC 환경** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/-----.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 기능 제안 3 | about: 자유롭게 자신의 의견을 적어주세요. 4 | title: '' 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | 자유롭게 자신의 의견을 적어주세요. 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report-eng.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug Report 3 | about: Description of the bug found 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior, please provide code snippets or a repository: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. (Image drag & drop) 25 | 26 | **Your PC environment** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build 2 | 3 | on: 4 | push: 5 | branches: [ "master", "development" ] 6 | pull_request: 7 | branches: 8 | - master 9 | 10 | concurrency: 11 | group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} 12 | cancel-in-progress: true 13 | 14 | jobs: 15 | build: 16 | runs-on: ubuntu-latest 17 | 18 | strategy: 19 | fail-fast: false 20 | matrix: 21 | dockerfile: [arch.Dockerfile, fedora.latest.Dockerfile, opensuse.Dockerfile, ubuntu.2204.Dockerfile, ubuntu.2404.Dockerfile] 22 | 23 | steps: 24 | 25 | - name: Checkout source code 26 | uses: actions/checkout@v3 27 | with: 28 | submodules: recursive 29 | 30 | - name: Build docker test image 31 | run: docker build . --file .docker/${{ matrix.dockerfile }} -------------------------------------------------------------------------------- /.github/workflows/cla.yml: -------------------------------------------------------------------------------- 1 | name: "CLA Assistant" 2 | on: 3 | issue_comment: 4 | types: [created] 5 | pull_request_target: 6 | types: [opened,closed,synchronize] 7 | 8 | jobs: 9 | CLAssistant: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - name: "CLA Assistant" 13 | if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I AGREE this CLA') || github.event_name == 'pull_request_target' 14 | uses: cla-assistant/github-action@v2.6.1 15 | env: 16 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 17 | # the below token should have repo scope and must be manually added by you in the repository's secret 18 | PERSONAL_ACCESS_TOKEN : ${{ secrets.PERSONAL_ACCESS_TOKEN }} 19 | with: 20 | path-to-signatures: 'cla/signatures/version1/cla.json' 21 | path-to-document: 'https://github.com/hamonikr/nimf/blob/master/cla/cla_ko.md' # e.g. a CLA or a DCO document 22 | # branch should not be protected 23 | branch: 'master' 24 | allowlist: bot* 25 | 26 | #below are the optional inputs - If the optional inputs are not given, then default values will be taken 27 | ##remote-organization-name: enter the remote organization name where the signatures should be stored (Default is storing the signatures in the same repository) 28 | ##remote-repository-name: enter the remote repository name where the signatures should be stored (Default is storing the signatures in the same repository) 29 | #create-file-commit-message: 'For example: Creating file for storing CLA Signatures' 30 | #signed-commit-message: 'For example: $contributorName has signed the CLA in #$pullRequestNo' 31 | custom-notsigned-prcomment: "\n\n하모니카 프로젝트에 기여해 주셔서 감사합니다! 요청해 주신 PR을 반영하기 이전에, [Contributor License Agreements](https://ko.wikipedia.org/wiki/%EA%B8%B0%EC%97%AC%EC%9E%90_%EB%9D%BC%EC%9D%B4%EC%84%A0%EC%8A%A4_%EB%8F%99%EC%9D%98)에 동의해 주셔야 합니다. [해당 문서](https://github.com/hamonikr/nimf/blob/master/cla/cla_ko.md)를 확인하신 후, 댓글로 아래 문구(I AGREE this CLA)를 남겨주시면 CLA 사인이 완료됩니다.\n\nThank you for your pull request and welcome to our community! We require contributors to sign our [Contributor License Agreement](https://en.wikipedia.org/wiki/Contributor_License_Agreement). After checking [this document](https://github.com/hamonikr/nimf/blob/master/cla/cla_en.md), please leave the following statement(I AGREE this CLA) in the comments to complete the CLA signature." 32 | custom-pr-sign-comment: 'I AGREE this CLA' 33 | #custom-allsigned-prcomment: 'pull request comment when all contributors has signed, defaults to **CLA Assistant Lite bot** All Contributors have signed the CLA.' 34 | #lock-pullrequest-aftermerge: false - if you don't want this bot to automatically lock the pull request after merging (default - true) 35 | #use-dco-flag: true - If you are using DCO instead of CLA 36 | 37 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | tags: 6 | - "v*" 7 | 8 | jobs: 9 | build-ubuntu-2404: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - name: Checkout source code 14 | uses: actions/checkout@v3 15 | 16 | - name: Build Debian Package 17 | uses: jtdor/build-deb-action@v1 18 | env: 19 | DEB_BUILD_OPTIONS: noautodbgsym 20 | with: 21 | docker-image: ubuntu:24.04 22 | buildpackage-opts: -us -uc 23 | before-build-hook: apt-get install -y devscripts equivs && mk-build-deps --install --remove debian/control && debchange --controlmaint --local="+ci${{ github.run_id }}~ubuntu2404~git$(git rev-parse --short HEAD)" "CI build" 24 | extra-build-deps: devscripts git equivs debhelper build-essential 25 | host-arch: amd64 26 | artifacts-dir: debian/artifacts-ubuntu2404 27 | 28 | - name: Upload Debian Package 29 | uses: actions/upload-artifact@v2 30 | with: 31 | name: debian-package-ubuntu2404 32 | path: debian/artifacts-ubuntu2404/*.deb 33 | 34 | build-ubuntu-2204: 35 | runs-on: ubuntu-latest 36 | 37 | steps: 38 | - name: Checkout source code 39 | uses: actions/checkout@v3 40 | 41 | - name: Build Debian Package 42 | uses: jtdor/build-deb-action@v1 43 | env: 44 | DEB_BUILD_OPTIONS: noautodbgsym 45 | with: 46 | docker-image: ubuntu:22.04 47 | buildpackage-opts: -us -uc 48 | before-build-hook: apt-get install -y devscripts equivs && mk-build-deps --install --remove debian/control && debchange --controlmaint --local="+ci${{ github.run_id }}~ubuntu2204~git$(git rev-parse --short HEAD)" "CI build" 49 | extra-build-deps: devscripts git equivs debhelper build-essential 50 | host-arch: amd64 51 | artifacts-dir: debian/artifacts-ubuntu2204 52 | 53 | - name: Upload Debian Package 54 | uses: actions/upload-artifact@v2 55 | with: 56 | name: debian-package-ubuntu2204 57 | path: debian/artifacts-ubuntu2204/*.deb 58 | 59 | release: 60 | needs: [build-ubuntu-2404, build-ubuntu-2204] 61 | runs-on: ubuntu-latest 62 | 63 | steps: 64 | - name: Download build artifacts for Ubuntu 24.04 65 | uses: actions/download-artifact@v2 66 | with: 67 | name: debian-package-ubuntu2404 68 | path: . 69 | 70 | - name: Download build artifacts for Ubuntu 22.04 71 | uses: actions/download-artifact@v2 72 | with: 73 | name: debian-package-ubuntu2204 74 | path: . 75 | 76 | - run: ls -R . 77 | 78 | - name: Create GitHub Release 79 | uses: softprops/action-gh-release@v1 80 | with: 81 | files: ./*.deb 82 | env: 83 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 84 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | INSTALL 2 | Makefile 3 | Makefile.in 4 | aclocal.m4 5 | autom4te.cache/ 6 | build-aux/ 7 | config.* 8 | configure 9 | configure~ 10 | .deps/ 11 | .libs/ 12 | *.la 13 | *.lo 14 | *.o 15 | /bin/nimf/nimf 16 | /bin/nimf-settings/nimf-settings 17 | libtool 18 | m4/ 19 | stamp-h1 20 | *.valid 21 | *anjuta* 22 | *.gir 23 | *.typelib 24 | # built sources 25 | input-method-unstable-v1-client-protocol.h 26 | input-method-unstable-v1-protocol.c 27 | nimf-enum-types.c 28 | nimf-enum-types-private.h 29 | nimf-marshalers.c 30 | nimf-marshalers-private.h 31 | nimf-message-enum-types.c 32 | nimf-message-enum-types-private.h 33 | nimf.pc 34 | nimf-settings-autostart.desktop 35 | nimf-settings.desktop 36 | po/nimf.pot 37 | POTFILES 38 | *.moc 39 | .dirstamp 40 | Makefile.in.in 41 | stamp-it 42 | *.gmo 43 | data/icons/16x16/ 44 | data/icons/22x22/ 45 | data/icons/24x24/ 46 | data/icons/32x32/ 47 | data/icons/48x48/ 48 | data/icons/96x96/ 49 | data/icons/256x256/ 50 | modules/engines/nimf-m17n/icons/16x16/ 51 | modules/engines/nimf-m17n/icons/22x22/ 52 | modules/engines/nimf-m17n/icons/24x24/ 53 | modules/engines/nimf-m17n/icons/32x32/ 54 | modules/engines/nimf-m17n/icons/48x48/ 55 | modules/engines/nimf-m17n/icons/96x96/ 56 | modules/engines/nimf-m17n/icons/256x256/ 57 | po/.intltool-merge-cache 58 | # gnome-builder 59 | .buildconfig 60 | tags 61 | # docs 62 | gtk-doc.make 63 | docs/* 64 | docs/html/ 65 | docs/xml/ 66 | !docs/nimf.png 67 | # tests 68 | test-*.log 69 | test-*.trs 70 | test-suite.log 71 | test-nimf-m17n 72 | # vscode 73 | .vscode/ 74 | *.stamp 75 | build/ 76 | libhangul/ 77 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "libhangul"] 2 | path = libhangul 3 | url = https://github.com/libhangul/libhangul.git 4 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | Hodong Kim 2 | -------------------------------------------------------------------------------- /Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = libnimf modules bin po data docs 2 | 3 | ACLOCAL_AMFLAGS = -I m4 4 | 5 | DISTCLEANFILES = \ 6 | Makefile.in \ 7 | po/Makefile.in.in \ 8 | INSTALL \ 9 | aclocal.m4 \ 10 | config.h.in \ 11 | config.h.in~ \ 12 | configure \ 13 | gtk-doc.make 14 | 15 | clean-local: 16 | @debian/rules clean || true 17 | rm -rf $(STAMP_DIR) $(SOURCE_DIR) debian/tmp config.log config.status 18 | 19 | distclean-local: 20 | rm -rf autom4te.cache build-aux m4 .anjuta .anjuta_sym_db.db 21 | 22 | update-gtk-im-cache: 23 | $(GTK_QUERY_IMMODULES2) --update-cache 24 | $(GTK_QUERY_IMMODULES3) --update-cache 25 | 26 | update-gtk-icon-cache: 27 | (cd data/icons; make update-gtk-icon-cache) 28 | 29 | ChangeLog: 30 | 31 | .PHONY: ChangeLog 32 | -------------------------------------------------------------------------------- /NEWS: -------------------------------------------------------------------------------- 1 | debian/changelog -------------------------------------------------------------------------------- /PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Kevin Kim 2 | 3 | pkgname=nimf 4 | pkgver=1.3.8 5 | pkgrel=1 6 | pkgdesc="Nimf is an input method framework." 7 | arch=('any') 8 | url="https://github.com/hamonikr/nimf" 9 | license=('LGPL3') 10 | makedepends=('binutils' 'autoconf' 'automake' 'gcc' 'make' 'glib2' 'glib2-devel' 'intltool' 11 | 'gtk3' 'gtk2' 'qt5-base' 'qt6-base' 'libappindicator-gtk3' 'libayatana-appindicator' 'librsvg' 12 | 'noto-fonts-cjk' 'libhangul-git' 'anthy' 'librime' 'libxkbcommon' 13 | 'wayland' 'wayland-protocols' 'libxklavier' 'm17n-lib' 'm17n-db' 'gtk-doc') 14 | depends=('glib2' 'gtk3' 'gtk2' 'qt5-base' 'qt6-base' 'libappindicator-gtk3' 'libhangul-git' 15 | 'anthy' 'librime' 'libxkbcommon' 'wayland' 'libxklavier' 'm17n-lib' 16 | 'm17n-db') 17 | provides=('nimf-git') 18 | conflicts=('nimf-git') 19 | optdepends=('brise: Rime schema repository' 20 | 'noto-fonts-cjk: Google Noto CJK fonts') 21 | source=("git+https://github.com/hamonikr/nimf.git#tag=v1.3.8") 22 | md5sums=('SKIP') 23 | 24 | build() { 25 | cd nimf 26 | ./autogen.sh --prefix=/usr --enable-gtk-doc 27 | make -j $(nproc) 28 | } 29 | 30 | package() { 31 | cd nimf 32 | make DESTDIR="${pkgdir}/" install 33 | } 34 | 35 | post_install() { 36 | cat < reported: 10 | A problem occurs when statically linking libnimf and then dynamically loading 11 | client modules. 12 | https://gitlab.com/nimf-i18n/nimf/issues/16#note_90967748 13 | 14 | Determining NIMF_RUNTIME_DIR, NIMF_MODULE_DIR at compile time causes problems 15 | when distributing static libnimf.a. 16 | https://gitlab.com/nimf-i18n/nimf/issues/16#note_89891251 17 | 18 | Hansol Shin (hshin23) reported segfault. 19 | https://gitlab.com/nimf-i18n/nimf/issues/57 20 | 21 | yueunseon reported: Support multi-user environment 22 | https://gitlab.com/nimf-i18n/nimf/issues/37 23 | 24 | JH (nemonein) reported issues. 25 | nimf-daemon freezes https://gitlab.com/nimf-i18n/nimf/issues/22 26 | Side effect about singleton mode https://gitlab.com/nimf-i18n/nimf/issues/7 27 | Caps Lock doesn't work correctly https://gitlab.com/nimf-i18n/nimf/issues/2 28 | 29 | madhwang reported an issue about the open files limit. 30 | https://github.com/dasom-im/dasom/issues/64 31 | 32 | Youngbin Han reported a race condition. 33 | https://github.com/dasom-im/dasom/issues/18 34 | 35 | Suhyeok Gwon named Dasom. 36 | -------------------------------------------------------------------------------- /bin/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = nimf nimf-settings 2 | 3 | DISTCLEANFILES = Makefile.in 4 | -------------------------------------------------------------------------------- /bin/nimf-settings/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_PROGRAMS = nimf-settings 2 | 3 | man_MANS = nimf-settings.1 4 | 5 | applicationsdir = $(datadir)/applications 6 | applications_DATA = nimf-settings.desktop 7 | 8 | autostartdir = /etc/xdg/autostart 9 | autostart_DATA = nimf-settings-autostart.desktop 10 | 11 | @INTLTOOL_DESKTOP_RULE@ 12 | 13 | gsettings_SCHEMAS = org.nimf.settings.gschema.xml 14 | @GSETTINGS_RULES@ 15 | 16 | AM_CFLAGS = \ 17 | $(EXTRA_CFLAGS) \ 18 | -I$(top_srcdir)/libnimf \ 19 | -DNIMF_COMPILATION \ 20 | -DNIMF_MODULE_DIR=\"$(libdir)/nimf/modules\" \ 21 | -DG_LOG_DOMAIN=\"nimf\" 22 | 23 | nimf_settings_SOURCES = nimf-settings.c 24 | nimf_settings_CFLAGS = \ 25 | $(NIMF_SETTINGS_DEPS_CFLAGS) \ 26 | $(AM_CFLAGS) 27 | 28 | nimf_settings_LDFLAGS = $(NIMF_SETTINGS_DEPS_LIBS) 29 | nimf_settings_LDADD = $(top_builddir)/libnimf/libnimf.la 30 | 31 | DISTCLEANFILES = \ 32 | Makefile.in \ 33 | nimf-settings.desktop \ 34 | nimf-settings-autostart.desktop 35 | -------------------------------------------------------------------------------- /bin/nimf-settings/nimf-settings-autostart.desktop.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Encoding=UTF-8 4 | _Name=Nimf Settings 5 | Exec=nimf-settings --gapplication-service 6 | Icon=nimf-logo 7 | Terminal=false 8 | Categories=System;Utility; 9 | X-GNOME-AutoRestart=false 10 | X-GNOME-Autostart-Notify=false 11 | X-GNOME-Autostart-Phase=Application 12 | X-KDE-autostart-after=panel 13 | X-KDE-StartupNotify=false 14 | -------------------------------------------------------------------------------- /bin/nimf-settings/nimf-settings.1: -------------------------------------------------------------------------------- 1 | .TH nimf-settings 1 "7 Jun 2019" 2 | .SH NAME 3 | nimf-settings \- Tool for setting up Nimf 4 | .SH SYNOPSIS 5 | .B nimf-settings 6 | [OPTIONS] 7 | .SH DESCRIPTION 8 | nimf-settings is a GUI tool for configuring nimf. 9 | .SH OPTIONS 10 | .TP 11 | .B \-h, \-\-help 12 | Show help messages 13 | .TP 14 | .B \-\-help\-all 15 | Show all options 16 | .TP 17 | .B \-\-help\-gapplication 18 | Show GApplication options 19 | .TP 20 | .B \-\-gapplication\-service 21 | Enter GApplication service mode. Currently this option is used to trigger the 22 | nimf indicator. 23 | .SH "EXIT STATUS" 24 | It returns 0 on success, non-zero on failure. 25 | .SH "SEE ALSO" 26 | .BR nimf (1) 27 | -------------------------------------------------------------------------------- /bin/nimf-settings/nimf-settings.desktop.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Encoding=UTF-8 4 | _Name=Nimf Settings 5 | Exec=nimf-settings 6 | Icon=nimf-logo 7 | Terminal=false 8 | Categories=Settings; -------------------------------------------------------------------------------- /bin/nimf-settings/org.nimf.settings.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | [''] 7 | xkb options 8 | xkb options 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /bin/nimf/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_PROGRAMS = nimf 2 | 3 | man_MANS = nimf.1 4 | 5 | AM_CFLAGS = \ 6 | $(EXTRA_CFLAGS) \ 7 | -I$(top_srcdir)/libnimf \ 8 | -DNIMF_COMPILATION \ 9 | -DG_LOG_DOMAIN=\"nimf\" 10 | 11 | nimf_SOURCES = nimf.c 12 | nimf_CFLAGS = \ 13 | $(LIBNIMF_DEPS_CFLAGS) \ 14 | $(NIMF_DEPS_CFLAGS) \ 15 | $(AM_CFLAGS) 16 | 17 | nimf_LDFLAGS = $(NIMF_DEPS_LIBS) 18 | nimf_LDADD = $(top_builddir)/libnimf/libnimf.la 19 | 20 | DISTCLEANFILES = Makefile.in 21 | -------------------------------------------------------------------------------- /bin/nimf/nimf.1: -------------------------------------------------------------------------------- 1 | .TH nimf 1 "7 Jun 2019" 2 | .SH NAME 3 | nimf \- Nimf input method daemon 4 | .SH SYNOPSIS 5 | .B nimf 6 | [OPTIONS] 7 | .SH DESCRIPTION 8 | nimf is an input method daemon. 9 | .SH OPTIONS 10 | .TP 11 | .B \-h, \-\-help 12 | Show help messages 13 | .TP 14 | .B \-\-debug 15 | Log debugging messages 16 | .TP 17 | .B \-\-version 18 | Show version 19 | .SH "EXIT STATUS" 20 | It returns 0 on success, non-zero on failure. 21 | .SH "SEE ALSO" 22 | .BR nimf-settings (1) 23 | -------------------------------------------------------------------------------- /cla/signatures/version1/cla.json: -------------------------------------------------------------------------------- 1 | { 2 | "signedContributors": [ 3 | { 4 | "name": "akaeful", 5 | "id": 183440835, 6 | "comment_id": 2384651168, 7 | "created_at": "2024-10-01T02:21:48Z", 8 | "repoId": 217215704, 9 | "pullRequestNo": 85 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /data/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = icons apparmor-abstractions 2 | 3 | if WITH_IM_CONFIG_DATA 4 | SUBDIRS += im-config 5 | endif 6 | 7 | if WITH_IMSETTINGS_DATA 8 | SUBDIRS += imsettings 9 | endif 10 | 11 | configdir = /etc/input.d 12 | 13 | config_DATA = nimf.conf 14 | 15 | DISTCLEANFILES = Makefile.in 16 | -------------------------------------------------------------------------------- /data/apparmor-abstractions/Makefile.am: -------------------------------------------------------------------------------- 1 | abstractionsdir = /etc/apparmor.d/abstractions 2 | 3 | abstractions_DATA = nimf 4 | 5 | DISTCLEANFILES = Makefile.in 6 | -------------------------------------------------------------------------------- /data/apparmor-abstractions/nimf: -------------------------------------------------------------------------------- 1 | # vim:syntax=apparmor 2 | 3 | # Allow connecting to the nimf socket 4 | unix (send, receive, connect) 5 | type=stream 6 | peer=(addr="/{,var/}run/user/[0-9]*/nimf/socket"), 7 | -------------------------------------------------------------------------------- /data/icons/scalable/nimf-logo.svg: -------------------------------------------------------------------------------- 1 | nimf-logo -------------------------------------------------------------------------------- /data/icons/scalable/nimf-rime-simplified.svg: -------------------------------------------------------------------------------- 1 | 2 | 13 | 31 | 33 | 35 | 36 | nimf-rime-simplified 38 | 41 | 51 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /data/icons/scalable/nimf-rime-traditional.svg: -------------------------------------------------------------------------------- 1 | 2 | 13 | 31 | 33 | 35 | 36 | nimf-rime-traditional 38 | 41 | 46 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /data/im-config/23_nimf.conf: -------------------------------------------------------------------------------- 1 | IM_CONFIG_SHORT="$(gettext "activate Nimf")" 2 | 3 | IM_CONFIG_LONG="$(gettext "Nimf Input Method Framework")" 4 | 5 | package_auto () { 6 | : 7 | } 8 | 9 | package_menu () { 10 | : 11 | } 12 | -------------------------------------------------------------------------------- /data/im-config/23_nimf.rc: -------------------------------------------------------------------------------- 1 | if [ "$IM_CONFIG_PHASE" = 2 ]; then 2 | nimf 3 | fi 4 | 5 | if [ "$IM_CONFIG_PHASE" = 1 ]; then 6 | XMODIFIERS="@im=nimf" 7 | GTK_IM_MODULE=nimf 8 | QT4_IM_MODULE=xim 9 | QT_IM_MODULE=nimf 10 | CLUTTER_IM_MODULE=xim 11 | fi 12 | -------------------------------------------------------------------------------- /data/im-config/Makefile.am: -------------------------------------------------------------------------------- 1 | imconfigdir = /usr/share/im-config/data 2 | 3 | imconfig_DATA = \ 4 | 23_nimf.conf \ 5 | 23_nimf.rc 6 | 7 | DISTCLEANFILES = Makefile.in 8 | -------------------------------------------------------------------------------- /data/imsettings/Makefile.am: -------------------------------------------------------------------------------- 1 | imsettingsdir = /etc/X11/xinit/xinput.d 2 | imsettings_DATA = nimf.conf 3 | 4 | DISTCLEANFILES = Makefile.in 5 | -------------------------------------------------------------------------------- /data/imsettings/nimf.conf: -------------------------------------------------------------------------------- 1 | XIM=nimf 2 | XIM_PROGRAM=/usr/bin/nimf 3 | PREFERENCE_PROGRAM=/usr/bin/nimf-settings 4 | ICON=nimf 5 | SHORT_DESC=Nimf 6 | GTK_IM_MODULE=nimf 7 | QT_IM_MODULE=nimf 8 | -------------------------------------------------------------------------------- /data/nimf.conf: -------------------------------------------------------------------------------- 1 | GTK_IM_MODULE=nimf 2 | QT4_IM_MODULE=xim 3 | QT_IM_MODULE=nimf 4 | XMODIFIERS=@im=nimf 5 | -------------------------------------------------------------------------------- /debian/compat: -------------------------------------------------------------------------------- 1 | 11 2 | -------------------------------------------------------------------------------- /debian/git-build-recipe.manifest: -------------------------------------------------------------------------------- 1 | # git-build-recipe format 0.4 deb-version {debupstream}-0~201908141206 2 | lp:~nimf-i18n/+git/nimf git-commit:dec1a11c3034677a825b0dff319a05a8d019ae08 3 | -------------------------------------------------------------------------------- /debian/libnimf1.install: -------------------------------------------------------------------------------- 1 | usr/lib/*/libnimf.so.* 2 | -------------------------------------------------------------------------------- /debian/nimf-anthy.install: -------------------------------------------------------------------------------- 1 | usr/share/icons/hicolor/*/status/nimf-anthy.* 2 | usr/share/glib-2.0/schemas/org.nimf.engines.nimf-anthy.gschema.xml 3 | usr/lib/*/nimf/modules/libnimf-anthy.so 4 | -------------------------------------------------------------------------------- /debian/nimf-dev.install: -------------------------------------------------------------------------------- 1 | usr/include 2 | usr/lib/*/libnimf.so 3 | usr/lib/*/pkgconfig 4 | usr/share/gtk-doc 5 | -------------------------------------------------------------------------------- /debian/nimf-libhangul.install: -------------------------------------------------------------------------------- 1 | usr/share/icons/hicolor/*/status/nimf-libhangul.* 2 | usr/share/glib-2.0/schemas/org.nimf.engines.nimf-libhangul.gschema.xml 3 | usr/lib/*/nimf/modules/libnimf-libhangul.so 4 | usr/lib/*/nimf/mssymbol.txt 5 | -------------------------------------------------------------------------------- /debian/nimf-m17n.install: -------------------------------------------------------------------------------- 1 | usr/share/icons/hicolor/*/status/nimf-m17n* 2 | usr/share/glib-2.0/schemas/org.nimf.engines.nimf-m17n*.gschema.xml 3 | usr/lib/*/nimf/modules/libnimf-m17n*.so 4 | -------------------------------------------------------------------------------- /debian/nimf-rime.install: -------------------------------------------------------------------------------- 1 | usr/share/icons/hicolor/*/status/nimf-rime-* 2 | usr/share/glib-2.0/schemas/org.nimf.engines.nimf-rime.gschema.xml 3 | usr/lib/*/nimf/modules/libnimf-rime.so 4 | -------------------------------------------------------------------------------- /debian/nimf.install: -------------------------------------------------------------------------------- 1 | etc/input.d/nimf.conf 2 | etc/xdg/autostart 3 | usr/bin 4 | usr/lib/*/gtk-* 5 | usr/lib/*/nimf/modules/libnimf-system-keyboard.so 6 | usr/lib/*/nimf/modules/services 7 | usr/lib/*/qt* 8 | usr/share/applications 9 | usr/share/glib-2.0/schemas/org.nimf.clients.* 10 | usr/share/glib-2.0/schemas/org.nimf.engines.nimf-system-keyboard.gschema.xml 11 | usr/share/glib-2.0/schemas/org.nimf.gschema.xml 12 | usr/share/glib-2.0/schemas/org.nimf.settings.gschema.xml 13 | usr/share/icons/hicolor/*/status/nimf-focus-out.* 14 | usr/share/icons/hicolor/*/status/nimf-logo.* 15 | usr/share/icons/hicolor/*/status/nimf-system-keyboard.* 16 | usr/share/im-config 17 | usr/share/locale 18 | usr/share/man 19 | -------------------------------------------------------------------------------- /debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # -*- makefile -*- 3 | # Uncomment this to turn on verbose mode. 4 | #export DH_VERBOSE=1 5 | 6 | %: 7 | dh $@ --with autoreconf 8 | 9 | override_dh_autoreconf: 10 | ./autogen.sh 11 | 12 | override_dh_auto_configure: 13 | dh_auto_configure -- --with-im-config-data --enable-gtk-doc 14 | 15 | override_dh_auto_clean: 16 | rm -rf $(STAMP_DIR) $(SOURCE_DIR) 17 | dh_clean 18 | 19 | override_dh_clean: 20 | dh_clean 21 | rm -rf autom4te.cache 22 | rm -f aclocal.m4 config.log config.status 23 | rm -rf debian/tmp 24 | 25 | override_dh_shlibdeps: 26 | dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info 27 | 28 | override_dh_auto_test: 29 | # dh_auto_test || true 30 | echo "Skipping tests" 31 | -------------------------------------------------------------------------------- /debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (native) 2 | -------------------------------------------------------------------------------- /debian/source/lintian-overrides: -------------------------------------------------------------------------------- 1 | nimf: source-is-missing -------------------------------------------------------------------------------- /docs/Makefile.am: -------------------------------------------------------------------------------- 1 | DOC_MODULE = nimf 2 | 3 | DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml 4 | 5 | DOC_SOURCE_DIR = \ 6 | $(top_srcdir)/libnimf \ 7 | $(top_srcdir)/bin 8 | 9 | MKDB_OPTIONS = --xml-mode --output-format=xml --name-space=nimf 10 | 11 | SCAN_OPTIONS = --rebuild-types 12 | 13 | HFILE_GLOB = \ 14 | $(top_srcdir)/libnimf/*.h \ 15 | $(top_builddir)/libnimf/*.h 16 | 17 | CFILE_GLOB = \ 18 | $(top_srcdir)/libnimf/*.c \ 19 | $(top_srcdir)/bin/nimf/nimf.c \ 20 | $(top_srcdir)/bin/nimf-settings/nimf-settings.c 21 | 22 | IGNORE_HFILES = \ 23 | nimf-enum-types-private.h \ 24 | nimf-marshalers-private.h \ 25 | nimf-message-enum-types-private.h \ 26 | nimf-message-private.h \ 27 | nimf-module-private.h \ 28 | nimf-server-private.h 29 | 30 | GTKDOC_LIBS = $(top_builddir)/libnimf/libnimf.la 31 | 32 | include $(top_srcdir)/gtk-doc.make 33 | 34 | DISTCLEANFILES = Makefile.in 35 | -------------------------------------------------------------------------------- /docs/html/abstract-classes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Abstract Classes: Nimf Reference Manual 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |

24 | Abstract Classes

25 |
26 |
27 | NimfEngine 28 |
29 |
30 | NimfService 31 |
32 |
33 | NimfServiceIC 34 |
35 |
36 |
37 | 39 | 40 | -------------------------------------------------------------------------------- /docs/html/executables.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Part II. Executables: Nimf Reference Manual 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |

24 | Part II. Executables

25 |
26 |

Table of Contents

27 |
28 |
29 | nimf — Nimf input method daemon 30 |
31 |
32 | nimf-settings — Tool for setting up Nimf 33 |
34 |
35 |
36 |
37 | 39 | 40 | -------------------------------------------------------------------------------- /docs/html/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hamonikr/nimf/dab95c339e5055ce3b8f30ba197b51fca1dd1cc2/docs/html/home.png -------------------------------------------------------------------------------- /docs/html/interfaces.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Interfaces: Nimf Reference Manual 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |

24 | Interfaces

25 |
26 |
27 | NimfCandidatable 28 |
29 |
30 | NimfPreeditable 31 |
32 |
33 |
34 | 36 | 37 | -------------------------------------------------------------------------------- /docs/html/left-insensitive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hamonikr/nimf/dab95c339e5055ce3b8f30ba197b51fca1dd1cc2/docs/html/left-insensitive.png -------------------------------------------------------------------------------- /docs/html/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hamonikr/nimf/dab95c339e5055ce3b8f30ba197b51fca1dd1cc2/docs/html/left.png -------------------------------------------------------------------------------- /docs/html/object-tree.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Object Hierarchy: Nimf Reference Manual 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |

24 | Object Hierarchy

25 |
26 |     GObject
27 |     ├── NimfEngine
28 |     ├── NimfIM
29 |     ├── NimfServer
30 |     ├── NimfService
31 |     ╰── NimfServiceIC
32 |     GInterface
33 |     ├── NimfCandidatable
34 |     ╰── NimfPreeditable
35 | 
36 |
37 | 39 | 40 | -------------------------------------------------------------------------------- /docs/html/right-insensitive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hamonikr/nimf/dab95c339e5055ce3b8f30ba197b51fca1dd1cc2/docs/html/right-insensitive.png -------------------------------------------------------------------------------- /docs/html/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hamonikr/nimf/dab95c339e5055ce3b8f30ba197b51fca1dd1cc2/docs/html/right.png -------------------------------------------------------------------------------- /docs/html/up-insensitive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hamonikr/nimf/dab95c339e5055ce3b8f30ba197b51fca1dd1cc2/docs/html/up-insensitive.png -------------------------------------------------------------------------------- /docs/html/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hamonikr/nimf/dab95c339e5055ce3b8f30ba197b51fca1dd1cc2/docs/html/up.png -------------------------------------------------------------------------------- /docs/manjaro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hamonikr/nimf/dab95c339e5055ce3b8f30ba197b51fca1dd1cc2/docs/manjaro.png -------------------------------------------------------------------------------- /docs/nimf-docs.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | %gtkdocentities; 8 | ]> 9 | 10 | 11 | Nimf Reference Manual 12 | 13 | for &package_string;. 14 | The latest version of this documentation can be found on-line at 15 | https://nimf-i18n.gitlab.io/reference/. 16 | 17 | 18 | 19 | 20 | libnimf API 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | Interfaces 29 | 30 | 31 | 32 | 33 | Abstract Classes 34 | 35 | 36 | 37 | 38 | 39 | 40 | Executables 41 | 42 | 43 | 44 | 45 | Object Hierarchy 46 | 47 | 48 | 49 | API Index 50 | 51 | 52 | 53 | Index of deprecated API 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /docs/nimf-overrides.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hamonikr/nimf/dab95c339e5055ce3b8f30ba197b51fca1dd1cc2/docs/nimf-overrides.txt -------------------------------------------------------------------------------- /docs/nimf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hamonikr/nimf/dab95c339e5055ce3b8f30ba197b51fca1dd1cc2/docs/nimf.png -------------------------------------------------------------------------------- /docs/xml/annotation-glossary.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | %gtkdocentities; 8 | ]> 9 | 10 | Annotation Glossary 11 | N 12 | 13 | nullable 14 | 15 | NULL may be passed as the value in, out, in-out; or as a return value. 16 | 17 | 18 | 19 | O 20 | 21 | out 22 | 23 | Parameter for returning results. Default is transfer full. 24 | 25 | 26 | 27 | T 28 | 29 | transfer full 30 | 31 | The caller owns the data, and is responsible for free it. 32 | 33 | 34 | 35 | transfer none 36 | 37 | The data is owned by the callee, which is responsible of freeing it. 38 | 39 | 40 | 41 | type 42 | 43 | Override the parsed C type with given type. 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /docs/xml/api-index-deprecated.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | %gtkdocentities; 8 | ]> 9 | 10 | 11 | -------------------------------------------------------------------------------- /docs/xml/gtkdocentities.ent: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/xml/nimf-doc.bottom: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /docs/xml/nimf-doc.top: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hamonikr/nimf/dab95c339e5055ce3b8f30ba197b51fca1dd1cc2/docs/xml/nimf-doc.top -------------------------------------------------------------------------------- /docs/xml/nimf-settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | %gtkdocentities; 8 | ]> 9 | 10 | 11 | nimf-settings 12 | 1 13 | User Commands 14 | 15 | 16 | nimf-settings 17 | Tool for setting up Nimf 18 | 19 | 20 | nimf-settings 21 | OPTIONS 22 | 23 | 24 | 25 | Description 26 | nimf-settings is a GUI tool for configuring nimf. 27 | 28 | 29 | 30 | Options 31 | 32 | 33 | 34 | , 35 | 36 | Show help messages 37 | 38 | 39 | 40 | 41 | 42 | Show all options 43 | 44 | 45 | 46 | 47 | 48 | Show GApplication options 49 | 50 | 51 | 52 | 53 | 54 | Enter GApplication service mode. Currently this 55 | option is used to trigger the nimf indicator. 56 | 57 | 58 | 59 | 60 | Exit Status 61 | 0 on success, non-zero on failure 62 | 63 | 64 | 65 | See Also 66 | nimf(1) 67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /docs/xml/nimf.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | %gtkdocentities; 8 | ]> 9 | 10 | 11 | nimf 12 | 1 13 | User Commands 14 | 15 | 16 | nimf 17 | Nimf input method daemon 18 | 19 | 20 | nimf 21 | OPTIONS 22 | 23 | 24 | 25 | Description 26 | nimf is an input method daemon. 27 | 28 | 29 | 30 | Options 31 | 32 | 33 | 34 | , 35 | 36 | Show help messages 37 | 38 | 39 | 40 | 41 | 42 | Log debugging messages 43 | 44 | 45 | 46 | 47 | 48 | Show version 49 | 50 | 51 | 52 | 53 | Exit Status 54 | 0 on success, non-zero on failure 55 | 56 | 57 | 58 | See Also 59 | nimf-settings(1) 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /docs/xml/object_index.sgml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | %gtkdocentities; 8 | ]> 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | GInterface 17 | GObject 18 | NimfCandidatable 19 | 20 | 21 | NimfEngine 22 | NimfIM 23 | NimfPreeditable 24 | 25 | 26 | NimfServer 27 | NimfService 28 | NimfServiceIC 29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/xml/tree_index.sgml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | %gtkdocentities; 8 | ]> 9 | 10 | GObject 11 | ├── NimfEngine 12 | ├── NimfIM 13 | ├── NimfServer 14 | ├── NimfService 15 | ╰── NimfServiceIC 16 | GInterface 17 | ├── NimfCandidatable 18 | ╰── NimfPreeditable 19 | 20 | -------------------------------------------------------------------------------- /libnimf/nimf-enum-types-private.h.template: -------------------------------------------------------------------------------- 1 | /*** BEGIN file-header ***/ 2 | /* 3 | * This file is part of Nimf. 4 | * 5 | * Nimf is free software: you can redistribute it and/or modify it 6 | * under the terms of the GNU Lesser General Public License as published 7 | * by the Free Software Foundation, either version 3 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * Nimf is distributed in the hope that it will be useful, but 11 | * WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13 | * See the GNU Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public License 16 | * along with this program; If not, see . 17 | */ 18 | 19 | #ifndef __NIMF_ENUM_TYPES_H__ 20 | #define __NIMF_ENUM_TYPES_H__ 21 | 22 | #include 23 | 24 | G_BEGIN_DECLS 25 | /*** END file-header ***/ 26 | 27 | /*** BEGIN file-production ***/ 28 | 29 | /* enumerations from "@filename@" */ 30 | /*** END file-production ***/ 31 | 32 | /*** BEGIN value-header ***/ 33 | GType @enum_name@_get_type (void) G_GNUC_CONST; 34 | #define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ()) 35 | /*** END value-header ***/ 36 | 37 | /*** BEGIN file-tail ***/ 38 | G_END_DECLS 39 | 40 | #endif /* __NIMF_ENUM_TYPES_H__ */ 41 | /*** END file-tail ***/ 42 | -------------------------------------------------------------------------------- /libnimf/nimf-enum-types.c.template: -------------------------------------------------------------------------------- 1 | /*** BEGIN file-header ***/ 2 | /* 3 | * This file is part of Nimf. 4 | * 5 | * Nimf is free software: you can redistribute it and/or modify it 6 | * under the terms of the GNU Lesser General Public License as published 7 | * by the Free Software Foundation, either version 3 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * Nimf is distributed in the hope that it will be useful, but 11 | * WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13 | * See the GNU Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public License 16 | * along with this program; If not, see . 17 | */ 18 | 19 | #include "nimf-enum-types-private.h" 20 | #include "nimf-key-syms.h" 21 | #include "nimf-types.h" 22 | 23 | /*** END file-header ***/ 24 | 25 | /*** BEGIN file-production ***/ 26 | /* enumerations from "@filename@" */ 27 | /*** END file-production ***/ 28 | 29 | /*** BEGIN value-header ***/ 30 | GType 31 | @enum_name@_get_type (void) 32 | { 33 | static volatile gsize g_define_type_id__volatile = 0; 34 | 35 | if (g_once_init_enter (&g_define_type_id__volatile)) 36 | { 37 | static const G@Type@Value values[] = { 38 | /*** END value-header ***/ 39 | 40 | /*** BEGIN value-production ***/ 41 | { @VALUENAME@, "@VALUENAME@", "@valuenick@" }, 42 | /*** END value-production ***/ 43 | 44 | /*** BEGIN value-tail ***/ 45 | { 0, NULL, NULL } 46 | }; 47 | GType g_define_type_id = 48 | g_@type@_register_static (g_intern_static_string ("@EnumName@"), values); 49 | g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); 50 | } 51 | 52 | return g_define_type_id__volatile; 53 | } 54 | 55 | /*** END value-tail ***/ 56 | -------------------------------------------------------------------------------- /libnimf/nimf-marshalers.list: -------------------------------------------------------------------------------- 1 | VOID:VOID 2 | VOID:STRING 3 | VOID:STRING,STRING 4 | BOOLEAN:VOID 5 | BOOLEAN:INT,INT 6 | -------------------------------------------------------------------------------- /libnimf/nimf-message-enum-types-private.h.template: -------------------------------------------------------------------------------- 1 | /*** BEGIN file-header ***/ 2 | /* 3 | * This file is part of Nimf. 4 | * 5 | * Nimf is free software: you can redistribute it and/or modify it 6 | * under the terms of the GNU Lesser General Public License as published 7 | * by the Free Software Foundation, either version 3 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * Nimf is distributed in the hope that it will be useful, but 11 | * WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13 | * See the GNU Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public License 16 | * along with this program; If not, see . 17 | */ 18 | 19 | #ifndef __NIMF_MESSAGE_ENUM_TYPES_H__ 20 | #define __NIMF_MESSAGE_ENUM_TYPES_H__ 21 | 22 | #include 23 | 24 | G_BEGIN_DECLS 25 | /*** END file-header ***/ 26 | 27 | /*** BEGIN file-production ***/ 28 | 29 | /* enumerations from "@filename@" */ 30 | /*** END file-production ***/ 31 | 32 | /*** BEGIN value-header ***/ 33 | GType @enum_name@_get_type (void) G_GNUC_CONST; 34 | #define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ()) 35 | /*** END value-header ***/ 36 | 37 | /*** BEGIN file-tail ***/ 38 | G_END_DECLS 39 | 40 | #endif /* __NIMF_MESSAGE_ENUM_TYPES_H__ */ 41 | /*** END file-tail ***/ 42 | -------------------------------------------------------------------------------- /libnimf/nimf-message-enum-types.c.template: -------------------------------------------------------------------------------- 1 | /*** BEGIN file-header ***/ 2 | /* 3 | * This file is part of Nimf. 4 | * 5 | * Nimf is free software: you can redistribute it and/or modify it 6 | * under the terms of the GNU Lesser General Public License as published 7 | * by the Free Software Foundation, either version 3 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * Nimf is distributed in the hope that it will be useful, but 11 | * WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13 | * See the GNU Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Lesser General Public License 16 | * along with this program; If not, see . 17 | */ 18 | 19 | #include "nimf-message-enum-types-private.h" 20 | #include "nimf-message-private.h" 21 | 22 | /*** END file-header ***/ 23 | 24 | /*** BEGIN file-production ***/ 25 | /* enumerations from "@filename@" */ 26 | /*** END file-production ***/ 27 | 28 | /*** BEGIN value-header ***/ 29 | GType 30 | @enum_name@_get_type (void) 31 | { 32 | static volatile gsize g_define_type_id__volatile = 0; 33 | 34 | if (g_once_init_enter (&g_define_type_id__volatile)) 35 | { 36 | static const G@Type@Value values[] = { 37 | /*** END value-header ***/ 38 | 39 | /*** BEGIN value-production ***/ 40 | { @VALUENAME@, "@VALUENAME@", "@valuenick@" }, 41 | /*** END value-production ***/ 42 | 43 | /*** BEGIN value-tail ***/ 44 | { 0, NULL, NULL } 45 | }; 46 | GType g_define_type_id = 47 | g_@type@_register_static (g_intern_static_string ("@EnumName@"), values); 48 | g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); 49 | } 50 | 51 | return g_define_type_id__volatile; 52 | } 53 | 54 | /*** END value-tail ***/ 55 | -------------------------------------------------------------------------------- /libnimf/nimf-module-private.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ 2 | /* 3 | * nimf-module-private.h 4 | * This file is part of Nimf. 5 | * 6 | * Copyright (C) 2015-2019 Hodong Kim 7 | * 8 | * Nimf is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * Nimf is distributed in the hope that it will be useful, but 14 | * WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 | * See the GNU Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public License 19 | * along with this program; If not, see . 20 | */ 21 | 22 | #ifndef __NIMF_MODULE_H__ 23 | #define __NIMF_MODULE_H__ 24 | 25 | #if !defined (__NIMF_H_INSIDE__) && !defined (NIMF_COMPILATION) 26 | #error "Only can be included directly." 27 | #endif 28 | 29 | #include 30 | #include 31 | #include "nimf-engine.h" 32 | 33 | G_BEGIN_DECLS 34 | 35 | #define NIMF_TYPE_MODULE (nimf_module_get_type ()) 36 | #define NIMF_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NIMF_TYPE_MODULE, NimfModule)) 37 | #define NIMF_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NIMF_TYPE_MODULE, NimfModuleClass)) 38 | #define NIMF_IS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NIMF_TYPE_MODULE)) 39 | #define NIMF_IS_MODULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NIMF_TYPE_MODULE)) 40 | #define NIMF_MODULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NIMF_TYPE_MODULE, NimfModuleClass)) 41 | 42 | typedef struct _NimfModule NimfModule; 43 | typedef struct _NimfModuleClass NimfModuleClass; 44 | 45 | struct _NimfModule 46 | { 47 | GTypeModule parent_instance; 48 | 49 | gchar *path; 50 | GModule *library; 51 | GType type; 52 | }; 53 | 54 | struct _NimfModuleClass 55 | { 56 | GTypeModuleClass parent_class; 57 | }; 58 | 59 | GType nimf_module_get_type (void) G_GNUC_CONST; 60 | NimfModule *nimf_module_new (const gchar *path); 61 | 62 | G_END_DECLS 63 | 64 | #endif /* __NIMF_MODULE_H__ */ 65 | -------------------------------------------------------------------------------- /libnimf/nimf-server-private.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ 2 | /* 3 | * nimf-server-private.h 4 | * This file is part of Nimf. 5 | * 6 | * Copyright (C) 2015-2019 Hodong Kim 7 | * 8 | * Nimf is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * Nimf is distributed in the hope that it will be useful, but 14 | * WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 | * See the GNU Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public License 19 | * along with this program; If not, see . 20 | */ 21 | 22 | #ifndef __NIMF_SERVER_PRIVATE_H__ 23 | #define __NIMF_SERVER_PRIVATE_H__ 24 | 25 | #include "nimf-server.h" 26 | #include "nimf-service-ic.h" 27 | 28 | G_BEGIN_DECLS 29 | 30 | struct _NimfServerPrivate 31 | { 32 | GHashTable *modules; 33 | GHashTable *services; 34 | GList *engines; 35 | NimfServiceIC *last_focused_im; 36 | const gchar *last_focused_service; 37 | GSettings *settings; 38 | NimfKey **hotkeys; 39 | GHashTable *shortcuts; 40 | gboolean use_singleton; 41 | GPtrArray *ics; 42 | /* facilities */ 43 | NimfCandidatable *candidatable; 44 | NimfPreeditable *preeditable; 45 | }; 46 | 47 | typedef struct { 48 | GSettings *settings; 49 | NimfKey **to_lang; 50 | NimfKey **to_sys; 51 | } NimfShortcut; 52 | 53 | G_END_DECLS 54 | 55 | NimfEngine *nimf_server_get_default_engine (NimfServer *server); 56 | NimfEngine *nimf_server_get_next_engine (NimfServer *server, 57 | NimfEngine *engine); 58 | NimfEngine *nimf_server_get_engine_by_id (NimfServer *server, 59 | const gchar *engine_id); 60 | gboolean nimf_server_start (NimfServer *server); 61 | 62 | #endif /* __NIMF_SERVER_PRIVATE_H__ */ 63 | 64 | -------------------------------------------------------------------------------- /libnimf/nimf-service-ic-private.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ 2 | /* 3 | * nimf-service-ic-private.h 4 | * This file is part of Nimf. 5 | * 6 | * Copyright (C) 2019 Hodong Kim 7 | * 8 | * Nimf is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * Nimf is distributed in the hope that it will be useful, but 14 | * WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 | * See the GNU Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public License 19 | * along with this program; If not, see . 20 | */ 21 | 22 | #ifndef __NIMF_SERVICE_IC_PRIVATE_H__ 23 | #define __NIMF_SERVICE_IC_PRIVATE_H__ 24 | 25 | #include "nimf-service-ic.h" 26 | 27 | G_BEGIN_DECLS 28 | 29 | extern void 30 | nimf_service_ic_load_engine (NimfServiceIC *ic, 31 | const gchar *engine_id, 32 | NimfServer *server); 33 | extern void 34 | nimf_service_ic_unload_engine (NimfServiceIC *ic, 35 | const gchar *engine_id, 36 | NimfEngine *signleton_engine_to_be_deleted, 37 | NimfServer *server); 38 | 39 | G_END_DECLS 40 | 41 | #endif /* __NIMF_SERVICE_IC_PRIVATE_H__ */ 42 | -------------------------------------------------------------------------------- /libnimf/nimf-utils-private.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ 2 | /* 3 | * nimf-utils-private.h 4 | * This file is part of Nimf. 5 | * 6 | * Copyright (C) 2019 Hodong Kim 7 | * 8 | * Nimf is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * Nimf is distributed in the hope that it will be useful, but 14 | * WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 | * See the GNU Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public License 19 | * along with this program; If not, see . 20 | */ 21 | 22 | #ifndef __NIMF_UTILS_PRIVATE_H__ 23 | #define __NIMF_UTILS_PRIVATE_H__ 24 | 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | gboolean gnome_is_running (void); 30 | gboolean gnome_xkb_is_available (void); 31 | G_END_DECLS 32 | 33 | #endif /* __NIMF_UTILS_PRIVATE_H__ */ 34 | -------------------------------------------------------------------------------- /libnimf/nimf-utils.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ 2 | /* 3 | * nimf-utils.h 4 | * This file is part of Nimf. 5 | * 6 | * Copyright (C) 2015-2019 Hodong Kim 7 | * 8 | * Nimf is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * Nimf is distributed in the hope that it will be useful, but 14 | * WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 | * See the GNU Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public License 19 | * along with this program; If not, see . 20 | */ 21 | 22 | #ifndef __NIMF_UTILS_H__ 23 | #define __NIMF_UTILS_H__ 24 | 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | const gchar *nimf_keyval_to_keysym_name (guint keyval); 30 | gchar *nimf_get_socket_path (void); 31 | 32 | G_END_DECLS 33 | 34 | #endif /* __NIMF_UTILS_H__ */ 35 | -------------------------------------------------------------------------------- /libnimf/nimf.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ 2 | /* 3 | * nimf.h 4 | * This file is part of Nimf. 5 | * 6 | * Copyright (C) 2015-2019 Hodong Kim 7 | * 8 | * Nimf is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * Nimf is distributed in the hope that it will be useful, but 14 | * WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 | * See the GNU Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public License 19 | * along with this program; If not, see . 20 | */ 21 | 22 | #ifndef __NIMF_H__ 23 | #define __NIMF_H__ 24 | 25 | #define __NIMF_H_INSIDE__ 26 | 27 | #include "nimf-candidatable.h" 28 | #include "nimf-engine.h" 29 | #include "nimf-events.h" 30 | #include "nimf-im.h" 31 | #include "nimf-key-syms.h" 32 | #include "nimf-preeditable.h" 33 | #include "nimf-server.h" 34 | #include "nimf-service.h" 35 | #include "nimf-service-ic.h" 36 | #include "nimf-types.h" 37 | #include "nimf-utils.h" 38 | 39 | #undef __NIMF_H_INSIDE__ 40 | 41 | #endif /* __NIMF_H__ */ 42 | -------------------------------------------------------------------------------- /libnimf/nimf.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@ 5 | 6 | Name: Nimf 7 | Description: Nimf Input Method Framework Library 8 | Version: @VERSION@ 9 | Requires: @LIBNIMF_REQUIRES@ 10 | Libs: -L${libdir} -lnimf 11 | Cflags: -I${includedir}/nimf 12 | -------------------------------------------------------------------------------- /modules/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = engines clients services 2 | 3 | DISTCLEANFILES = Makefile.in 4 | -------------------------------------------------------------------------------- /modules/clients/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = gtk qt5 qt6 2 | 3 | # if HAVE_QT5 4 | # SUBDIRS += qt5 5 | # endif 6 | 7 | # if HAVE_QT6 8 | # SUBDIRS += qt6 9 | # endif 10 | 11 | DISTCLEANFILES = Makefile.in 12 | -------------------------------------------------------------------------------- /modules/clients/gtk/Makefile.am: -------------------------------------------------------------------------------- 1 | gsettings_SCHEMAS = org.nimf.clients.gtk.gschema.xml 2 | @GSETTINGS_RULES@ 3 | 4 | AM_CFLAGS = \ 5 | $(EXTRA_CFLAGS) \ 6 | -I$(top_srcdir)/libnimf \ 7 | -DG_LOG_DOMAIN=\"nimf\" 8 | 9 | # for gtk3 10 | 11 | gtk3_im_moduledir = $(GTK3_LIBDIR)/gtk-3.0/$(GTK3_BINARY_VERSION)/immodules 12 | gtk3_im_module_LTLIBRARIES = im-nimf-gtk3.la 13 | 14 | im_nimf_gtk3_la_SOURCES = im-nimf.c 15 | im_nimf_gtk3_la_CFLAGS = $(IM_NIMF_GTK3_DEPS_CFLAGS) $(AM_CFLAGS) 16 | im_nimf_gtk3_la_LDFLAGS = $(IM_NIMF_GTK3_DEPS_LIBS) -avoid-version -module 17 | im_nimf_gtk3_la_LIBADD = $(top_builddir)/libnimf/libnimf.la 18 | 19 | # for gtk2 20 | 21 | gtk2_im_moduledir = $(GTK2_LIBDIR)/gtk-2.0/$(GTK2_BINARY_VERSION)/immodules 22 | gtk2_im_module_LTLIBRARIES = im-nimf-gtk2.la 23 | 24 | im_nimf_gtk2_la_SOURCES = im-nimf.c 25 | im_nimf_gtk2_la_CFLAGS = $(IM_NIMF_GTK2_DEPS_CFLAGS) $(AM_CFLAGS) \ 26 | -Wno-error=deprecated-declarations 27 | im_nimf_gtk2_la_LDFLAGS = $(IM_NIMF_GTK2_DEPS_LIBS) -avoid-version -module 28 | im_nimf_gtk2_la_LIBADD = $(top_builddir)/libnimf/libnimf.la 29 | 30 | DISTCLEANFILES = Makefile.in 31 | 32 | install-data-hook: 33 | chmod -x $(DESTDIR)$(gtk3_im_moduledir)/im-nimf-gtk3.so 34 | chmod -x $(DESTDIR)$(gtk2_im_moduledir)/im-nimf-gtk2.so 35 | rm -f $(DESTDIR)$(gtk3_im_moduledir)/im-nimf-gtk3.la 36 | rm -f $(DESTDIR)$(gtk2_im_moduledir)/im-nimf-gtk2.la 37 | 38 | uninstall-hook: 39 | rm -f $(DESTDIR)$(gtk3_im_moduledir)/im-nimf-gtk3.so 40 | rm -f $(DESTDIR)$(gtk2_im_moduledir)/im-nimf-gtk2.so 41 | $(GTK_QUERY_IMMODULES2) --update-cache 42 | $(GTK_QUERY_IMMODULES3) --update-cache 43 | -------------------------------------------------------------------------------- /modules/clients/gtk/org.nimf.clients.gtk.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 'GTK+' 7 | schema name for nimf-settings 8 | This key is intended for nimf-settings. 9 | 10 | 11 | false 12 | Hooking GDK key events 13 | Filter all key events before delivering them normally, which avoids bugs of many applications 14 | 15 | 16 | false 17 | Reset when clicking the mouse button 18 | Reset when clicking the mouse button 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /modules/clients/qt5/Makefile.am: -------------------------------------------------------------------------------- 1 | gsettings_SCHEMAS = org.nimf.clients.qt5.gschema.xml 2 | @GSETTINGS_RULES@ 3 | 4 | qt5_im_moduledir = $(QT5_IM_MODULE_DIR) 5 | qt5_im_module_LTLIBRARIES = libqt5im-nimf.la 6 | 7 | BUILT_SOURCES = im-nimf-qt5.moc 8 | libqt5im_nimf_la_SOURCES = im-nimf-qt5.cpp $(BUILT_SOURCES) 9 | 10 | libqt5im_nimf_la_CXXFLAGS = \ 11 | $(EXTRA_CFLAGS) \ 12 | $(LIBNIMF_DEPS_CFLAGS) \ 13 | -I$(top_srcdir)/libnimf \ 14 | -DG_LOG_DOMAIN=\"nimf\" \ 15 | -DNIMF_COMPILATION \ 16 | $(IM_NIMF_QT5_DEPS_CFLAGS) \ 17 | -I$(QT5_CORE_PRIVATE_INCLUDE_PATH) \ 18 | -I$(QT5_GUI_PRIVATE_INCLUDE_PATH) \ 19 | -DQT_NO_KEYWORDS \ 20 | -fPIC \ 21 | -std=c++11 22 | 23 | libqt5im_nimf_la_LDFLAGS = -avoid-version -module \ 24 | $(IM_NIMF_QT5_DEPS_LIBS) \ 25 | $(LIBNIMF_DEPS_LIBS) 26 | libqt5im_nimf_la_LIBADD = $(top_builddir)/libnimf/libnimf.la 27 | 28 | im-nimf-qt5.moc: im-nimf-qt5.cpp 29 | $(AM_V_GEN) $(QT5_MOC) -I $(QT5_CORE_PRIVATE_INCLUDE_PATH) \ 30 | -I $(QT5_GUI_PRIVATE_INCLUDE_PATH) im-nimf-qt5.cpp \ 31 | -o im-nimf-qt5.moc 32 | 33 | install-data-hook: 34 | chmod -x $(DESTDIR)$(qt5_im_moduledir)/libqt5im-nimf.so 35 | rm -f $(DESTDIR)$(qt5_im_moduledir)/libqt5im-nimf.la 36 | 37 | uninstall-hook: 38 | rm -f $(DESTDIR)$(qt5_im_moduledir)/libqt5im-nimf.so 39 | -rmdir -p $(DESTDIR)$(qt5_im_moduledir) 40 | 41 | DISTCLEANFILES = Makefile.in $(BUILT_SOURCES) 42 | -------------------------------------------------------------------------------- /modules/clients/qt5/nimf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": [ "nimf" ] 3 | } 4 | -------------------------------------------------------------------------------- /modules/clients/qt5/org.nimf.clients.qt5.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 'Qt5' 7 | schema name for nimf-settings 8 | This key is intended for nimf-settings. 9 | 10 | 11 | true 12 | Reset when clicking the mouse button 13 | Reset when clicking the mouse button 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /modules/clients/qt6/Makefile.am: -------------------------------------------------------------------------------- 1 | gsettings_SCHEMAS = org.nimf.clients.qt6.gschema.xml 2 | @GSETTINGS_RULES@ 3 | 4 | # Use the QT6_CFLAGS and QT6_LIBS variables from configure.ac 5 | AM_CPPFLAGS = $(QT6_CFLAGS) 6 | LDADD = $(QT6_LIBS) 7 | 8 | qt6_im_moduledir = $(QT6_IM_MODULE_DIR) 9 | qt6_im_module_LTLIBRARIES = libqt6im-nimf.la 10 | 11 | BUILT_SOURCES = im-nimf-qt6.moc 12 | libqt6im_nimf_la_SOURCES = im-nimf-qt6.cpp $(BUILT_SOURCES) 13 | 14 | libqt6im_nimf_la_CXXFLAGS = \ 15 | $(EXTRA_CFLAGS) \ 16 | $(LIBNIMF_DEPS_CFLAGS) \ 17 | -I$(top_srcdir)/libnimf \ 18 | -DG_LOG_DOMAIN=\"nimf\" \ 19 | -DNIMF_COMPILATION \ 20 | $(IM_NIMF_QT6_DEPS_CFLAGS) \ 21 | -I$(QT6_CORE_PRIVATE_INCLUDE_PATH) \ 22 | -I$(QT6_GUI_PRIVATE_INCLUDE_PATH) \ 23 | -DQT_NO_KEYWORDS \ 24 | -fPIC \ 25 | -std=c++17 26 | 27 | libqt6im_nimf_la_LDFLAGS = -avoid-version -module 28 | libqt6im_nimf_la_LIBADD = $(top_builddir)/libnimf/libnimf.la $(IM_NIMF_QT6_DEPS_LIBS) \ 29 | -lgio-2.0 -lgobject-2.0 -lglib-2.0 30 | 31 | im-nimf-qt6.moc: im-nimf-qt6.cpp 32 | $(AM_V_GEN) $(QT6_MOC) -I $(QT6_CORE_PRIVATE_INCLUDE_PATH) \ 33 | -I $(QT6_GUI_PRIVATE_INCLUDE_PATH) im-nimf-qt6.cpp \ 34 | -o im-nimf-qt6.moc 35 | 36 | install-data-hook: 37 | chmod -x $(DESTDIR)$(qt6_im_moduledir)/libqt6im-nimf.so 38 | rm -f $(DESTDIR)$(qt6_im_moduledir)/libqt6im-nimf.la 39 | 40 | uninstall-hook: 41 | rm -f $(DESTDIR)$(qt6_im_moduledir)/libqt6im-nimf.so 42 | -rmdir -p $(DESTDIR)$(qt6_im_moduledir) 43 | 44 | DISTCLEANFILES = Makefile.in $(BUILT_SOURCES) 45 | -------------------------------------------------------------------------------- /modules/clients/qt6/nimf.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": ["nimf"], 3 | "Library": "libqt6im-nimf.so", 4 | "Version": "1.0" 5 | } 6 | -------------------------------------------------------------------------------- /modules/clients/qt6/org.nimf.clients.qt6.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 'Qt6' 7 | schema name for nimf-settings 8 | This key is intended for nimf-settings. 9 | 10 | 11 | true 12 | Reset when clicking the mouse button 13 | Reset when clicking the mouse button 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /modules/engines/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = nimf-libhangul nimf-system-keyboard 2 | 3 | if ENABLE_NIMF_ANTHY 4 | SUBDIRS += nimf-anthy 5 | endif 6 | 7 | if ENABLE_NIMF_M17N 8 | SUBDIRS += nimf-m17n 9 | endif 10 | 11 | if ENABLE_NIMF_RIME 12 | SUBDIRS += nimf-rime 13 | endif 14 | 15 | DISTCLEANFILES = Makefile.in 16 | -------------------------------------------------------------------------------- /modules/engines/nimf-anthy/Makefile.am: -------------------------------------------------------------------------------- 1 | moduledir = $(libdir)/nimf/modules 2 | module_LTLIBRARIES = libnimf-anthy.la 3 | 4 | gsettings_SCHEMAS = org.nimf.engines.nimf-anthy.gschema.xml 5 | @GSETTINGS_RULES@ 6 | 7 | libnimf_anthy_la_SOURCES = nimf-anthy.c 8 | libnimf_anthy_la_CFLAGS = \ 9 | $(EXTRA_CFLAGS) \ 10 | -I$(top_srcdir)/libnimf \ 11 | -DG_LOG_DOMAIN=\"nimf\" \ 12 | $(NIMF_ANTHY_DEPS_CFLAGS) 13 | 14 | libnimf_anthy_la_LDFLAGS = -avoid-version -module $(NIMF_ANTHY_DEPS_LIBS) 15 | libnimf_anthy_la_LIBADD = $(top_builddir)/libnimf/libnimf.la 16 | 17 | install-data-hook: 18 | chmod -x $(DESTDIR)$(moduledir)/libnimf-anthy.so 19 | rm -f $(DESTDIR)$(moduledir)/libnimf-anthy.la 20 | 21 | uninstall-hook: 22 | rm -f $(DESTDIR)$(moduledir)/libnimf-anthy.so 23 | -rmdir -p $(DESTDIR)$(moduledir) 24 | 25 | DISTCLEANFILES = Makefile.in 26 | -------------------------------------------------------------------------------- /modules/engines/nimf-anthy/org.nimf.engines.nimf-anthy.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 'Japanese (anthy)' 7 | schema name for nimf-settings 8 | This key is intended for nimf-settings. 9 | 10 | 11 | true 12 | Active engine 13 | Active engine 14 | 15 | 16 | ['<Control> <Mod1> j'] 17 | Shortcuts to switch to Japanese 18 | Shortcuts to switch to Japanese (anthy) 19 | 20 | 21 | ['<Control> <Mod1> j'] 22 | Shortcuts from Japanese to system keyboard 23 | Shortcuts from Japanese to system keyboard 24 | 25 | 26 | ['F6'] 27 | Hotkey for Hiragana 28 | Hotkeys for converting to Hiragana 29 | 30 | 31 | ['F7'] 32 | Hotkey for Katakana 33 | Hotkeys for converting to Katakana 34 | 35 | 36 | 'romaji' 37 | Input method 38 | Input method 39 | 40 | 41 | 42 | 43 | 44 | 45 | 'common' 46 | n input mode 47 | Choose how you type Hiragana letter n. 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /modules/engines/nimf-libhangul/Makefile.am: -------------------------------------------------------------------------------- 1 | moduledir = $(libdir)/nimf/modules 2 | module_LTLIBRARIES = libnimf-libhangul.la 3 | 4 | gsettings_SCHEMAS = org.nimf.engines.nimf-libhangul.gschema.xml 5 | @GSETTINGS_RULES@ 6 | 7 | mssymboldir = $(libdir)/nimf 8 | mssymbol_DATA = mssymbol.txt 9 | 10 | libnimf_libhangul_la_SOURCES = nimf-libhangul.c 11 | libnimf_libhangul_la_CFLAGS = \ 12 | $(EXTRA_CFLAGS) \ 13 | -I$(top_srcdir)/libnimf \ 14 | -DG_LOG_DOMAIN=\"nimf\" \ 15 | -DMSSYMBOL_PATH=\"$(mssymboldir)/$(mssymbol_DATA)\" \ 16 | $(NIMF_LIBHANGUL_DEPS_CFLAGS) 17 | 18 | libnimf_libhangul_la_LDFLAGS = -avoid-version -module $(NIMF_LIBHANGUL_DEPS_LIBS) 19 | libnimf_libhangul_la_LIBADD = $(top_builddir)/libnimf/libnimf.la 20 | 21 | DISTCLEANFILES = Makefile.in 22 | 23 | install-data-hook: 24 | chmod -x $(DESTDIR)$(moduledir)/libnimf-libhangul.so 25 | rm -f $(DESTDIR)$(moduledir)/libnimf-libhangul.la 26 | 27 | uninstall-hook: 28 | rm -f $(DESTDIR)$(moduledir)/libnimf-libhangul.so 29 | -rmdir -p $(DESTDIR)$(moduledir) 30 | -------------------------------------------------------------------------------- /modules/engines/nimf-libhangul/org.nimf.engines.nimf-libhangul.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 'Korean (libhangul)' 7 | schema name for nimf-settings 8 | This key is intended for nimf-settings. 9 | 10 | 11 | true 12 | Active engine 13 | Active engine 14 | 15 | 16 | '2' 17 | Input method 18 | Input method 19 | 20 | 21 | ['Hangul'] 22 | Shortcuts to switch to Korean 23 | Shortcuts to switch to Korean (libhangul) 24 | 25 | 26 | ['Hangul'] 27 | Shortcuts from Korean to system keyboard 28 | Shortcuts from Korean to system keyboard 29 | 30 | 31 | ['Hangul_Hanja'] 32 | Hotkey for Hanja 33 | Binding to Hanja key 34 | 35 | 36 | false 37 | Use a rule composing double consonants 38 | Compose a double consonant on pressing same consonant twice 39 | 40 | 41 | false 42 | Auto-reordering in Dubeolsik 43 | Auto-reordering in Dubeolsik 44 | 45 | 46 | true 47 | Ignore reset() in commit callback 48 | Ignore reset() called by commit callback in application 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-am.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-am -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-ar.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-ar -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-as.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-as -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-ath.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-ath -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-be.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-be -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-bla.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-bla -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-bn.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-bn -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-bo.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-bo -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-cmc.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-cmc -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-cr.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-cr -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-cs.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-cs -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-da.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-da -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-dv.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-dv -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-el.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-el -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-eo.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-eo -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-fa.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-fa -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-fr.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-fr -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-grc.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-grc -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-gu.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-gu -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-he.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-he -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-hi.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-hi -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-hr.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-hr -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-hu.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-hu -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-hy.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-hy -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-ii.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-ii -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-iu.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-iu -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-ka.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-ka -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-kk.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-kk -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-km.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-km -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-kn.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-kn -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-ks.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-ks -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-lo.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-lo -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-mai.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-mai -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-ml.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-ml -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-mr.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-mr -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-my.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-my -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-ne.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-ne -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-nsk.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-nsk -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-oj.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-oj -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-or.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-or -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-pa.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-pa -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-ps.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-ps -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-ru.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-ru -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-sa.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-sa -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-sd.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-sd -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-si.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-si -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-sk.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-sk -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-sr.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-sr -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-sv.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-sv -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-t.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-t -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-ta.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-ta -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-tai.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-taii -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-te.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-te -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-th.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-th -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-ug.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-ug -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-uk.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-uk -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-ur.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-ur -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-uz.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-uz -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-vi.svg: -------------------------------------------------------------------------------- 1 | 2 | 16 | 18 | 19 | 21 | image/svg+xml 22 | 24 | nimf-m17n-yi 25 | 26 | 27 | 28 | 48 | 50 | 52 | 53 | nimf-m17n-yi 55 | 62 | 69 | 73 | 74 | -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/icons/scalable/nimf-m17n-yi.svg: -------------------------------------------------------------------------------- 1 | nimf-m17n-yi -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/org.nimf.engines.nimf-m17n-hi.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 'Hindi (m17n)' 7 | schema name for nimf-settings 8 | This key is intended for nimf-settings. 9 | 10 | 11 | false 12 | Active engine 13 | Active engine 14 | 15 | 16 | [] 17 | Shortcuts to switch to Hindi 18 | Shortcuts to switch to Hindi (m17n) 19 | 20 | 21 | [] 22 | Shortcuts from Hindi to system keyboard 23 | Shortcuts from Hindi to system keyboard 24 | 25 | 26 | 'hi:remington' 27 | Input method 28 | Input method 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/org.nimf.engines.nimf-m17n-hu.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 'Hungarian (m17n)' 7 | schema name for nimf-settings 8 | This key is intended for nimf-settings. 9 | 10 | 11 | false 12 | Active engine 13 | Active engine 14 | 15 | 16 | [] 17 | Shortcuts to switch to Hungarian 18 | Shortcuts to switch to Hungarian (m17n) 19 | 20 | 21 | [] 22 | Shortcuts from Hungarian to system keyboard 23 | Shortcuts from Hungarian to system keyboard 24 | 25 | 26 | 'hu:rovas-post' 27 | Input method 28 | Input method 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/org.nimf.engines.nimf-m17n-kn.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 'Kannada (m17n)' 7 | schema name for nimf-settings 8 | This key is intended for nimf-settings. 9 | 10 | 11 | false 12 | Active engine 13 | Active engine 14 | 15 | 16 | [] 17 | Shortcuts to switch to Kannada 18 | Shortcuts to switch to Kannada (m17n) 19 | 20 | 21 | [] 22 | Shortcuts from Kannada to system keyboard 23 | Shortcuts from Kannada to system keyboard 24 | 25 | 26 | 'kn:inscript' 27 | Input method 28 | Input method 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/org.nimf.engines.nimf-m17n-ml.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 'Malayalam (m17n)' 7 | schema name for nimf-settings 8 | This key is intended for nimf-settings. 9 | 10 | 11 | false 12 | Active engine 13 | Active engine 14 | 15 | 16 | [] 17 | Shortcuts to switch to Malayalam 18 | Shortcuts to switch to Malayalam (m17n) 19 | 20 | 21 | [] 22 | Shortcuts from Malayalam to system keyboard 23 | Shortcuts from Malayalam to system keyboard 24 | 25 | 26 | 'ml:inscript' 27 | Input method 28 | Input method 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/org.nimf.engines.nimf-m17n-mr.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 'Marathi (m17n)' 7 | schema name for nimf-settings 8 | This key is intended for nimf-settings. 9 | 10 | 11 | false 12 | Active engine 13 | Active engine 14 | 15 | 16 | [] 17 | Shortcuts to switch to Marathi 18 | Shortcuts to switch to Marathi (m17n) 19 | 20 | 21 | [] 22 | Shortcuts from Marathi to system keyboard 23 | Shortcuts from Marathi to system keyboard 24 | 25 | 26 | 'mr:phonetic' 27 | Input method 28 | Input method 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /modules/engines/nimf-m17n/org.nimf.engines.nimf-m17n-ne.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 'Nepali (m17n)' 7 | schema name for nimf-settings 8 | This key is intended for nimf-settings. 9 | 10 | 11 | false 12 | Active engine 13 | Active engine 14 | 15 | 16 | [] 17 | Shortcuts to switch to Nepali 18 | Shortcuts to switch to Nepali (m17n) 19 | 20 | 21 | [] 22 | Shortcuts from Nepali to system keyboard 23 | Shortcuts from Nepali to system keyboard 24 | 25 | 26 | 'ne:rom' 27 | Input method 28 | Input method 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /modules/engines/nimf-rime/Makefile.am: -------------------------------------------------------------------------------- 1 | moduledir = $(libdir)/nimf/modules 2 | module_LTLIBRARIES = libnimf-rime.la 3 | 4 | gsettings_SCHEMAS = org.nimf.engines.nimf-rime.gschema.xml 5 | @GSETTINGS_RULES@ 6 | 7 | libnimf_rime_la_SOURCES = nimf-rime.c 8 | libnimf_rime_la_CFLAGS = \ 9 | $(EXTRA_CFLAGS) \ 10 | -I$(top_srcdir)/libnimf \ 11 | -DG_LOG_DOMAIN=\"nimf\" \ 12 | $(NIMF_RIME_DEPS_CFLAGS) 13 | 14 | libnimf_rime_la_LDFLAGS = -avoid-version -module $(NIMF_RIME_DEPS_LIBS) 15 | libnimf_rime_la_LIBADD = $(top_builddir)/libnimf/libnimf.la 16 | 17 | install-data-hook: 18 | chmod -x $(DESTDIR)$(moduledir)/libnimf-rime.so 19 | rm -f $(DESTDIR)$(moduledir)/libnimf-rime.la 20 | 21 | uninstall-hook: 22 | rm -f $(DESTDIR)$(moduledir)/libnimf-rime.so 23 | -rmdir -p $(DESTDIR)$(moduledir) 24 | 25 | DISTCLEANFILES = Makefile.in 26 | -------------------------------------------------------------------------------- /modules/engines/nimf-rime/org.nimf.engines.nimf-rime.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 'Chinese (rime)' 7 | schema name for nimf-settings 8 | This key is intended for nimf-settings. 9 | 10 | 11 | true 12 | Active engine 13 | Active engine 14 | 15 | 16 | ['<Control> <Mod1> r'] 17 | Shortcuts to switch to Chinese 18 | Shortcuts to switch to Chinese (rime) 19 | 20 | 21 | ['<Control> <Mod1> r'] 22 | Shortcuts from Chinese to system keyboard 23 | Shortcuts from Chinese to system keyboard 24 | 25 | 26 | true 27 | Simplified Chinese 28 | If Simplified Chinese is set, Simplified Chinese is used. Otherwise Traditional Chinese is used. 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /modules/engines/nimf-system-keyboard/Makefile.am: -------------------------------------------------------------------------------- 1 | moduledir = $(libdir)/nimf/modules 2 | module_LTLIBRARIES = libnimf-system-keyboard.la 3 | 4 | gsettings_SCHEMAS = org.nimf.engines.nimf-system-keyboard.gschema.xml 5 | @GSETTINGS_RULES@ 6 | 7 | libnimf_system_keyboard_la_SOURCES = nimf-system-keyboard.c 8 | libnimf_system_keyboard_la_CFLAGS = \ 9 | $(EXTRA_CFLAGS) \ 10 | -I$(top_srcdir)/libnimf \ 11 | -DG_LOG_DOMAIN=\"nimf\" \ 12 | $(NIMF_SYSTEM_KEYBOARD_DEPS_CFLAGS) 13 | 14 | libnimf_system_keyboard_la_LDFLAGS = -avoid-version -module \ 15 | $(NIMF_SYSTEM_KEYBOARD_DEPS_LIBS) 16 | libnimf_system_keyboard_la_LIBADD = $(top_builddir)/libnimf/libnimf.la 17 | 18 | DISTCLEANFILES = Makefile.in 19 | 20 | install-data-hook: 21 | chmod -x $(DESTDIR)$(moduledir)/libnimf-system-keyboard.so 22 | rm -f $(DESTDIR)$(moduledir)/libnimf-system-keyboard.la 23 | 24 | uninstall-hook: 25 | rm -f $(DESTDIR)$(moduledir)/libnimf-system-keyboard.so 26 | -rmdir -p $(DESTDIR)$(moduledir) 27 | -------------------------------------------------------------------------------- /modules/engines/nimf-system-keyboard/org.nimf.engines.nimf-system-keyboard.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 'System Keyboard' 7 | schema name for nimf-settings 8 | This key is intended for nimf-settings. 9 | 10 | 11 | [] 12 | Shortcuts to switch to system keyboard 13 | Shortcuts to switch to system keyboard 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /modules/services/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = indicator wayland xim preedit-window candidate nim 2 | 3 | DISTCLEANFILES = Makefile.in 4 | -------------------------------------------------------------------------------- /modules/services/candidate/Makefile.am: -------------------------------------------------------------------------------- 1 | moduledir = $(libdir)/nimf/modules/services 2 | module_LTLIBRARIES = libnimf-candidate.la 3 | 4 | libnimf_candidate_la_SOURCES = \ 5 | nimf-candidate.c \ 6 | $(NULL) 7 | 8 | libnimf_candidate_la_CFLAGS = \ 9 | $(EXTRA_CFLAGS) \ 10 | -I$(top_srcdir)/libnimf \ 11 | -DG_LOG_DOMAIN=\"nimf\" \ 12 | $(NIMF_CANDIDATE_DEPS_CFLAGS) 13 | 14 | libnimf_candidate_la_LDFLAGS = -avoid-version -module $(NIMF_CANDIDATE_DEPS_LIBS) 15 | libnimf_candidate_la_LIBADD = $(top_builddir)/libnimf/libnimf.la 16 | 17 | DISTCLEANFILES = Makefile.in 18 | 19 | install-data-hook: 20 | chmod -x $(DESTDIR)$(moduledir)/libnimf-candidate.so 21 | rm -f $(DESTDIR)$(moduledir)/libnimf-candidate.la 22 | 23 | uninstall-hook: 24 | rm -f $(DESTDIR)$(moduledir)/libnimf-candidate.so 25 | -rmdir -p $(DESTDIR)$(moduledir) 26 | -------------------------------------------------------------------------------- /modules/services/indicator/Makefile.am: -------------------------------------------------------------------------------- 1 | moduledir = $(libdir)/nimf/modules/services 2 | module_LTLIBRARIES = libnimf-indicator.la 3 | 4 | libnimf_indicator_la_SOURCES = \ 5 | nimf-indicator.c \ 6 | $(NULL) 7 | 8 | libnimf_indicator_la_CFLAGS = \ 9 | $(EXTRA_CFLAGS) \ 10 | -I$(top_srcdir)/libnimf \ 11 | -DG_LOG_DOMAIN=\"nimf\" \ 12 | -DNIMF_MODULE_DIR=\"$(libdir)/nimf/modules\" \ 13 | $(NIMF_INDICATOR_DEPS_CFLAGS) 14 | 15 | libnimf_indicator_la_LDFLAGS = -avoid-version -module $(NIMF_INDICATOR_DEPS_LIBS) 16 | libnimf_indicator_la_LIBADD = $(top_builddir)/libnimf/libnimf.la 17 | 18 | DISTCLEANFILES = Makefile.in 19 | 20 | install-data-hook: 21 | chmod -x $(DESTDIR)$(moduledir)/libnimf-indicator.so 22 | rm -f $(DESTDIR)$(moduledir)/libnimf-indicator.la 23 | 24 | uninstall-hook: 25 | rm -f $(DESTDIR)$(moduledir)/libnimf-indicator.so 26 | -rmdir -p $(DESTDIR)$(moduledir) 27 | -------------------------------------------------------------------------------- /modules/services/nim/Makefile.am: -------------------------------------------------------------------------------- 1 | moduledir = $(libdir)/nimf/modules/services 2 | module_LTLIBRARIES = libnimf-nim.la 3 | 4 | libnimf_nim_la_SOURCES = \ 5 | nimf-nim.c \ 6 | nimf-nim.h \ 7 | nimf-nim-ic.c \ 8 | nimf-nim-ic.h \ 9 | nimf-connection.c \ 10 | nimf-connection.h \ 11 | $(NULL) 12 | 13 | libnimf_nim_la_CFLAGS = \ 14 | $(EXTRA_CFLAGS) \ 15 | -I$(top_srcdir)/libnimf \ 16 | -DG_LOG_DOMAIN=\"nimf\" \ 17 | $(NIMF_NIM_DEPS_CFLAGS) 18 | 19 | libnimf_nim_la_LDFLAGS = -avoid-version -module $(NIMF_NIM_DEPS_LIBS) 20 | libnimf_nim_la_LIBADD = $(top_builddir)/libnimf/libnimf.la 21 | 22 | DISTCLEANFILES = Makefile.in 23 | 24 | install-data-hook: 25 | chmod -x $(DESTDIR)$(moduledir)/libnimf-nim.so 26 | rm -f $(DESTDIR)$(moduledir)/libnimf-nim.la 27 | 28 | uninstall-hook: 29 | rm -f $(DESTDIR)$(moduledir)/libnimf-nim.so 30 | -rmdir -p $(DESTDIR)$(moduledir) 31 | -------------------------------------------------------------------------------- /modules/services/nim/nimf-nim-ic.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ 2 | /* 3 | * nimf-nim-ic.h 4 | * This file is part of Nimf. 5 | * 6 | * Copyright (C) 2015-2019 Hodong Kim 7 | * 8 | * Nimf is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * Nimf is distributed in the hope that it will be useful, but 14 | * WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 | * See the GNU Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public License 19 | * along with this program; If not, see . 20 | */ 21 | 22 | #ifndef __NIMF_NIM_IC_H__ 23 | #define __NIMF_NIM_IC_H__ 24 | 25 | #include 26 | #include "nimf-service-ic.h" 27 | #include "nimf-connection.h" 28 | 29 | G_BEGIN_DECLS 30 | 31 | #define NIMF_TYPE_NIM_IC (nimf_nim_ic_get_type ()) 32 | #define NIMF_NIM_IC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NIMF_TYPE_NIM_IC, NimfNimIC)) 33 | #define NIMF_NIM_IC_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), NIMF_TYPE_NIM_IC, NimfNimICClass)) 34 | #define NIMF_IS_NIM_IC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NIMF_TYPE_NIM_IC)) 35 | #define NIMF_IS_NIM_IC_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), NIMF_TYPE_NIM_IC)) 36 | #define NIMF_NIM_IC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NIMF_TYPE_NIM_IC, NimfNimICClass)) 37 | 38 | typedef struct _NimfNimIC NimfNimIC; 39 | typedef struct _NimfNimICClass NimfNimICClass; 40 | 41 | struct _NimfNimICClass 42 | { 43 | NimfServiceICClass parent_class; 44 | }; 45 | 46 | struct _NimfNimIC 47 | { 48 | NimfServiceIC parent_instance; 49 | NimfConnection *connection; 50 | guint16 icid; 51 | }; 52 | 53 | GType nimf_nim_ic_get_type (void) G_GNUC_CONST; 54 | NimfNimIC *nimf_nim_ic_new (guint16 icid, NimfConnection *connection); 55 | 56 | G_END_DECLS 57 | 58 | #endif /* __NIMF_NIM_IC_H__ */ 59 | -------------------------------------------------------------------------------- /modules/services/nim/nimf-nim.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ 2 | /* 3 | * nimf-nim.h 4 | * This file is part of Nimf. 5 | * 6 | * Copyright (C) 2015-2019 Hodong Kim 7 | * 8 | * Nimf is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * Nimf is distributed in the hope that it will be useful, but 14 | * WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 | * See the GNU Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public License 19 | * along with this program; If not, see . 20 | */ 21 | 22 | #ifndef __NIMF_NIM_H__ 23 | #define __NIMF_NIM_H__ 24 | 25 | #include "config.h" 26 | #include 27 | #include 28 | 29 | G_BEGIN_DECLS 30 | 31 | #define NIMF_TYPE_NIM (nimf_nim_get_type ()) 32 | #define NIMF_NIM(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), NIMF_TYPE_NIM, NimfNim)) 33 | #define NIMF_NIM_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), NIMF_TYPE_NIM, NimfNimClass)) 34 | #define NIMF_IS_NIM(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), NIMF_TYPE_NIM)) 35 | #define NIMF_IS_NIM_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), NIMF_TYPE_NIM)) 36 | #define NIMF_NIM_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), NIMF_TYPE_NIM, NimfNimClass)) 37 | 38 | typedef struct _NimfNim NimfNim; 39 | typedef struct _NimfNimClass NimfNimClass; 40 | 41 | struct _NimfNim 42 | { 43 | NimfService parent_instance; 44 | 45 | gchar *id; 46 | gboolean active; 47 | GHashTable *connections; 48 | guint16 next_id; 49 | guint16 last_focused_conn_id; 50 | guint16 last_focused_icid; 51 | GSocketService *service; 52 | }; 53 | 54 | struct _NimfNimClass 55 | { 56 | NimfServiceClass parent_class; 57 | }; 58 | 59 | GType nimf_nim_get_type (void) G_GNUC_CONST; 60 | 61 | G_END_DECLS 62 | 63 | #endif /* __NIMF_NIM_H__ */ 64 | -------------------------------------------------------------------------------- /modules/services/preedit-window/Makefile.am: -------------------------------------------------------------------------------- 1 | moduledir = $(libdir)/nimf/modules/services 2 | module_LTLIBRARIES = libnimf-preedit-window.la 3 | 4 | libnimf_preedit_window_la_SOURCES = \ 5 | nimf-preedit-window.c \ 6 | $(NULL) 7 | 8 | libnimf_preedit_window_la_CFLAGS = \ 9 | $(EXTRA_CFLAGS) \ 10 | -I$(top_srcdir)/libnimf \ 11 | -DG_LOG_DOMAIN=\"nimf\" \ 12 | $(NIMF_PREEDIT_WINDOW_DEPS_CFLAGS) 13 | 14 | libnimf_preedit_window_la_LDFLAGS = -avoid-version -module $(NIMF_PREEDIT_WINDOW_DEPS_LIBS) 15 | libnimf_preedit_window_la_LIBADD = $(top_builddir)/libnimf/libnimf.la 16 | 17 | DISTCLEANFILES = Makefile.in 18 | 19 | install-data-hook: 20 | chmod -x $(DESTDIR)$(moduledir)/libnimf-preedit-window.so 21 | rm -f $(DESTDIR)$(moduledir)/libnimf-preedit-window.la 22 | 23 | uninstall-hook: 24 | rm -f $(DESTDIR)$(moduledir)/libnimf-preedit-window.so 25 | -rmdir -p $(DESTDIR)$(moduledir) 26 | -------------------------------------------------------------------------------- /modules/services/wayland/Makefile.am: -------------------------------------------------------------------------------- 1 | moduledir = $(libdir)/nimf/modules/services 2 | module_LTLIBRARIES = libnimf-wayland.la 3 | 4 | WAYLAND_IM_XML_PATH = `pkg-config --variable=pkgdatadir wayland-protocols`/unstable/input-method/input-method-unstable-v1.xml 5 | 6 | BUILT_SOURCES = \ 7 | input-method-unstable-v1-client-protocol.h \ 8 | input-method-unstable-v1-protocol.c \ 9 | $(NULL) 10 | 11 | libnimf_wayland_la_SOURCES = \ 12 | nimf-wayland.c \ 13 | nimf-wayland-ic.c \ 14 | nimf-wayland-ic.h \ 15 | $(BUILT_SOURCES) \ 16 | $(NULL) 17 | 18 | libnimf_wayland_la_CFLAGS = \ 19 | $(EXTRA_CFLAGS) \ 20 | -I$(top_srcdir)/libnimf \ 21 | -DG_LOG_DOMAIN=\"nimf\" \ 22 | $(NIMF_WAYLAND_DEPS_CFLAGS) 23 | 24 | libnimf_wayland_la_LDFLAGS = -avoid-version -module $(NIMF_WAYLAND_DEPS_LIBS) 25 | libnimf_wayland_la_LIBADD = $(top_builddir)/libnimf/libnimf.la 26 | 27 | input-method-unstable-v1-client-protocol.h: 28 | $(AM_V_GEN) wayland-scanner client-header < $(WAYLAND_IM_XML_PATH) \ 29 | > input-method-unstable-v1-client-protocol.h 30 | 31 | input-method-unstable-v1-protocol.c: 32 | $(AM_V_GEN) wayland-scanner code < $(WAYLAND_IM_XML_PATH) \ 33 | > input-method-unstable-v1-protocol.c 34 | 35 | install-data-hook: 36 | chmod -x $(DESTDIR)$(moduledir)/libnimf-wayland.so 37 | rm -f $(DESTDIR)$(moduledir)/libnimf-wayland.la 38 | 39 | uninstall-hook: 40 | rm -f $(DESTDIR)$(moduledir)/libnimf-wayland.so 41 | -rmdir -p $(DESTDIR)$(moduledir) 42 | 43 | CLEANFILES = $(BUILT_SOURCES) 44 | 45 | DISTCLEANFILES = Makefile.in 46 | -------------------------------------------------------------------------------- /modules/services/wayland/nimf-wayland-ic.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ 2 | /* 3 | * nimf-wayland-ic.h 4 | * This file is part of Nimf. 5 | * 6 | * Copyright (C) 2017-2019 Hodong Kim 7 | * 8 | * Nimf is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * Nimf is distributed in the hope that it will be useful, but 14 | * WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 | * See the GNU Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public License 19 | * along with this program; If not, see . 20 | */ 21 | 22 | #ifndef __NIMF_WAYLAND_IC_H__ 23 | #define __NIMF_WAYLAND_IC_H__ 24 | 25 | #include "nimf.h" 26 | #include "nimf-wayland.h" 27 | 28 | G_BEGIN_DECLS 29 | 30 | #define NIMF_TYPE_WAYLAND_IC (nimf_wayland_ic_get_type ()) 31 | #define NIMF_WAYLAND_IC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NIMF_TYPE_WAYLAND_IC, NimfWaylandIC)) 32 | #define NIMF_WAYLAND_IC_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), NIMF_TYPE_WAYLAND_IC, NimfWaylandICClass)) 33 | #define NIMF_IS_WAYLAND_IC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NIMF_TYPE_WAYLAND_IC)) 34 | #define NIMF_IS_WAYLAND_IC_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), NIMF_TYPE_WAYLAND_IC)) 35 | #define NIMF_WAYLAND_IC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NIMF_TYPE_WAYLAND_IC, NimfWaylandICClass)) 36 | 37 | typedef struct _NimfWayland NimfWayland; 38 | 39 | typedef struct _NimfWaylandIC NimfWaylandIC; 40 | typedef struct _NimfWaylandICClass NimfWaylandICClass; 41 | 42 | struct _NimfWaylandICClass 43 | { 44 | NimfServiceICClass parent_class; 45 | }; 46 | 47 | struct _NimfWaylandIC 48 | { 49 | NimfServiceIC parent_instance; 50 | NimfWayland *wayland; 51 | }; 52 | 53 | GType nimf_wayland_ic_get_type (void) G_GNUC_CONST; 54 | NimfWaylandIC *nimf_wayland_ic_new (NimfWayland *wayland); 55 | 56 | G_END_DECLS 57 | 58 | #endif /* __NIMF_WAYLAND_IC_H__ */ 59 | 60 | -------------------------------------------------------------------------------- /modules/services/xim/IMdkit/i18nMethod.h: -------------------------------------------------------------------------------- 1 | /****************************************************************** 2 | 3 | Copyright 1994, 1995 by Sun Microsystems, Inc. 4 | Copyright 1993, 1994 by Hewlett-Packard Company 5 | 6 | Permission to use, copy, modify, distribute, and sell this software 7 | and its documentation for any purpose is hereby granted without fee, 8 | provided that the above copyright notice appear in all copies and 9 | that both that copyright notice and this permission notice appear 10 | in supporting documentation, and that the name of Sun Microsystems, Inc. 11 | and Hewlett-Packard not be used in advertising or publicity pertaining to 12 | distribution of the software without specific, written prior permission. 13 | Sun Microsystems, Inc. and Hewlett-Packard make no representations about 14 | the suitability of this software for any purpose. It is provided "as is" 15 | without express or implied warranty. 16 | 17 | SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL 18 | WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED 19 | WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 20 | SUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY 21 | SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER 22 | RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF 23 | CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 24 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 25 | 26 | Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc. 27 | 28 | This version tidied and debugged by Steve Underwood May 1999 29 | 30 | ******************************************************************/ 31 | 32 | #ifndef I18N_METHOD_H 33 | #define I18N_METHOD_H 34 | 35 | #include 36 | #include 37 | #ifndef NEED_EVENTS 38 | #define NEED_EVENTS 39 | #endif 40 | #include 41 | #undef NEED_EVENTS 42 | 43 | #include "nimf-xim.h" 44 | 45 | Bool WaitXSelectionRequest (NimfXim *xim, XEvent *ev); 46 | int nimf_xim_call_callback (NimfXim *, XPointer); 47 | 48 | Status xi18n_openIM (NimfXim *, Window); 49 | Status xi18n_closeIM (NimfXim *); 50 | Status xi18n_forwardEvent (NimfXim *, XPointer); 51 | Status xi18n_commit (NimfXim *, XPointer); 52 | int xi18n_syncXlib (NimfXim *, XPointer); 53 | 54 | #endif /* I18N_METHOD_H */ 55 | -------------------------------------------------------------------------------- /modules/services/xim/IMdkit/i18nX.h: -------------------------------------------------------------------------------- 1 | /****************************************************************** 2 | 3 | Copyright (C) 1994-1995 Sun Microsystems, Inc. 4 | Copyright (C) 1993-1994 Hewlett-Packard Company 5 | Copyright (C) 2014 Peng Huang 6 | Copyright (C) 2014 Red Hat, Inc. 7 | 8 | Permission to use, copy, modify, distribute, and sell this software 9 | and its documentation for any purpose is hereby granted without fee, 10 | provided that the above copyright notice appear in all copies and 11 | that both that copyright notice and this permission notice appear 12 | in supporting documentation, and that the name of Sun Microsystems, Inc. 13 | and Hewlett-Packard not be used in advertising or publicity pertaining to 14 | distribution of the software without specific, written prior permission. 15 | Sun Microsystems, Inc. and Hewlett-Packard make no representations about 16 | the suitability of this software for any purpose. It is provided "as is" 17 | without express or implied warranty. 18 | 19 | SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL 20 | WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED 21 | WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 22 | SUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY 23 | SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER 24 | RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF 25 | CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 26 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 27 | 28 | Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc. 29 | 30 | This version tidied and debugged by Steve Underwood May 1999 31 | 32 | ******************************************************************/ 33 | 34 | #ifndef I18N_X_H 35 | #define I18N_X_H 36 | 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include "nimf-xim.h" 43 | 44 | void ReadXConnectMessage (NimfXim *xim, XClientMessageEvent *ev); 45 | Bool WaitXIMProtocol (NimfXim*, XEvent*); 46 | Bool Xi18nXWait (NimfXim *xim, 47 | CARD16 connect_id, 48 | CARD8 major_opcode, 49 | CARD8 minor_opcode); 50 | Bool Xi18nXDisconnect (NimfXim *xim, CARD16 connect_id); 51 | Bool Xi18nXSend (NimfXim *xim, 52 | CARD16 connect_id, 53 | unsigned char *reply, 54 | long length); 55 | #endif /* I18N_X_H */ 56 | -------------------------------------------------------------------------------- /modules/services/xim/Makefile.am: -------------------------------------------------------------------------------- 1 | moduledir = $(libdir)/nimf/modules/services 2 | module_LTLIBRARIES = libnimf-xim.la 3 | 4 | IMdkit_SOURCES = \ 5 | IMdkit/FrameMgr.h \ 6 | IMdkit/Xi18n.h \ 7 | IMdkit/XimFunc.h \ 8 | IMdkit/XimProto.h \ 9 | IMdkit/FrameMgr.c \ 10 | IMdkit/i18nAttr.c \ 11 | IMdkit/i18nClbk.c \ 12 | IMdkit/i18nIc.c \ 13 | IMdkit/i18nIMProto.c \ 14 | IMdkit/i18nMethod.c \ 15 | IMdkit/i18nMethod.h \ 16 | IMdkit/i18nOffsetCache.c \ 17 | IMdkit/i18nPtHdr.c \ 18 | IMdkit/i18nUtil.c \ 19 | IMdkit/i18nX.c \ 20 | IMdkit/i18nX.h \ 21 | $(NULL) 22 | 23 | libnimf_xim_la_SOURCES = \ 24 | nimf-xim.c \ 25 | nimf-xim.h \ 26 | nimf-xim-ic.c \ 27 | nimf-xim-ic.h \ 28 | $(IMdkit_SOURCES) \ 29 | $(NULL) 30 | 31 | libnimf_xim_la_CFLAGS = \ 32 | $(EXTRA_CFLAGS) \ 33 | -I$(top_srcdir)/libnimf \ 34 | -DG_LOG_DOMAIN=\"nimf\" \ 35 | $(NIMF_XIM_DEPS_CFLAGS) 36 | 37 | libnimf_xim_la_LDFLAGS = -avoid-version -module $(NIMF_XIM_DEPS_LIBS) 38 | libnimf_xim_la_LIBADD = $(top_builddir)/libnimf/libnimf.la 39 | 40 | DISTCLEANFILES = Makefile.in 41 | 42 | install-data-hook: 43 | chmod -x $(DESTDIR)$(moduledir)/libnimf-xim.so 44 | rm -f $(DESTDIR)$(moduledir)/libnimf-xim.la 45 | 46 | uninstall-hook: 47 | rm -f $(DESTDIR)$(moduledir)/libnimf-xim.so 48 | -rmdir -p $(DESTDIR)$(moduledir) 49 | -------------------------------------------------------------------------------- /modules/services/xim/nimf-xim-ic.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ 2 | /* 3 | * nimf-xim-ic.h 4 | * This file is part of Nimf. 5 | * 6 | * Copyright (C) 2015-2019 Hodong Kim 7 | * 8 | * Nimf is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * Nimf is distributed in the hope that it will be useful, but 14 | * WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 | * See the GNU Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public License 19 | * along with this program; If not, see . 20 | */ 21 | 22 | #ifndef __NIMF_XIM_IC_H__ 23 | #define __NIMF_XIM_IC_H__ 24 | 25 | #include 26 | #include "nimf.h" 27 | #include "IMdkit/Xi18n.h" 28 | #include "nimf-xim.h" 29 | 30 | G_BEGIN_DECLS 31 | 32 | #define NIMF_TYPE_XIM_IC (nimf_xim_ic_get_type ()) 33 | #define NIMF_XIM_IC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NIMF_TYPE_XIM_IC, NimfXimIC)) 34 | #define NIMF_XIM_IC_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), NIMF_TYPE_XIM_IC, NimfXimICClass)) 35 | #define NIMF_IS_XIM_IC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NIMF_TYPE_XIM_IC)) 36 | #define NIMF_IS_XIM_IC_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), NIMF_TYPE_XIM_IC)) 37 | #define NIMF_XIM_IC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NIMF_TYPE_XIM_IC, NimfXimICClass)) 38 | 39 | typedef struct _NimfXim NimfXim; 40 | typedef struct _NimfXimIC NimfXimIC; 41 | typedef struct _NimfXimICClass NimfXimICClass; 42 | 43 | struct _NimfXimICClass 44 | { 45 | NimfServiceICClass parent_class; 46 | }; 47 | 48 | struct _NimfXimIC 49 | { 50 | NimfServiceIC parent_instance; 51 | guint16 connect_id; 52 | guint16 icid; 53 | gint prev_preedit_length; 54 | CARD32 input_style; 55 | Window client_window; 56 | Window focus_window; 57 | NimfXim *xim; 58 | }; 59 | 60 | GType nimf_xim_ic_get_type (void) G_GNUC_CONST; 61 | NimfXimIC *nimf_xim_ic_new (NimfXim *xim, 62 | guint16 connect_id, 63 | guint16 icid); 64 | void nimf_xim_ic_set_cursor_location (NimfXimIC *xic, 65 | gint x, 66 | gint y); 67 | 68 | G_END_DECLS 69 | 70 | #endif /* __NIMF_XIM_IC_H__ */ 71 | 72 | -------------------------------------------------------------------------------- /modules/services/xim/nimf-xim.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ 2 | /* 3 | * nimf-xim.h 4 | * This file is part of Nimf. 5 | * 6 | * Copyright (C) 2015-2019 Hodong Kim 7 | * 8 | * Nimf is free software: you can redistribute it and/or modify it 9 | * under the terms of the GNU Lesser General Public License as published 10 | * by the Free Software Foundation, either version 3 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * Nimf is distributed in the hope that it will be useful, but 14 | * WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16 | * See the GNU Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public License 19 | * along with this program; If not, see . 20 | */ 21 | 22 | #ifndef __NIMF_XIM_H__ 23 | #define __NIMF_XIM_H__ 24 | 25 | #include "config.h" 26 | #include 27 | #include 28 | #include 29 | #include "nimf-xim-ic.h" 30 | #include "IMdkit/Xi18n.h" 31 | 32 | G_BEGIN_DECLS 33 | 34 | #define NIMF_TYPE_XIM (nimf_xim_get_type ()) 35 | #define NIMF_XIM(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), NIMF_TYPE_XIM, NimfXim)) 36 | #define NIMF_XIM_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), NIMF_TYPE_XIM, NimfXimClass)) 37 | #define NIMF_IS_XIM(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), NIMF_TYPE_XIM)) 38 | #define NIMF_IS_XIM_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), NIMF_TYPE_XIM)) 39 | #define NIMF_XIM_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), NIMF_TYPE_XIM, NimfXimClass)) 40 | 41 | typedef struct _NimfXim NimfXim; 42 | typedef struct _NimfXimClass NimfXimClass; 43 | 44 | struct _NimfXim 45 | { 46 | NimfService parent_instance; 47 | 48 | GSource *xevent_source; 49 | gchar *id; 50 | GHashTable *ics; 51 | guint16 next_icid; 52 | guint16 last_focused_icid; 53 | gboolean active; 54 | 55 | Display *display; 56 | Window im_window; 57 | XIMStyles im_styles; 58 | CARD32 im_event_mask; 59 | Atom _xconnect; 60 | Atom _protocol; 61 | Bool sync; 62 | Xi18nAddressRec address; 63 | CARD8 byte_order; 64 | }; 65 | 66 | struct _NimfXimClass 67 | { 68 | NimfServiceClass parent_class; 69 | }; 70 | 71 | GType nimf_xim_get_type (void) G_GNUC_CONST; 72 | 73 | G_END_DECLS 74 | 75 | #endif /* __NIMF_XIM_H__ */ 76 | -------------------------------------------------------------------------------- /patchs/README: -------------------------------------------------------------------------------- 1 | * nimf-2020.04.28.patch : 2 | 원작자가 KLDP 에 공개한 nimf 패치 3 | 4 | 5 | * nimf-2020.11.28-hamonikr.patch : 6 | 하모니카에서 테스트 결과 오류가 있는 부분을 제거하고 수정한 패치 7 | 8 | - 패치 가능한 커밋 : dec1a11c3034677a825b0dff319a05a8d019ae08 9 | 10 | 11 | -------------------------------------------------------------------------------- /patchs/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/README: -------------------------------------------------------------------------------- 1 | usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libqt5im-nimf.so 2 | 3 | 한컴구름 OS에서 설치할수 있는 패키지를 하모니카 OS에 정상적으로 설치되는지 확인한 결과 4 | 하모니카 3.0에서는 정상적으로 사용가능, 하지만 하모니카 4.0에서는 한글입력이 되지 않는 오류 발견 5 | 6 | 이 경우에는 하모니카 3.0에 있는 /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libqt5im-nimf.so 파일을 하모니카 4.0에 복사하면 한글 입력이 정상으로 됨 7 | 8 | 이 파일은 하모니카 3.0에 있는 libqt5im-nimf.so 파일. 9 | 10 | -------------------------------------------------------------------------------- /patchs/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libqt5im-nimf.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hamonikr/nimf/dab95c339e5055ce3b8f30ba197b51fca1dd1cc2/patchs/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libqt5im-nimf.so -------------------------------------------------------------------------------- /po/.intltool-merge-cache.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hamonikr/nimf/dab95c339e5055ce3b8f30ba197b51fca1dd1cc2/po/.intltool-merge-cache.lock -------------------------------------------------------------------------------- /po/LINGUAS: -------------------------------------------------------------------------------- 1 | # please keep this list sorted alphabetically 2 | # 3 | de 4 | ko 5 | -------------------------------------------------------------------------------- /po/POTFILES.in: -------------------------------------------------------------------------------- 1 | # List of source files containing translatable strings. 2 | bin/nimf/nimf.c 3 | bin/nimf-settings/nimf-settings.c 4 | bin/nimf-settings/nimf-settings.desktop.in 5 | bin/nimf-settings/nimf-settings-autostart.desktop.in 6 | modules/clients/gtk/im-nimf.c 7 | modules/engines/nimf-anthy/nimf-anthy.c 8 | modules/engines/nimf-libhangul/nimf-libhangul.c 9 | modules/engines/nimf-m17n/nimf-m17n.c 10 | modules/engines/nimf-rime/nimf-rime.c 11 | modules/engines/nimf-system-keyboard/nimf-system-keyboard.c 12 | modules/services/indicator/nimf-indicator.c 13 | [type: gettext/gsettings]bin/nimf-settings/org.nimf.settings.gschema.xml 14 | [type: gettext/gsettings]libnimf/org.nimf.gschema.xml 15 | [type: gettext/gsettings]modules/clients/gtk/org.nimf.clients.gtk.gschema.xml 16 | [type: gettext/gsettings]modules/clients/qt5/org.nimf.clients.qt5.gschema.xml 17 | [type: gettext/gsettings]modules/engines/nimf-anthy/org.nimf.engines.nimf-anthy.gschema.xml 18 | [type: gettext/gsettings]modules/engines/nimf-libhangul/org.nimf.engines.nimf-libhangul.gschema.xml 19 | [type: gettext/gsettings]modules/engines/nimf-m17n/org.nimf.engines.nimf-m17n.gschema.xml 20 | [type: gettext/gsettings]modules/engines/nimf-m17n/org.nimf.engines.nimf-m17n-hi.gschema.xml 21 | [type: gettext/gsettings]modules/engines/nimf-m17n/org.nimf.engines.nimf-m17n-hu.gschema.xml 22 | [type: gettext/gsettings]modules/engines/nimf-m17n/org.nimf.engines.nimf-m17n-kn.gschema.xml 23 | [type: gettext/gsettings]modules/engines/nimf-m17n/org.nimf.engines.nimf-m17n-ml.gschema.xml 24 | [type: gettext/gsettings]modules/engines/nimf-m17n/org.nimf.engines.nimf-m17n-mr.gschema.xml 25 | [type: gettext/gsettings]modules/engines/nimf-m17n/org.nimf.engines.nimf-m17n-ne.gschema.xml 26 | [type: gettext/gsettings]modules/engines/nimf-rime/org.nimf.engines.nimf-rime.gschema.xml 27 | [type: gettext/gsettings]modules/engines/nimf-system-keyboard/org.nimf.engines.nimf-system-keyboard.gschema.xml 28 | --------------------------------------------------------------------------------