m (Updated the URL of the ibus-GNOME.pdf to a valid URL) |
|||
(34 intermediate revisions by 5 users not shown) | |||
Line 2: | Line 2: | ||
== Summary == | == Summary == | ||
[[I18N/IBus|iBus]] is a new input method framework under active development which is designed to overcome the limitations of SCIM. | [[I18N/IBus|iBus]] is a new input method framework under active development which is designed to overcome the limitations of SCIM. It will be the default in Fedora 11. | ||
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 | 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 and XIM, and has input method engines for anthy, chewing, hangul, m17n, pinyin, rawcode, and large tables. Engines and clients can be written in any language with a dbus binding. | ||
== Owner == | == Owner == | ||
Line 12: | Line 12: | ||
== Current status == | == Current status == | ||
* Targeted release: [[Releases/11| Fedora 11]] | * Targeted release: [[Releases/11| Fedora 11]] | ||
* Last updated: 2008- | * Last updated: 2008-04-15 | ||
* Percentage of completion: | * Percentage of completion: 100% | ||
== Detailed Description == | == 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 | 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 improvement requirements for Fedora 11. | ||
iBus is designed to improve a number of deficiencies of scim: | |||
* The | * The initial implementation is written in Python and the next version nearing completion currently is written in C. Scim written in C++ using STL has problems with weak symbol conflicts without the added complexity and lower stability of the scim-bridge layer to workaround that. | ||
* It is possible to write | * It is possible to write client and engines for ibus in any language that supports dbus bindings. | ||
* ibus loads | * ibus loads engines on demand rather than all installed engines as scim does, which improves the startup time and memory footprint. | ||
* scim loads | * 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 a faulty process will die leaving rest of the system working normally. | ||
* The | * The architecture 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, which might be supportable in the future. | ||
== Benefit to Fedora == | == Benefit to Fedora == | ||
It will provide a | It will provide a stabler viable input method framework with a simpler clean architecture which will be easier to maintain, improve, and develop for. | ||
== Scope == | == Scope == | ||
# Make ibus default for F11 Alpha (changes to comps). [done] | # Make ibus default for F11 Alpha (changes to comps). [done] | ||
# Complete C implementation and updating of clients and engines for API changes for F11 Beta. | # Complete C implementation and updating of clients and engines for API changes for F11 Beta. [done] | ||
# Test thoroughly and fix any remaining issues for F11 Final. | # Test thoroughly and fix any remaining issues for F11 Final. [ongoing] | ||
== Test Plan == | == Test Plan == | ||
# Test installs of F11 and check ibus packages installed | # Test installs of F11 and check ibus packages installed | ||
# Test functioning on GNOME, KDE, and other desktops. | # Test functioning on GNOME, KDE, XIM, and other desktops. | ||
# Actively fix any bugs reported and issues that arise. | # Actively fix any bugs reported and issues that arise. | ||
# Work with Fedora QA to ensure that we have no major regressions. | # Work with Fedora QA to ensure that we have no major regressions: [[Test_Days:IBus]] scheduled. | ||
[https://bugzilla.redhat.com/buglist.cgi?component | [https://bugzilla.redhat.com/buglist.cgi?field0-0-0=component&type0-0-0=regexp&value0-0-0=^ibus.*&bug_status=NEW,ASSIGNED,NEEDINFO,MODIFIED Open ibus bugs], [https://bugzilla.redhat.com/showdependencytree.cgi?id=481098 ibus tracker] | ||
== User Experience == | == User Experience == | ||
Line 55: | Line 55: | ||
== Documentation == | == Documentation == | ||
* | * [[I18N/IBus]] | ||
* http:// | * http://2008.gnome.asia/static/upload/event_file/ibus-GNOME.pdf (presentation at GNOME.Asia Summit 2008, Beijing) | ||
* http://code.google.com/p/ibus/ | * http://code.google.com/p/ibus/ | ||
* http://github.com/phuang | * http://github.com/phuang | ||
Line 62: | Line 62: | ||
== Release Notes == | == Release Notes == | ||
The change to ibus | The change to ibus will be documented carefully in the [[Documentation_I18n_Beat#Input_Methods|I18N Docsbeat]]. | ||
== Comments and Discussion == | == Comments and Discussion == | ||
* See [[Talk:Features/IBus]] <!-- This adds a link to the "discussion" tab associated with your page. This provides the ability to have ongoing comments or conversation without bogging down the main feature page --> | * See [[Talk:Features/IBus]] <!-- This adds a link to the "discussion" tab associated with your page. This provides the ability to have ongoing comments or conversation without bogging down the main feature page --> | ||
[[Category:FeatureAcceptedF11]] | |||
<!-- When your feature page is completed and ready for review --> | <!-- When your feature page is completed and ready for review --> | ||
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler --> | <!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler --> | ||
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete--> | <!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete--> | ||
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process --> | <!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process --> |
Latest revision as of 12:23, 19 July 2012
Intelligent Input Bus
Summary
iBus is a new input method framework under active development which is designed to overcome the limitations of SCIM. It will be the default in Fedora 11.
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 and XIM, and has input method engines for anthy, chewing, hangul, m17n, pinyin, rawcode, 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-04-15
- Percentage of completion: 100%
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 improvement requirements for Fedora 11.
iBus is designed to improve a number of deficiencies of scim:
- The initial implementation is written in Python and the next version nearing completion currently is written in C. Scim written in C++ using STL has problems with weak symbol conflicts without the added complexity and lower stability of the scim-bridge layer to workaround that.
- It is possible to write client and 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 a faulty process will die leaving rest of the system working normally.
- The architecture 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, which might be supportable in the future.
Benefit to Fedora
It will provide a stabler viable input method framework with a simpler clean architecture which will be easier to maintain, improve, and develop for.
Scope
- Make ibus default for F11 Alpha (changes to comps). [done]
- Complete C implementation and updating of clients and engines for API changes for F11 Beta. [done]
- Test thoroughly and fix any remaining issues for F11 Final. [ongoing]
Test Plan
- Test installs of F11 and check ibus packages installed
- Test functioning on GNOME, KDE, XIM, and other desktops.
- Actively fix any bugs reported and issues that arise.
- Work with Fedora QA to ensure that we have no major regressions: Test_Days:IBus scheduled.
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 comps to SCIM as default input method system.
Documentation
- I18N/IBus
- http://2008.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 will be documented carefully in the I18N Docsbeat.
Comments and Discussion