Skip to content

Releases: rubidus-api/jamotong_ime

v0.17.0

Choose a tag to compare

@rubidus-api rubidus-api released this 23 Aug 17:13

Jamotong 0.17.0

Added

  • TSF compartments (RFC-0012 Phase 1): the hangul/english state is published to GUID_COMPARTMENT_KEYBOARD_OPENCLOSE and the conversion mode to GUID_COMPARTMENT_KEYBOARD_INPUTMODE_CONVERSION. The Windows input indicator (한/A) now follows Jamotong, and changes made from outside (indicator, applications) switch the layout. Per-context GUID_COMPARTMENT_KEYBOARD_DISABLED is honoured. Kill switch: UseCompartments=0 in %APPDATA%\Jamotong\config.ini.
  • examples/tsf-conformance-lab/: a thin test TIP, a host-side contract probe and tsfdoctor (per-user input-profile diagnosis; enable Jamotong only / disable foreign profiles).

Fixed

  • Clicking the tray 한/A chip (Jamotong's language-bar button) or choosing 다음 자판 from its menu while a syllable was composing left the preedit on screen and appended following keys to it (since 0.16.2). The composing syllable is now committed first.

Changed

  • Hanja lookup no longer keeps a 512 KB first-character table in every host process.
  • Shortcut key state is resolved once per key event; the unread HKCU\Software\Jamotong\CurrentAbbrev/CurrentName writes are gone.
  • install.bat diagnoses itself (refuses to run from a TEMP folder = zip not extracted, writes install-log.txt next to itself, shows the exact regsvr32 error on failure).

⚠ If you ran a test package dated 2026-08-22 ~ 2026-08-23

The 3-tools\2-fix-enable.bat in those test packages (tsfdoctor --enable-all) enabled every Windows input method for your account, so Win+Space shows Japanese/Chinese/Hindi/… IMEs you never installed. Released Jamotong versions are not affected. Download jamotong-ime-list-repair-*.zip below and follow its README (3-disable-foreign.bat → sign out/in). It only changes this account's enable flags; nothing is uninstalled.

설치 / Install

Extract to a permanent folder (e.g. C:\Jamotong), run install.bat as administrator, then pick Jamotong IME with Win+Space. If it is not in the list, sign out and in (or run the repair tool's 6-enable-jamotong.bat, no admin). Never move or delete the folder while registered — run uninstall.bat first.

Jamotong IME v0.16.2

Choose a tag to compare

@rubidus-api rubidus-api released this 25 Jul 03:16

v0.16.2 (2026-07-25) — 버그 수정

수정

  • 터미널(PuTTY 등)에서 조합 중 한자 변환 시 "가家"처럼 원 음절 뒤에 한자가 덧붙던 문제: '먼저 커밋 후 교체' 방식은 교체가 실제로 되는 호스트(일반 에디터·메모장류)에서만 안전한데, 터미널은 이미 보낸 글자를 고칠 수 없어 중복이 생겼습니다. 이제 터미널에서는 조합을 커밋하지 않고 유지한 채 후보창을 띄우고, 한자를 선택하면 한자만 전송됩니다(원 음절은 아예 전송 안 됨). 취소하면 조합이 그대로 이어집니다.
  • 일반 앱(메모장·AkelPad·카톡 등)의 한자 변환 동작은 기존과 동일합니다.

업그레이드

uninstall.bat → 새 zip을 같은 폴더에 풀기 → install.bat. 로그아웃 불필요 — 한자 변환을 쓸 앱(PuTTY 포함)만 재시작하면 됩니다.

Jamotong IME v0.16.1

Choose a tag to compare

@rubidus-api rubidus-api released this 24 Jul 12:02

v0.16.1 (2026-07-24) — 버그 수정

수정

  • 한자 후보창이 화면 가장자리에서 잘리던 문제: 창을 모니터 작업영역 안으로 클램프하고, 아래로 넘치면 캐럿 줄 위로 뒤집어 표시합니다. 페이지 이동으로 폭이 변해도 다시 클램프됩니다.
  • PuTTY에서 한자 후보창 키보드 탐색 불가(마우스만 동작): 일부 터미널은 후보창이 뜬 동안 키를 입력기로 넘기지 않습니다 — 후보창 표시 중에만 저수준 키보드 훅으로 탐색 키(숫자·방향키·Enter·Esc·Space·PgUp/PgDn)를 직접 처리하도록 했습니다. 창을 닫으면 즉시 해제되고, 일반 앱의 기존 동작에는 영향이 없습니다.

업그레이드

uninstall.bat → 새 zip을 같은 폴더에 풀기 → install.bat. 로그아웃 불필요 — 이번 판은 후보창 동작만 바뀌므로 한자 변환을 쓸 앱만 재시작하면 됩니다.

Jamotong IME v0.16.0

Choose a tag to compare

@rubidus-api rubidus-api released this 24 Jul 11:28

v0.16.0 (2026-07-24)

새 기능 — 한자 후보창 글꼴·크기 설정

  • 설정 → IME Options에 "Hanja candidate font" / "size" 항목 추가(12~72px, 기본 맑은 고딕 24px — 종전 18px 고정보다 큼).
  • 후보·한자 뜻(훈음)·독음·하단 페이지 표시([현재/전체])까지 모든 요소가 같은 글꼴·같은 크기 하나로 렌더되며, 행 높이·창 크기·마우스 클릭 판정이 글꼴 크기에 맞춰 함께 변합니다.
  • 단일 한자 후보에 유니코드 코드포인트 병기: 1. 家 집 가 U+5BB6 형식. 여러 글자 한자 단어에는 붙지 않습니다.

수정

  • 설정창 IME Options 체크박스 글자 뒤로 회색 배경이 살짝 비치던 문제 수정(창 배경색과 동일한 불투명 브러시로 교체).

문서

  • README(한/영) 서두에 이 입력기의 장점 요약("장점"/"Why this IME") 추가 — 무의존 단일 DLL, 호스트별 입력 경로 자동 선택, 무간섭 모드, 데이터 자판, 오프라인 한자 데이터, 로그아웃 없는 설치.

업그레이드

uninstall.bat → 새 zip을 같은 폴더에 풀기 → install.bat. 로그아웃 불필요, 타이핑할 앱만 재시작.

Jamotong IME v0.15.0

Choose a tag to compare

@rubidus-api rubidus-api released this 24 Jul 11:14

v0.15.0 (2026-07-24)

새 기능 — 무간섭(직접 입력) 모드 (실기 검증됨)

원격 데스크톱(구글 원격 데스크톱 등)에서 로컬 IME가 자모키·한/영 키를 가로채 원격 한글 입력이 막히는 구조적 충돌의 해법입니다.

  • 켜는 법: 트레이 자판 아이콘 우클릭 → "Pass-through (direct input) mode" (체크 표시). 원하면 Settings → Shortcuts에서 전용 단축키 지정(기본 없음).
  • 동작: 켜져 있는 동안 자모통이 모든 키를 앱에 그대로 통과 — 한/영 키까지 원격으로 전달되어 원격 PC의 IME로 한글을 입력합니다. 로컬 영어 타이핑은 평소대로 됩니다.
  • 표시: 트레이/언어바 아이콘이 --로 바뀌며, 상태는 모든 앱에서 일관됩니다(레지스트리 공유).

업그레이드

v0.14.0부터는 로그아웃이 필요 없습니다: uninstall.bat → 새 zip을 같은 폴더에 풀기 → install.bat. 타이핑할 앱만 재시작하면 됩니다.

전체 변경 이력은 CHANGELOG.md, 구현 배경은 IME 구현 매뉴얼 §9.5 참조.

Jamotong IME v0.14.0

Choose a tag to compare

@rubidus-api rubidus-api released this 24 Jul 10:35

v0.14.0 (2026-07-24)

새 기능

  • 문서 인라인 표준 composition (RFC-0010): 한글 조합이 메모장 같은 표준 TSF 호스트에서는 이제 문서 안에 밑줄 preedit로 표시됩니다(MS IME와 같은 방식, 실기 검증). CUAS 단명 호스트(AkelPad·터미널류)는 검증된 기존 커밋 전용+오버레이 방식을 자동 유지 — 분기는 앱 이름이 아니라 ITfContext::GetStatusTS_SS_TRANSITORY 플래그로 하며, 이상 동작 시 컨텍스트별 자동 강등과 InlineComposition=0 설정 스위치가 있습니다.

수정

  • 터미널 밑줄 커서 위 조합 미리보기 극소 렌더 수정: PuTTY류에서 캐럿이 밑줄(몇 px)로 보고될 때 칩 크기를 터미널 셀 폭 기반으로 근사하고 커서 '위'에 표시합니다.

변경

  • 아이콘 전면 개편: 자판 모드 아이콘(EN/QW·EN/DV·KO/2B·KO/3B)과 프로필 아이콘(JM/TO)이 비트맵 글꼴 Spleen 5x8(BSD-2)로 그려집니다 — 투명 배경 + 흰 외곽선 + 어두운 보라 글자.
  • 설치/제거에 로그아웃 불필요: 잠긴 DLL을 rename-aside로 치우고 다음 실행에서 자동 청소. 아이콘 갱신용 탐색기 재시작 선택 프롬프트(권한 강등 실행) 추가.

구현 매뉴얼

winapi-c-ime-manual.md(EN)/winapi-c-ime-manual.ko.md(KO)에 이번 사이클의 실기 판정 전 과정이 기록되어 있습니다: AkelPad R1~R4 실험과 Reading metadata 가설 기각(§12.7.8), TS_SS_TRANSITORY 재분류와 제품 분기(§13.0), 터미널 밑줄 커서 함정(§12.1).

설치: zip을 영구 폴더에 풀고 관리자 권한으로 install.bat 실행. 업그레이드는 uninstall.bat → 새 파일 풀기 → install.bat (로그아웃 불필요).

v0.13.1 — 최소 동작 예제 + 매뉴얼 처음부터 따라하기·참고 자료

Choose a tag to compare

@rubidus-api rubidus-api released this 20 Jul 05:58

문서·예제 릴리스입니다. IME 동작 변경은 없습니다.

처음 IME를 만드는 사람이 시작할 수 있게 하는 데 초점을 맞췄습니다.

새로 추가

examples/minimal-tip/ — 동작하는 최소 TSF IME

minimal.c 약 200줄 + minimal.def 6줄. Windows 언어 목록에 뜨고 a 키를 먹어 을 넣는 것이 전부입니다. x64·x86 모두 빌드를 확인했습니다.

IME는 "키를 받아 글자를 넣는 프로그램"이 아니라 OS가 로드하는 COM 서버입니다. 그래서 글자를 넣기 전에 관문이 셋입니다.

① COM 서버가 되어야     → DllGetClassObject 로 객체를 내줄 수 있어야
② IME로 등록되어야      → 언어 목록에 떠야 고를 수 있음
③ 키를 받아야           → 키 싱크를 붙여야 키가 옴
④ 그제서야 글자를 넣음   → 편집 세션 안에서만

하나라도 빠지면 오류 메시지 없이 아무 일도 안 일어납니다. 그 침묵이 처음 하는 사람을 가장 괴롭히므로, 최소 예제로 세 관문을 먼저 통과시키게 했습니다.

매뉴얼 §0.5 「처음부터 따라하기」

빌드 → 등록 → 확인 → 입력 → 제거를 단계별로 안내하고, 단계마다 실패 증상표를 붙였습니다.

증상 원인
"모듈을 로드할 수 없습니다" 비트수 불일치
"진입점을 찾을 수 없습니다" .def 누락
성공했는데 목록에 안 뜸 카테고리 등록 누락

최소 예제가 조합 미리보기를 일부러 안 하는 이유(§8 CUAS의 벽)도 밝혀, §8을 먼저 읽도록 유도합니다.

매뉴얼 부록 B 「참고 자료」

공식 문서 39개 링크를 제목과 함께 정리했습니다. TSF 전반 · 인터페이스 21종 · 개념 · COM · IMM32 · 한글 유니코드 코드표 · 도구.

인터페이스마다 "어디에 쓰는지 + 몇 절"을 달아 본문과 이었고, ITfComposition은 CUAS에서 죽는다거나 ITfCompositionSink가 NULL이면 실패한다는 식으로 실기에서 얻은 주의를 링크 옆에 붙였습니다. 전 링크 접속(HTTP 200)을 확인했습니다.

검증

  • 본체 x64·x86 빌드 무경고
  • 예제 x64·x86 빌드 무경고
  • 릴리스 DLL에 진단 로그 문자열 0건
  • 매뉴얼 링크 39/39 접속 확인

문서

v0.13.0

Choose a tag to compare

@rubidus-api rubidus-api released this 15 Jul 02:42

v0.13.0

보안

  • 설정 Import 경로 조작 취약점 차단: 신뢰할 수 없는 config.ini를 Import할 때 자판 폴더
    밖(예: 시작프로그램 폴더)에 임의 파일을 심을 수 있던 문제를 막았다. 예약 장치명 거부,
    버퍼 경계(OOB) 방어, 파일명 이스케이프(percent-encoding)까지 하드닝.

추가

  • 한자 훈음 표 1,784 → 6,832자: 인명용·벽자 한자에 전통 대표 훈음을 추가해 후보창에서
    뜻을 함께 볼 수 있다(예: 珉 옥돌 민, 埈 높을 준).
  • 인명용 한자 +1,060(인명용 표준 100% 커버), 복합 한자어 331 → 약 2,200.
  • 코드포인트 팝업 문자명 표시, 훈음 없는 한자의 음 표시.
  • jamotong.exe가 트레이 상주 → 일반 관리 앱(.jmt 편집/검증/입력 테스트).
  • .jmt 파서 진단(줄 번호·사유), 설정 Export 이식성(자판 본문 동봉).

전체 변경 내역: CHANGELOG.md


jamotong-260715.zip SHA-256:
afe5d7fe78f8bd7a66d599a0cac5f4c92ce7ddc676c12b6fe32d66ef04d7589f

v0.12.0

Choose a tag to compare

@rubidus-api rubidus-api released this 08 Jul 12:27

Feature release: fully configurable multi-shortcut system, .jmt array syntax, bundled full manual, and a batch of robustness fixes from a full source review (RFC-0004).

Added

  • Per-function multiple shortcuts (up to 8 each, Settings > Shortcuts): layout switch (Kor/Eng), Hanja conversion, Unicode codepoint input (was fixed Ctrl+Alt+U), and the settings window key (was fixed Ctrl+Alt+K) are all rebindable now. Legacy config.ini files migrate automatically.
  • .jmt array (multi-key) assignment: Map qwertyuiop = ',.pyfgcrl (static), Key khj = C0 C2 C11 (hangul), Key jkl; = 0 (chord, consecutive bits). Single-key form unchanged.
  • Full manual bundled: README.md / README.ko.md (install, defaults, settings file location, complete .jmt reference incl. layers, tap-hold and mouse actions) plus LICENSE are now in the zip.
  • User layouts added in Settings persist in %APPDATA%\Jamotong\layouts (survive sign-out; auto-loaded at start).

Fixed

  • Composing + app shortcut (e.g. Ctrl+S) now commits the syllable first, then lets the app handle the key natively.
  • Composing + Enter no longer loses the last syllable in legacy (CUAS) apps — boundary-key resend is delayed ~30ms.
  • Composition preview chip: adapts to mixed font sizes right after showing, without the size flicker; settings labels no longer clip; the size combo shows "Auto" correctly.
  • Invalid .jmt files (out-of-range jamo indices, undeclared chord keys, unknown key/mod names) are rejected at load instead of silently misbehaving.
  • IME registration failures are no longer hidden from the installer; deactivation cleans up an open candidate window.
  • Hanja dictionaries load lazily on first use (less I/O in every process).

Install

  1. Extract jamotong-0.12.0.zip to a permanent folder of your choice (e.g. C:\Program Files\Jamotong).
  2. Run install.bat as administrator, sign out and back in, then pick "Jamotong IME" via Win+Space.

Upgrade

  1. Run the old folder's uninstall.bat as administrator, sign out and back in.
  2. Extract the new zip and run install.bat as administrator. Settings (%APPDATA%\Jamotong\config.ini) are kept and migrated.

Checksum

SHA-256 (jamotong-0.12.0.zip) = 0ce591fdbc1224e3fb969ade7e291047dda110fdfe3067a2f41f1bfede60f350

v0.11.2

Choose a tag to compare

@rubidus-api rubidus-api released this 08 Jul 03:45

Settings-window patch release. IME behavior is identical to v0.11.0/v0.11.1.

Fixed

  • IME Options tab layout: the Preview font / Preview size labels were clipped by the narrow label column. Each label now takes a full row, with its control (font name + Set button, size combo) on the row below.
  • Preview size combo showed blank instead of "Auto": tab switching enumerated child windows recursively and accidentally hid the combo box's internal edit control. The combo now correctly displays "Auto" (and typed/selected sizes).

Install

  1. Download and extract jamotong-0.11.2.zip.
  2. Run install.bat as administrator.
  3. Add the keyboard: Settings > Time & language > Language & region > Korean > Keyboard options.

Upgrade from an earlier version

  1. Run uninstall.bat as administrator, then sign out and back in (the DLL stays mapped in running processes).
  2. Extract the new zip over the old folder and run install.bat as administrator.

Checksum

SHA-256 (jamotong-0.11.2.zip) = 493a0a4fca1fd4ec52d7646e570fac29d53177e6cd83399e9d82f9502a856c69