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 입력기 프레임워크의 언어 엔진으로의 동작을 특징으로 한다. -
표시 이름과 문서 제목이 같은 위키공용분류 -
라우토카
라우토카는 피지 비치레부섬 서부에 위치한 피지에서 두 번째로 큰 도시이자 서부 지방의 행정 중심지로, 사탕수수 산업이 발달하여 "설탕 도시"로 알려져 있으며, 인도에서 온 계약 노동자들의 거주와 미 해군 기지 건설의 역사를 가지고 있고, 피지 산업 생산의 상당 부분을 담당하는 주요 기관들이 위치해 있다. -
표시 이름과 문서 제목이 같은 위키공용분류 -
코코넛
코코넛은 코코넛 야자나무의 열매로 식용 및 유지로 사용되며, 조리되지 않은 과육은 100g당 354kcal의 열량을 내는 다양한 영양 성분으로 구성되어 있고, 코코넛 파우더의 식이섬유는 대부분 불용성 식이섬유인 셀룰로오스이며, 태국 일부 지역에서는 코코넛 수확에 훈련된 원숭이를 이용하는 동물 학대 문제가 있다. -
C로 작성된 자유 소프트웨어 -
PostgreSQL
PostgreSQL은 캘리포니아 대학교 버클리 분교의 Ingres 프로젝트에서 시작되어 전 세계 개발자들의 협력을 통해 발전해온 객체 관계형 데이터베이스 관리 시스템(ORDBMS)이다. -
C로 작성된 자유 소프트웨어 -
김프
김프(GIMP)는 GNU 프로젝트에서 개발된 크로스 플랫폼 기반의 무료 오픈소스 래스터 그래픽 편집기로, 다양한 운영체제를 지원하며 풍부한 기능을 제공하지만 사용자 인터페이스에 대한 비판과 일부 기능의 부족함에 대한 평가도 존재한다.
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 테이블 |