본문 바로가기
리눅스

Intelligent Input Bus (ibus)

by 다움위키 2024. 11. 21.

원문 보기: https://dawoum.duckdns.org/wiki/Intelligent_Input_Bus

 

Intelligent Input Bus (IBus, I-Bus로 발음함)는 유닉스-계열 운영-시스템에서 다국어 입력을 위한 입력 방식 (IM) 프레임워크입니다. 이름 "버스"는 버스-계열 아키텍처에서 유래되었습니다.

Installation

데비안 저장소에서 설치할 수 있습니다:

  • sudo apt install ibus ibus-hangul

Configurations

그놈 검색 창에서 Settings를 실행합니다.

Keyboard 탭에서 오른쪽에 있는 Input Sources 영역에서 + Add Input Source를 누릅니다.

새로 생긴 Add Input Source에서 아래로 스크롤한 후에 세로 점 3개를 누릅니다.

새로 생긴 Search language nd countries 영역에 Korean을 입력하면, 아래에 검색 결과가 1개 생깁니다:

검색 결과에 생긴 Korean을 눌러서 Korean (Hangul)을 누릅니다.

이전 화면으로 돌아오면, Input Sources에 English와 Korean (Hangul) 2개가 보입니다.

여기서 English 옆에 세로 점 3개를 눌러서 Remove를 선택합니다.

그놈이 아닌 다른 데스크탑을 위해 ~/.xprofile (또는 ~/.zprofile)에 다음을 추가하십시오:

GTK_IM_MODULE=ibus
QT_IM_MODULE=ibus
XMODIFIERS=@im=ibus

Goals

IBus 프로젝트의 주요 목표는 다음을 포함합니다:

  • 전체-기능을 갖추고 사용자-친화적인 입력-방식 사용자 인터페이스를 제공
  • 보안을 강화하기 위한 인증 조치를 활용
  • 입력-방식 개발자를 위한 범용 인터페이스와 라이브러리를 제공
  • 다양한 지역과 관습의 사용자의 요구에 맞춰 제공

Motivation

동북아시아 OSS 포럼 작업 그룹 3로부터 IM 엔진 서비스 제공자 인터페이스 문서의 초안 사양은 버스 구현 (dbus와 유사)을 갖춘 버스-중심 IM 프레임워크 아키텍처를 권장합니다. 사양에 따르면, SCIM-1.4는 보통 ABI 전환 문제를 일으키는 C++로 개발되었으므로 추가 개발에 적합하지 않은 것으로 고려됩니다.

그 이후로, IM-BUS (James Su가 주도) 및 SCIM-2 (Zheng Hu가 주도)와 같은 후속 프로젝트가 시작되었습니다. 어쨌든, 두 프로젝트 모두 중단되었습니다. 그러므로, Red Hat로부터 Huang Peng은 CJK OSS 포럼에 의해 권장되는 기능을 구현하는 대신 Python, D-BusGLib를 사용함으로써 IM-BUS의 아이디어를 증명하기 위해 IBus 프로젝트를 설립했습니다. 그럼에도 불구하고 IBus는 이미 공동체의 수용을 얻었고, FreeBSDFedoraUbuntu와 같은 많은 리눅스 배포판은 이미 패키지 저장소에 IBus를 포함하고 있습니다. IBus는 Fedora 11에서 새로운 기본 입력 방법 프레임워크가 되었고, Ubuntu 9.10에서 SCIM을 대체했습니다.

Architecture

IBus는 CPython으로 개발되었고, 따라서 SCIM <1.4.14의 C++ ABI 전환 문제를 피할 수 있습니다.

IBus는 대부분의 기능을 서비스를 통해 제공합니다. 여기에는 세 가지 종류의 서비스가 있습니다:

  • 입력 방식 엔진 (IME): 실제 입력 방식
  • 구성: IBus와 IME와 같은 기타 서비스에 대해 구성을 처리
  • 패널: 언어 막대와 후보 선택 테이블과 같은 사용자 인터페이스

IBus는 D-Bus를 ibus-daemon, 서비스, 및 터미널 에뮬레이터, 편집기와 웹 브라우저와 같은 IM 클라이언트 사이의 통신을 위해 사용합니다. ibus-daemon은 서비스에서 등록을 수신하고, D-Bus 메시지를 해당 서비스와 IM 클라이언트에 전송함으로써 모든 클라이언트와 서비스를 관리합니다.

그것은 XIM 프로토콜을 구현하고 GTKQt 입력 방식 모듈을 갖추고 있습니다.

Features

  • 요구에 따른 엔진 로딩 및 언로딩
  • 작업 표시줄의 알림 영역 지원
  • XKB와의 상호 운용성
  • 구성 변경 사항을 즉시 적용
  • C와 Python 바인딩을 제공

Available input method plugins and engines

  • ibus-anthy: Anthy, 일본어 IME에 대한 플럭인
  • ibus-avro: Avro Keyboard를 기반으로 Bengali 쓰기에 대한 음성 키보드 레이아웃
  • ibus-cangjie: Cangjie 입력 방식에 대한 엔진
  • ibus-chewing: Zhùyīn 사용자를 위한 지능형 중국어 음성 IME. libChewing를 기반으로 합니다.
  • ibus-hangul: 한글 IME
  • ibus-libpinyin: Pinyin 사용자를 위한 새로운 중국어 IME. Huang Peng와 Peng Wu에 의해 설계됨.
  • ibus-libthai: libthai를 기반으로 하는 Thai IME
  • ibus-libzhuyin: Zhùyīn ("bopomofo") 입력 방식을 위한 엔진 (ibus-chewing의 대안)
  • ibus-m17n: m17n-db의 입력 방식을 사용하여 여러 언어를 입력할 수 있는 다국어 IME. 자세한 내용에 대해 #ibus-m17n를 참조.
  • ibus-mozc: 구글에서 개발한 일본어 IME "mozc" 플럭인
  • ibus-pinyin: Hanyu pinyin 사용자를 위한 지능형 중국어 음성 IME. Huang Peng (IBus의 주요 저자)이 설계했고 영어 철자 검사와 같은 많은 고급 기능이 있음. 더 이상 사용되지 않고 ibus-libpinyin으로 대체되었음 (위 참조).
  • ibus-table: 테이블-기반 IM을 수용하는 IME. 자세한 내용에 대해 #ibus-table에서 참조.
  • ibus-unikey: 베트남어 문자를 입력하기 위한 IME

ibus-m17n

ibus-m17n은 다국적화 데이터베이스의 입력 방식과 해당 아이콘을 사용하는 IME로, 숫자-이름 "m17n"으로 축약됩니다. 일반 테이블을 지원하는 ibus-table과 달리, m17n 입력 방식은 레이블이 IBus 패널 (언어 막대)에 표시되는 상태도 지원합니다. M17n 입력 방식은 주변 텍스트도 지원하므로, 이 기능이 필요한 태국어와 일반 Zhuyin과 같은 IM은 ibus-m17n을 통해 지원되며, 4가지 음조에 대한 부호가 있는 pinyin도 지원됩니다.

ibus-table

Yu Wei Yu가 개발한 ibus-table은 단어 선택을 위해 복잡한 논리가 필요하지 않은 입력 방식 테이블을 로드하는 IME입니다. CangjieWubi와 같은 많은 구조-기반 중국어 입력 방식이 이 방법으로 지원됩니다.

공식적으로 출시된 IM 테이블:

  • latex: LaTeX 구문을 사용하여 특수 문자를 입력. ibus-table 패키지에 포함되어 있음.
  • compose: 특수 문자를 compose 문자와 발음 구별 기호로 입력. ibus-table 패키지에 포함되어 있음.
  • Array30: Array30 중국어 IM 테이블
  • Cangjie: Cangjie 3 및 5 중국어 IM 테이블
  • Erbi: Er-bi 중국어 IM 테이블
  • Wubi: Wubi 중국어 IM 테이블
  • Yong: YongMa 중국어 IM 테이블
  • ZhengMa: ZhengMa 중국어 IM 테이블