(→Detailed Description: expand on advantages) |
|||
Line 20: | Line 20: | ||
Most of the work on ibus is being done upstream by Huang Peng. This feature proposal covers moving from scim to ibus as the default input method framework for Fedora 11, testing, and additional usability feature requirements for ibus. | Most of the work on ibus is being done upstream by Huang Peng. This feature proposal covers moving from scim to ibus as the default input method framework for Fedora 11, testing, and additional usability feature requirements for ibus. | ||
ibus is designed to improve a number of deficiencies of scim: | |||
* The prototype is written in Python and the next version nearing completion currently is in C. Scim written in C++ using STL has problems with weak symbol conflicts with the added complexity and lower stability of the scim-bridge lower to workaround that. | |||
* It is possible to write Engines for ibus in any language that supports dbus bindings. | |||
* ibus loads Engines on demand rather than all installed engines as scim does, which improves the startup time and memory footprint. | |||
* scim loads Engines as dl-modules so a problem in any Engine can take down scim, whereas in ibus because the processes are separated only the one process will die leaving rest of the system working normally. | |||
* The design of ibus is bus-centric and so much closer to the CJK OSS forum Workgroup 3 draft Specification of IM engine Service Provider Interface architecture | |||
== Benefit to Fedora == | == Benefit to Fedora == |
Revision as of 10:12, 19 January 2009
Intelligent Input Bus
Summary
iBus is a new input method framework under active development which is designed to overcome the limitations of SCIM.
iBus uses dbus protocol for communication between the ibus-daemon and clients (engines, panel, config tools). Since the components run in separate processes there is enhanced modularity and stability. Client processes can be loaded, started and stopped independently. iBus supports Gtk2, Qt4, and XIM, and has input method engines for anthy, chewing, hangul, m17n, pinyin, and large tables. Engines and clients can be written in any language with a dbus binding.
Owner
- Name: Peng Huang
- Email: phuang at redhat dot com
Current status
- Targeted release: Fedora 11
- Last updated: 2008-01-19
- Percentage of completion: 60%
Detailed Description
ibus was introduced in Fedora 10 as a new dynamic input method framework and also made available for Fedora 9 Updates.
Most of the work on ibus is being done upstream by Huang Peng. This feature proposal covers moving from scim to ibus as the default input method framework for Fedora 11, testing, and additional usability feature requirements for ibus.
ibus is designed to improve a number of deficiencies of scim:
- The prototype is written in Python and the next version nearing completion currently is in C. Scim written in C++ using STL has problems with weak symbol conflicts with the added complexity and lower stability of the scim-bridge lower to workaround that.
- It is possible to write Engines for ibus in any language that supports dbus bindings.
- ibus loads Engines on demand rather than all installed engines as scim does, which improves the startup time and memory footprint.
- scim loads Engines as dl-modules so a problem in any Engine can take down scim, whereas in ibus because the processes are separated only the one process will die leaving rest of the system working normally.
- The design of ibus is bus-centric and so much closer to the CJK OSS forum Workgroup 3 draft Specification of IM engine Service Provider Interface architecture
Benefit to Fedora
It will provide a more stable viable input method framework which will be easier to maintain and
Scope
Core:
- Push rewrite in C to rawhide.
- Update comps to install ibus by default in place of scim.
- Update ibus packages to obsolete older scim packages (users will still have the option to use scim in F11 if they install themselves).
Engines:
- Change engine loading logic to avoid using many xxx.engine files to describe all keymaps in m17n engine
- Improvements:
- Make ibus-pinyin better
- Add hotkey configure for ibus-anthy
- Separate tables from ibus-table engine
Test Plan
- Test updating F10 to F11 and check that scim packages replaced by ibus packages.
- Organize testing of ibus by native users for feedback and filing bugs and RFE's.
- Work with Fedora QA to ensure that we have no regressions.
User Experience
- Better performance since ibus only loads the input method engines it needs at start.
- Stability from simpler architecture without need to avoid symbol conflicts from using C++ STL.
Dependencies
- None
Contingency Plan
- revert to SCIM as default input method system.
Documentation
- http://fedoraproject.org/wiki/I18N/IBus
- http://www.gnome.asia/static/upload/event_file/ibus-GNOME.pdf (presentation at GNOME.Asia Summit 2008, Beijing)
- http://code.google.com/p/ibus/
- http://github.com/phuang
- https://wiki.ubuntu.com/UDSJaunty/ibus-spec
Release Notes
The change to ibus should be documented carefully under I18N Docsbeat.