IBus
1. 개요
IBus는 사용자 친화적인 입력 방식과 다국어 지원을 제공하며, 입력기 개발을 위한 인터페이스와 라이브러리를 제공하는 입력 방식 프레임워크이다. 동북아 OSS 포럼의 문서를 기반으로 개발되었으며, C와 Python으로 작성되어 C++ ABI 문제를 해결했다. IBus는 입력 방식 엔진, 구성, 패널로 구성되며, D-Bus를 통해 서비스 간 통신을 수행한다. 다양한 입력기 플러그인과 엔진을 지원하며, 알림 영역 지원, XKB와의 상호 운용성, 설정 변경 즉시 적용 등의 특징을 갖는다.
이미지 준비중입니다.
이미지 준비중입니다.
| 개발자 | 펭 황 |
|---|---|
| 원저자 | 황 펭 |
| 출시일 | 2008년 8월 |
| 프로그래밍 언어 | C 파이썬 |
| 운영체제 | 유닉스 계열 |
| 언어 | 다국어 지원 |
| 종류 | 입력기 |
| 라이선스 | GNU LGPL v2 또는 그 이후 |
| 웹사이트 | IBus GitHub 저장소 |
-
입력기 -
금석문자경
금석문자경은 1997년 발매된 한자 글꼴 및 데이터베이스로, 다양한 버전 업데이트와 웹 데이터베이스 서비스 등을 제공하다가 2018년 사업이 종료되었다. -
입력기 -
SCIM
SCIM은 C++ 또는 C로 작성된 모듈화된 객체 지향 구조의 입력기로, 동적 라이브러리 로드, UCS-4/UTF-8 인코딩 지원을 통한 국제화, 다양한 입력기 라이브러리 통합, 그리고 IIIMF 입력기 프레임워크의 언어 엔진으로의 동작을 특징으로 한다. -
C로 작성된 자유 소프트웨어 -
PostgreSQL
PostgreSQL은 캘리포니아 대학교 버클리 분교의 Ingres 프로젝트에서 시작되어 전 세계 개발자들의 협력을 통해 발전해온 객체 관계형 데이터베이스 관리 시스템(ORDBMS)이다. -
C로 작성된 자유 소프트웨어 -
김프
김프(GIMP)는 GNU 프로젝트에서 개발된 크로스 플랫폼 기반의 무료 오픈소스 래스터 그래픽 편집기로, 다양한 운영체제를 지원하며 풍부한 기능을 제공하지만 사용자 인터페이스에 대한 비판과 일부 기능의 부족함에 대한 평가도 존재한다. -
공식 웹사이트에 알 수 없는 변수를 사용한 문서 -
브루클린 미술관
브루클린 미술관은 1823년 브루클린 견습생 도서관으로 시작하여 현재 약 50만 점의 소장품을 보유한 뉴욕 브루클린 소재의 미술관으로, 다양한 분야의 예술 작품을 전시하며 특히 아프리카 미술과 여성주의 미술에 대한 기여가 크다. -
공식 웹사이트에 알 수 없는 변수를 사용한 문서 -
광주지방기상청
광주지방기상청은 광주광역시와 전라남도 지역의 기상 예보, 특보, 관측, 기후 정보 제공 등의 업무를 수행하는 기상청 소속 기관으로, 1949년 광주측후소로 설치되어 1992년 광주지방기상청으로 개편되었으며, 기획운영과, 예보과, 관측과, 기후서비스과와 전주기상지청, 목포기상대를 두고 있다.
2. 목표
* 사용자 친화적이고 충분한 기능을 갖춘 입력기의 사용자 인터페이스를 제공한다.
* 보안 향상을 위해 인증 평가를 채택한다.
* 변환 엔진 개발자에게 보편적인 인터페이스와 라이브러리를 제공한다.
* 다양한 지역 및 사용자의 요구 사항을 충족한다.
3. 배경
IBus는 동북아 OSS 포럼 워크 그룹 3에서 제안한 'IM 엔진 서비스 제공자 인터페이스 명세'를 기반으로 개발되었다. 이 명세는 버스 중심의 입력기 프레임워크 아키텍처를 제안했다. 기존의 입력기 프레임워크였던 SCIM-1.4는 C++로 개발되어 ABI 전환 문제를 야기했기 때문에 더 이상 개발하기에 적합하지 않다고 판단되었다.
이후 James Su가 주도한 IM-BUS와 Zheng Hu가 주도한 SCIM-2와 같은 후속 프로젝트들이 시작되었으나, 두 프로젝트 모두 중단되었다. 이에 Huang Peng은 Red Hat에서 IBus 프로젝트를 시작하여 Python, D-Bus, GLib를 사용해 IM-BUS의 아이디어를 구현했다. IBus는 FreeBSD, 페도라, Ubuntu 등 여러 리눅스 배포판에서 기본 입력기 프레임워크로 채택되었다. 특히, 페도라 11부터 새로운 기본 입력 방식 프레임워크가 되었고, 우분투 9.10에서는 SCIM을 대체했다.
4. 구조
IBus는 C와 Python으로 개발되어 SCIM 1.4.14 이후의 C++ ABI 전환 문제를 해결했다.
IBus는 대부분의 기능을 서비스를 통해 제공한다. 주요 서비스는 다음과 같다.
* 입력 방식 엔진(IME): 실제 입력 방식이다.
* 구성: IBus 및 IME와 같은 다른 서비스에 대한 구성을 처리한다.
* 패널: 언어 표시줄 및 후보 선택 테이블과 같은 사용자 인터페이스이다.
IBus는 D-Bus를 사용하여 ibus-daemon, 서비스, 터미널 에뮬레이터, 편집기 및 웹 브라우저와 같은 IM 클라이언트 간에 통신한다. ibus-daemon은 서비스로부터의 등록을 받아 해당 서비스 및 IM 클라이언트에 D-Bus 메시지를 전송하여 모든 클라이언트와 서비스를 관리한다.
XIM 프로토콜을 구현하고 있으며 GTK 및 Qt 입력 방식 모듈을 갖추고 있다.
5. 특징
* 필요에 따라 엔진을 불러오고 내릴 수 있다.
* 알림 영역(작업 표시줄)을 지원한다.
* XKB와의 상호 운용성을 지원한다.
* 설정을 즉시 적용한다.
* C와 Python 바인딩을 제공한다.
6. 지원하는 입력기 플러그인 및 엔진
* ibus-anthy: 일본어 입력기 Anthy 플러그인
* ibus-avro: 벵골어 음성 키보드 레이아웃 (Avro 키보드 기반)
* ibus-cangjie: 창힐 입력법 엔진
* ibus-chewing: 주음 부호 기반 지능형 중국어 입력기 (libChewing 기반)
* ibus-hangul: 한국어 입력기
* ibus-libpinyin: 핀인 기반 중국어 입력기 (ibus-pinyin 대체)
* ibus-libthai: libthai 기반 태국어 입력기
* ibus-libzhuyin: 주음 부호 입력 방식 엔진 (ibus-chewing 대안)
* ibus-mozc: 구글 일본어 입력기 "mozc" 플러그인
* ibus-pinyin: 병음 기반 지능형 중국어 입력기 (현재는 ibus-libpinyin으로 대체됨)
* ibus-unikey: 베트남어 입력기
* ibus-canna: NEC사의 Canna (현재는 SourceForge). 데비안(Debian) 및 openSUSE 호환 배포판에서만 사용 가능.
* ibus-skk: IBus를 위한 일본어 SKK 입력 엔진.
6.1. ibus-m17n
ibus-m17n은 다국어 데이터베이스에서 입력 방식과 해당 아이콘을 사용하는 입력 엔진(IME)으로, 숫자약자 "m17n"으로 줄여 쓰기도 한다. ibus-table과 달리, m17n 입력 방식은 IBus 패널(언어 표시줄)에 레이블이 표시되는 상태를 지원하며, 주변 텍스트도 지원한다. 이러한 기능이 필요한 태국어, 일반 주음 부호와 같은 입력 방식은 ibus-m17n을 통해 지원되며, 성조가 있는 병음도 지원된다.
6.2. ibus-table
ibus-table은 Yu Wei Yu가 개발한 테이블 기반 입력 엔진으로, 단어 선택 로직이 필요 없는 입력 방식(예: 창힐, 오필)을 지원한다.
공식 출시된 IM 테이블은 다음과 같다.
| | 설명 | |
|---|---|
| latex | LaTeX 문법을 사용하여 특수 문자를 입력한다. ibus-table 패키지에 포함되어 있다. |
| compose | 문자와 분음 부호를 조합하여 특수 문자를 입력한다. ibus-table 패키지에 포함되어 있다. |
| Array30 | Array30 중국어 IM 테이블 |
| Cangjie | 창힐 3 및 5 중국어 IM 테이블 |
| Erbi | 얼비 중국어 IM 테이블 |
| Wubi | 오필 중국어 IM 테이블 |
| Yong | YongMa 중국어 IM 테이블 |
| ZhengMa | 정마 중국어 IM 테이블 |