Ibus

**Intelligent Input Bus** (**IBus**, đọc là I-Bus) một nền tảng hỗ trợ các phương thức nhập liệu, hay còn gọi là bộ gõ, cho các hệ điều hành tương tự Unix. Tên "Bus" của nó đến từ kiến trúc tương tự bus của nó.

## Mục tiêu
Mục tiêu chính của IBus bao gồm:

* Cung cấp phương thức nhập liệu đầy đủ và thân thiện với người dùng.
* Sử dụng giải pháp xác thực để cải thiện an ninh
* Cung cấp một giao diện và thư viện phổ quát cho các nhàn phát triển.
* Phù hợp với nhu cầu của người dùng từ các khu vực và phong khác nhau

## Động lực
Dự thảo *Specification of IM engine Service Provider Interface* tài liệu từ Northeast Asia OSS Forum Work Group 3 đề nghị kiến trúc nền tảng bus-centric IM với một bus thêm vào (tương tự như dbus). Theo các đặc điểm kỹ thuật, SCIM-1.4 được xem là không thích hợp thêm,trong khi nó lại được viết bằng c++ thường gây ra các vấn đề chuyển đổi ABI.

Kể từ đó, các dự án thành công như IM-BUS (bởi James Su) và SCIM-2 (bởi Zheng Hu) được khởi động. Tuy nhiên cả hai dự án bị ngừng. Do đó, Huang Peng từ Red Hat thành lập dự án IBus để chứng minh ý tưởng của IM-BUS bằng cách dùng Python, D-Bus và GLib hơn là thực hiện theo các khuyến cáo của diễn đàn CJK OSS. Mặc dù vậy IBus đã nhận được sự chấp thuận của cộng đồng, và FreeBSD cùng nhiều bản phân phối Linux khác như Fedora và Ubuntu đã đưa IBus vào kho phần mềm của họ. IBus trở thành bộ gõ mặc định mới trên Fedora 11, và thay thế SCIM trên Ubuntu 9.10.

## Kiến trúc
IBus được viết bằng C và Python, như vậy tránh được các vấn đề chuyển đổi C++ ABI của SCIM <1.4.14.

IBus cung cấp hầu hết các chức năng của nó thông qua các services. Có ba loại services:
* Input method engine (IME): Bộ gõ hiện thời
* Configuration: Xử lý các cấu hình cho IBUS và các dịch vụ khác như IME.
* Panel: Giao diện người dùng như thanh ngôn ngữ và bảng lựa chọn bộ gõ

IBus dùng D-Bus để liên lạc giữa các ibus-daemon, services, và IM clients chẳng hạn như giả lập thiết bị đầu cuối, trình soạn thảo và các trình duyệt web. ibus-daemon quản lý tất cả clients và services bằng cách nhận đăng ký từ các services, và gửi các tin nhắn qua D-Bus tới các services và IM client.

Nó triển khai các giao thức XIM, và có các modules bộ gõ GTK+ và Qt.

## Tính năng
* Engine loading/unloading theo yêu cầu.
* Hỗ trợ Systray.
* Làm việc với XKB.
* Áp dụng các thay đổi cấu hình ngay lập tức.
* Cung cấp các ràng buộc C và Python.

## Các plugins và engines bộ gõ có sẵn
* ibus-anthy: Một plugin cho Anthy, một IME tiếng Nhật.
* ibus-cangjie : một engine cho bộ gõ Cangjie.
* ibus-chewing: một Chinese Phonetic IME cho người dùng Zhuyin. Nó dựa trên liTCN hewing.
* ibus-hangul: Một IME tiếng Triều Tiên.
* ibus-m17n: Một IMEm 17n cho phép nhập liệu đa ngôn ngữ từ bộ gõ m17n-db.
* ibus-mozc: Một plugin cho IME tiếng Nhật "mozc" phát triển bởi Google.
* ibus-pinyin: Một Chinese Phonetic IME cho người dùng Hanyu pinyin. Thiết kế bới Huang Peng (tác giả chính của IBus) và có nhiều tính năng tiên tiến như kiểm tra chính tả tiếng Anh.
* ibus-libpinyin: Một IME tiếng Hán mới hơn cho người dùng Pinyin. Thiết kế bởi Huang Peng và Peng Wu.
* ibus-table: 
* ibus-unikey: Một IME cho gõ các ký tự tiếng Việt.

## Xem thêm
* Bộ gõ
* SCIM
* X-Unikey
* uim
* fcitx

## Chú thích

## Liên kết ngoài
* 
* Comparison of Chinese Input Method Servers for Unix-like Operating Systems 
* Example for using IBus-Table to create a new IM