|
|
Subscribe / Log in / New account

GNOME and input method integration

Please consider subscribing to LWN

Subscriptions are the lifeblood of LWN.net. If you appreciate this content and would like to see more of it, your subscription will help to ensure that LWN continues to thrive. Please visit this page to join up and keep LWN on the net.

By Nathan Willis
June 26, 2012

Those of us who type in Latin characters may easily overlook what it takes to get text into windows or command lines in other writing systems. Entry of characters not found on one's keyboard requires the use of an input method (IM) which turns multiple keystrokes into characters. There are plenty of capable projects, but they often lack deep integration into the desktop environment or widget toolkit. In April, GNOME developer Rui Matos proposed a feature for the upcoming GNOME 3.6 release that would integrate the IBus framework into the core GNOME desktop, tackling this precise challenge. IBus is a framework that allows the user to select — and switch between — multiple IMs. The plan spawned considerable debate, not only on the merits of IBus, but on the wisdom of tightly integrating a single component into the desktop environment. Complicating matters is the divide between the bulk of the GNOME developer community and those users who depend on input methods, primarily from the Chinese-Japanese-Korean (CJK) language communities.

At the heart of the issue is how CJK users input text. In alphabetic or syllabic writing systems (including European, North Indic, and Middle Eastern), there is a known mapping between the pronunciation of a word and its written representation. In the logographic writing systems of CJK, where the strokes of the character do not represent sounds or other subdivisions of the word, users make use of an IM instead. There are phonetic IMs such as Pinyin (in which the user types in the romanization of a word on the keyboard and the IM substitutes the correct character, or logogram), shape-based IMs like Cangjie (which decompose the logogram in a strict order), and many hybrids. In most cases, good dictionaries or tables are required, plus word-prediction, spell-checking, and other add-on features to cope with homophones and other tricky bits. Mobile phone users got a taste of the IM experience through T9 and other numeric-keypad predictive text systems, which have largely been replaced.

For everyday typing, the challenge is greater because no one input method is inherently superior: if you do not know how to pronounce an unfamiliar word, a phonetic method is no use, and switching to shape-based method makes sense. On the other hand, typing a word that you hear but have not seen written down demands a phonetic method. Likewise, regional accents can have very different pronunciations for the same logogram, but there is often more than one way to decompose a logogram by shape — not to mention the problem of writing reforms like Simplified Chinese, which is not simplified uniformly between mainland Chinese hanzi and Japanese kanji. Thus, almost no IM can be relied upon to the exclusion of all others. Throw in open source developers' penchant for reinventing the wheel to scratch their own itches, and the result is multiple IM frameworks, each of which can load individual IMs as the user chooses.

Supporting all of these frameworks is a challenge, one that Matos (who works mostly on gnome-control-center, GNOME Shell, and other desktop components) felt detracted from GNOME's ability to provide a consistent desktop experience and left CJK users a step behind those users whose writing system works out-of-the-box. As he explained on the desktop-devel list, IM framework proliferation reduces the odds that any of the frameworks will get enough testing to be robust, and it greatly complicates bug triage for GNOME. Plus, many of the popular IM frameworks also attempt to be cross-desktop, which makes integrating them seamlessly into GNOME difficult. Their visual appearance does not match, they conflict with core GNOME settings like XKB configuration and key bindings, and they cannot be automatically started (relying either on user interaction or shell scripts to launch). The fix he proposed is to take one IM framework, tie it in more directly to GNOME (including adding or extending GNOME APIs where needed), and make sure that it works for the majority of users.

Specifically, Matos said, GNOME has three requirements to properly integrate an IM framework with the desktop: a GTK+ module, a D-Bus API that can enumerate, activate, and configure installed IMs, and a D-Bus API on GNOME's side that the framework can use to draw predictive-text pop-up windows. Right now, he said, only IBus meets all of the requirements. Owen Taylor added some additional requirements to integrate the framework with GNOME accessibility and configuration standards, and a quality set of existing IMs. The IBus team expressed a willingness to work with GNOME, which was also critical.

Feedback from the CJK community

However, the plan elicited strong reactions from some members of the CJK user community. Marguerite Su replied that few if any CJK users like IBus; with most preferring rival framework Fcitx out of the existing options available on desktop Linux. Others chimed in with criticism of IBus. The complaints included several overlapping issues, including customization features, IM engine quality, and speed. Su elaborated on the feature disparity, saying that some users want to customize shortcuts, rearrange the word-completion suggestions, or fetch new dictionary words from Internet servers. But trading IBus for Fcitx is not the simple solution. IBus works well for Simplified Chinese, but not Traditional Chinese, while Fcitx is focused largely on Chinese and has less robust support for other languages, including Japanese (although it has plans to improve its Japanese support). Chinese users are greater in number, which might argue in favor of Fcitx, but surely the best solution would be to find a framework that serves everyone. Support for writing systems unrelated to the CJK family (such as Tibetan or Thai) is weaker in general across the IM frameworks.

But over the course of the sometimes-heated list discussion, the IBus critics proposed not simply adopting Fcitx outright, but keeping IM frameworks a user-controlled, pluggable option. For example, Liang Suilong, who argued that IBus is laggy, still advocated building an "IM framework framework" for GNOME, thus allowing users to choose the framework they preferred. But that idea was not well-received by GNOME developers. Tomas Frydrych summed up the two sides of the divide:

Rather a long discussion over IBus, but it seems to more or less boil down to two voices and this:

Gnome developers: we want tighter IM integration and simpler UI in the name of better UX, and are looking at IBus as the underlying technology,

Users: IBus has poor support for CJK input and a history of not addressing these problems.

As others pointed out on the list, the latter point was not accurate; IBus does support CJK, but not all users are happy with its IM implementations or auxiliary features. Complicating matters more is the cultural divide between the groups. Weng Xuetian pointed out that the core GNOME developers are not IM users (most speak European languages), which makes them unqualified to select the "best" IM framework to then be used by a large number GNOME users who were not able to participate in the discussion.

Frameworks, not engines

But the groundswell of IBus criticism was not the final word. Tommy He said that the debate was too focused on CJK input, to the exclusion of other writing systems, and moreover that much of the lobbying in favor of Fcitx focused on the quality of the various IM engines, rather than the frameworks themselves. After all, if Fcitx can add a new and improved Japanese IM, then IBus could add one for Traditional Chinese.

Admittedly, the framework-versus-IM debate is a difficult one to pin down. On the one hand, Fcitx proponents enjoy its more flexible plugin system, which allows user-defined macros and other daily-use features. But that same flexibility could make it more difficult to integrate with GNOME's existing language settings and preferences, when providing a better first-run experience is explicitly one of the goals. As Owen Taylor observed, Fcitx generates its configuration GUI on-the-fly, which is a technique GNOME finds problematic and tries to avoid.

On May 14, Taylor attempted to re-center the discussion to the framework question, arguing that GNOME needs to pick one framework, then make it work "as well as we can possibly make it for all users. Multiple partially working frameworks are not a substitute." When the IBus-versus-Fcitx debate briefly resurfaced, Bastien Nocera advocated starting the IBus integration work as soon as possible, then inviting Fcitx to bring its own code demonstrating that it could fit the role better. "A lot of the code should be reusable, and you can show how much more awesome and complete your favourite IMF is."

When it looked like the core GNOME developers had made their final decision to integrate IBus, a few IBus detractors asked the team to postpone the decision for further discussion, but without success. Nocera reiterated his opinion that it would be better to pick an imperfect IM framework and replace it in later releases than to do nothing:

If we choose to merge integration based on IBus (because of a variety of reasons), then two things can happen:

- Developers of other Input Frameworks can start creating patches to the upstream GNOME to provide a better integration than the default choice.

- They choose to start working on the selected IMF because it's the selected IMF

- They choose to concentrate on other desktops

In all cases, the implementation will evolve, and the integration will get better. I don't want to have the choice between 2 equally badly integrated IMFs for GNOME.

But Jasper St. Pierre compared the decision to other components, like audio. GNOME does not attempt to support ESD and OSS in addition to PulseAudio due to limited resources, he said, and GNOME's choice of IM frameworks will not force distributions to follow suit. "I doubt we have the resources to support both IBus and FCITX, and provide a good experience for both. Individual distributions may, but that's their call, not GNOME's."

The Fcitx lobby may not be satisfied with that response, but it looks like IBus is here to stay for the 3.6 development cycle at the very least. The GNOME wiki page lists seven tracker bugs to follow the integration with GNOME Shell, GNOME control center, and other components. There is still plenty of integration and debugging work to be done, including improving IBus's support for Hong Kong localization and reducing interference with other applications.

In an email, Matos said that he thought many of the user concerns about losing Fcitx boiled down to UI/UX issues, particularly attachment to "things like skins and themes for the UI popups. In this regard I just can say that as far as gnome-shell is (somewhat) themable people will be able to do themes for gnome-shell's IM popups." On the other hand, he added, there are Fcitx features like spell-checking that should be handled desktop-wide, while features like retrieving word lists from an online service "is orthogonal and there's no reason it can't be implemented [in] IBus." It may not be an easy journey, but clearly pulling CJK users into the fold with first-order input support has potential benefits that far outweigh the costs.



(Log in to post comments)

GNOME and input method integration

Posted Jun 26, 2012 23:03 UTC (Tue) by marcH (subscriber, #57642) [Link]

[Sorry this might be slightly off-topic]

Do dead keys and (acrobatic...) modifiers involve a so-called "input method"? Or is something entirely different? Think diacritics.

I used to fix poor default configurations using a simple xmodmaprc file, but eventually got lost in the "advanced" and changing GNOME keyboard configuration techniques and gave up.

I now tend to use spell-checkers instead! Typically not able to fix 100% of the missing diacritics but 90% is much better than 10%.

GNOME and input method integration

Posted Jun 26, 2012 23:40 UTC (Tue) by Tester (guest, #40675) [Link]

Dead keys are definitely a feature of the basic xkb based keyboard input, they don't require an IM thing.

GNOME and input method integration

Posted Jun 27, 2012 10:42 UTC (Wed) by csslayer (guest, #85354) [Link]

The idea of don't require doesn't mean it's not.

Actually it is IM thing on other platform, I don't see the reason that it should not be on linux.

GNOME and input method integration

Posted Jun 27, 2012 11:44 UTC (Wed) by daniels (subscriber, #16193) [Link]

> Dead keys are definitely a feature of the basic xkb based keyboard input, they don't require an IM thing.

Actually, they do, it's just that Xlib's built-in input method supports it. If you want to compose á using a dead key, the user types — and the X server sends — a 'dead_acute' keypress, followed by an 'a' keypress. It's then up to the client to compose this into á, much the same way it does for Compose+a+'. You can check this by looking at /usr/share/X11/locale/en_US.UTF-8/Compose for the built-in X Input Method:
<dead_acute> <a> : "á" aacute # LATIN SMALL LETTER A WITH ACUTE

Broadly speaking, anything which involves multiple keypresses turning into one, is an input method feature.

GNOME and input method integration

Posted Jun 27, 2012 12:42 UTC (Wed) by marcH (subscriber, #57642) [Link]

> It's then up to the client to compose this into à...

So, can you have situations like: one GNOME application and one KDE application running side by side and composing this example differently?

GNOME and input method integration

Posted Jun 27, 2012 12:48 UTC (Wed) by daniels (subscriber, #16193) [Link]

Yep, totally.

GNOME and input method integration

Posted Jun 26, 2012 23:08 UTC (Tue) by leandro (guest, #1460) [Link]

I really diſlike Gnome meddliŋ wiþ my keyboard. For me, ðis muſt be ſet at ðe conſole, ſo I have ðe ſame behaviour at Gnome, ðe conſole & any oðer environment — for inſtance, I uſe StumpWM but ſtill run Gnome occaſionaly so I can reproduce behaviour from my parents, or ſhowcaſe GNU/Linux, and I want to have ðe ſame input meþod regardleß.

GNOME and input method integration

Posted Jun 27, 2012 13:38 UTC (Wed) by ghane (guest, #1805) [Link]

Leandro, thank you for an example that I shall cite repeatedly.

Especially the use of the thorn character, my favourite.

GNOME and input method integration

Posted Jun 28, 2012 10:12 UTC (Thu) by Seegras (guest, #20463) [Link]

I like ðheſe examples. Eſpecially ðe long ſ.

GNOME and input method integration

Posted Jun 28, 2012 10:13 UTC (Thu) by Seegras (guest, #20463) [Link]

(oops, an "h" too many)

GNOME and input method integration

Posted Jun 27, 2012 5:51 UTC (Wed) by wujj123456 (subscriber, #84680) [Link]

I actually prefer iBus as a simplified-Chinese user. It's kinda minimalist, and feels really well when it works. But this made me lol'ed:
"Users: IBus has poor support for CJK input and a history of not addressing these problems."

This is indeed so true. There are many many annoying details iBus didn't get it right and not bother to fix for years, especially the icon and word box position tracking. I have a feeling that iBus is not that active. However, given this discussion and GNOME's participation, I hope iBus could improve dramatically.

I do agree that getting some integration is the most important thing!!

Lack of integration with desktop environment is indeed a big problem as IM (no matter iBus or Fcitx) does have inconsistent behavior across applications now. It's a headache to deal with. I am glad someone is finally tackling this problem. IM in any other OS is a first-class citizen. This is actually one of the biggest problems for my Chinese fellows to embrace Linux. Just think how frustrating it is if you have to type multiple commands, go through multiple settings before you can type into any messaging/websites/applications. Not to mention that you need an experienced user to do these settings for you. You say Google? How do you Google if you don't know English, and can't type your native language? See how sad the current state is for CJK users? I have many friends directly turn back to Windows citing the IM problem. :-(

GNOME and input method integration

Posted Oct 10, 2016 10:41 UTC (Mon) by Hi-Angel (guest, #110915) [Link]

> However, given this discussion and GNOME's participation,
> I hope iBus could improve dramatically.

A question from the end of 2016 year, did it? I didn't find communication with a maintainer to be pleasing, but perhaps it's a personal experience, did IBus improve for these years?

GNOME and input method integration

Posted Jun 27, 2012 6:37 UTC (Wed) by russell (guest, #10458) [Link]

"Su elaborated on the feature disparity, saying that some users want to customize shortcuts, rearrange the word-completion suggestions, or fetch new dictionary words from Internet servers"

And that's the key. If you customize you are not a GNOME user. You will conform to the GNOME model or leave.

GNOME and input method integration

Posted Jun 27, 2012 10:30 UTC (Wed) by jhoblitt (subscriber, #77733) [Link]

And GNOME isn't to be confused with a German political party that existed prior to 1945.

GNOME and input method integration

Posted Jun 27, 2012 13:45 UTC (Wed) by drag (guest, #31333) [Link]

That's a odd statement considering how modern Gnome is more flexible and customizable then Gnome 2 was.

GNOME and input method integration

Posted Jun 28, 2012 17:59 UTC (Thu) by proski (subscriber, #104) [Link]

My experience is exactly the opposite. In GNOME 2, I could edit the menu with alacarte. In GNOME 3, it's not working. There is an effort to port alacarte to GNOME 3. But as it stands now, all new items go the the Other menu, and the top-level menu cannot be edited at all. GNOME 3 still didn't approach the flexibility of Windows 95 in that respect.

GNOME and input method integration

Posted Jul 5, 2012 8:04 UTC (Thu) by kigurai (guest, #85475) [Link]

Menu? Why are you using a menu?
I find launching stuff in Gnome 3 is much faster as I simply type the first characters of whast i want to launch instead of trying to navigate tiny menus.

GNOME and input method integration

Posted Jul 9, 2012 14:58 UTC (Mon) by ThinkRob (guest, #64513) [Link]

> Menu? Why are you using a menu?

You know... that right there is representative of many, many users experience with GNOME 3.x and (more importantly) the community backing it.

A user complains about a workflow regression and the very first response is "what are you doing that for?"

Now in general that's a fine response in some cases. I've definitely said something like that to users of software that I've worked on. But I don't develop general purpose desktop software, and when the feature in question is something that's been part of the desktop computing experience for decades, and when the regression occurred for no perceptible reason other than "we don't care about people doing $FOO this way anymore", there are serious problems (IMHO.)

GNOME and input method integration

Posted Jun 29, 2012 20:51 UTC (Fri) by krakensden (guest, #72039) [Link]

Allowing people to inject arbitrary Javascript into the shell and then punting all user complaints citing that fact is not a valid response. If someone defended the usability of XMonad with "well, you can reprogram it" you would rightly bollock them right out. But somehow with Gnome it's different.

GNOME and input method integration

Posted Jun 27, 2012 8:38 UTC (Wed) by nelljerram (subscriber, #12005) [Link]

As well as for non-Latin writing systems, is using an input method framework also the right architecture for dealing with input on touchscreen devices without a physical keyboard? I'm thinking of on screen keyboards (which might also have dictionaries and be fuzzy/predictive), handwriting recognition, possibly gesture recognition, and so on.

In my playing with GTA02/GTA04 phones, I've always thought that that would be the right architecture (e.g. because it provides a way for on screen keyboards / whatever to pop up when an editable widget gets focus), but it has surprised me that - except for the use of matchbox-keyboard-im in Maemo - touchscreen input generally does _not_ appear to be architected in this way.

Is that because there's some better or simpler way of achieving touchscreen device input?

GNOME and input method integration

Posted Jun 27, 2012 10:44 UTC (Wed) by csslayer (guest, #85354) [Link]

Screen keyboard should belong to input method, which is currently not.

Maliit is a project target for this, and it's used on Nokia N9.
https://wiki.maliit.org/Main_Page

GNOME and input method integration

Posted Jun 27, 2012 8:55 UTC (Wed) by Felix.Braun (guest, #3032) [Link]

As this article points out correctly, care must be taken to properly differentiate between the merits of an IM-framework and the individual IM-plugins. As far as I know, the fcitx framework is often used with the sunpinyin plugin (at least that is what several chinese distros pre-install). This plugin is equally available for the IBus-framework and works to my satisfaction (admittedly as a non-native typer). Whenever I feel the need to type traditional chinese characters I switch to the ibus-pinyin plugin which does that quite well.

GNOME and input method integration

Posted Jun 27, 2012 10:40 UTC (Wed) by csslayer (guest, #85354) [Link]

Well, I'm the main developer of Fcitx.

First I'd like to anwser this question, "is orthogonal and there's no reason it can't be implemented [in] IBus."

There are things that IBus cannot do or hard to do because of architecture difference between Fcitx. As for sunpinyin, there are several additional plugin to add more feature in Fcitx, which ibus simply cannot do similar thing. Even it want to, it will duplicates code and lost consistency between engines.

As for integration,

Support of IBus in gnome now is even currently not well itself. From my point of view, it should not be landed in gnome 3.6 unless it gets improved. The integration currently still have lots of problem which will break user experience. (At least for now).

BTW, I'm also trying to provide input method integration on different desktop, thus I maintain kimpanel in KDE Plasma, and for GNOME-Shell, which can work with both ibus,fcitx,scim.

GNOME and input method integration

Posted Jun 27, 2012 11:15 UTC (Wed) by emk (subscriber, #1128) [Link]

How many [DELETED BY AUTHOR] times is Gnome going to break my workflow, anyway? I know they want an out-of-the-box experience that Just Works, and I applaud them for that. But in practice, that means that my desktop breaks horribly every year or two, because I'm always running beta-quality software that never has decent drivers or integration.

I rely on UIM and UIM-el to enter a bunch of Unicode characters, including the International Phonetic Alphabet (ɑɦɔ), Egyptian hieroglyphics (𓀀𓁐) and hieroglyphic transliterations (ꜣı͗ˤ). This works correctly in Gnome, in Chrome and in Emacs, plus Java applications and X11. Granted, it took a day of kicking to make everything work, which is definitely not acceptable. But it works.

Of course, none of these character sets are supported by ibus, and the relevant API documentation appears to be in Mandarin.

In order to get a nice user experience, we're now going to standardize on a new input framework. Of course everybody who actually uses Chinese or whatever thinks it's horribly broken. The Gnome folks respond, "Ah, but now that we've made an official choice, you can fix it and make it work. No, we're certainly not going to provide a fallback or work around other people's bugs—Gnome won't work until everything else is fixed; that's the only way to make progress."

And the Gnome team is right—after two or three years of horrible breakage for everybody affected, IBus will finally support the basics: online word lookup, customizable dictionaries, Traditional Chinese, obscure languages, and so on. At which point, they'll standardize on some other incomplete, broken technology—probably Wayland. And we'll go through this all over again.

Gnome, sadly, is all about a positive experience for hypothetical future users. But in the real world, all the non-technical Gnome users I know live in mortal terror of the next upgrade, because it's either going to break their laptop beyond repair, or force them to completely relearn the UI.

I don't know how to solve this. I want a nice UI, too, and that involves hard choices. But I kind of wish we could have a world-class input method first, and then integrate into Gnome, instead of planning on a couple years of nasty, user-visible breakage while third-parties scramble to fix everything.

GNOME and input method integration

Posted Jun 27, 2012 12:38 UTC (Wed) by marcH (subscriber, #57642) [Link]

> XXX, sadly, is all about a positive experience for hypothetical future users. But in the real world, all the non-technical XXXX users I know live in mortal terror of the next upgrade, because it's either going to break their laptop beyond repair, or force them to completely relearn YYYY.

Yet another summary of the Linux Desktop experience!

> I don't know how to solve this.

Commercial software is reasonably good at solving this problem (and less at others). It works like this: paying customers threaten to slay a few salesmen in case of any regression. Scared salesmen threaten to slay developers in case of any regression. Managers staff validation teams to keep everything under some level of control.

This obviously does not work when developers are left alone/in charge. When developers are in charge you get a grand revolutionary design every year or two. Which never gets completed before the next one.

Sorry this is getting a bit off-topic.

GNOME and input method integration

Posted Jun 27, 2012 14:00 UTC (Wed) by emk (subscriber, #1128) [Link]

OK, I just took a look at iBus, and here's what I've found. Note that I'm running Ubuntu 11.04, because that's what shipped on my laptop last November and I haven't upgraded yet. Why haven't I upgraded? The usual reasons:

  • I wasn't crazy enough to try the first version of Unity.
  • Now that Unity is semi-mature, I've been too busy with paying projects to risk massive breakage.
  • I have no idea how much of my laptop's hardware will stop working if I upgrade, even though I paid extra for a high-quality Ubuntu preload from an award-winning vendor.

So, how about iBus?

  1. The UI actually looks halfway decent. I could like this.
  2. The keystrokes used for controlling pre-edit are completely different from what I expect. A sequence like "c," automatically commits the "c" instead of waiting for "ç". It looks like I need to type "c1" to get "ç", which is just ridiculous, and would make phonetic input of hieroglyphs unbearable. There's presumably something I'm missing here.
  3. It looks like I get IPA, hieroglyphics, etc., working by generating big plain-text tables, which isn't too awful. But then again, these are easy scripts.
  4. It's completely broken for Java apps. I have no KDE or X11 apps lying around, so I can't test those. There's a ibus-kde plugin which hasn't had any commits in two years.
  5. It breaks Emacs hard, including the XCompose sequences that I use to type French—even if I override the relevant environment variables to tell it to leave Emacs alone. Presumably I can load ibus-mode to integrate with Emacs, but I doubt that's going to fix XCompose. Oh happy joy.

Pretty much par for the course, really. Shiny but broken, and Gnome will ship it long before it's actually in a semi-usable state. And I have no idea what will happen with non-Gnome apps.

And this will be an especially bad transition, because users can't actually complain without fighting through an enormous language barrier. Reading through the threads that our editor linked, I see Chinese users and developers pouring their heart out in badly-broken English. Then the Gnome developers like Owen Taylor just steamroller them with beautiful, eloquent native prose. I've been on the other side of that particular dynamic, and it's no fun at all.

GNOME and input method integration

Posted Jun 28, 2012 3:27 UTC (Thu) by csslayer (guest, #85354) [Link]

You need ibus-xkb for such case.

GNOME and input method integration

Posted Jun 27, 2012 13:34 UTC (Wed) by pizza (subscriber, #46) [Link]

> I don't know how to solve this. I want a nice UI, too, and that involves hard choices. But I kind of wish we could have a world-class input method first, and then integrate into Gnome, instead of planning on a couple years of nasty, user-visible breakage while third-parties scramble to fix everything.

Isn't the whole point of this article that there is no world-class input method system that just works for everyone? In this case the Gnome devs aren't breaking anything that isn't already broken.

In other words, all of their current options suck *now*, but they're going to go with the option that they feel will take the least amount of effort to improve into what they want/need. They made their choice based on sound technical arguments.

GNOME and input method integration

Posted Jun 27, 2012 13:58 UTC (Wed) by zlynx (guest, #2285) [Link]

But they probably will break things that aren't broken.

There are people who have managed, however they had to do it, to get input systems working in current versions of Gnome.

Everyone suspects because of past history with these things, that these new improved versions of Gnome will break all the currently working things. And, these new "improved" versions of Gnome will have no way to turn off the new things because the Gnome developers want to force everyone else to fix the problems rather than revert to what already works.

The distros don't help with this because they make it nearly impossible to run older versions of desktop software. For example, if you want to use a new version of Ubuntu, all of the packaged software will be linked to the newest possible version of Gnome. The same with Fedora.

For many people then, to keep using software that works and still get at least some modern features, like hardware support for this year's laptops, they will have to switch to using Gentoo Linux or more likely Mac OS X.

So in the quest to make things "better" Gnome developers often end up making it impossible to get work done and drive people to proprietary software.

GNOME and input method integration

Posted Jul 3, 2012 12:25 UTC (Tue) by cesarb (subscriber, #6266) [Link]

> like hardware support for this year's laptops, they will have to switch to using Gentoo Linux or more likely Mac OS X.

Mac OS X only has hardware support for a few laptop models.

GNOME and input method integration

Posted Jul 3, 2012 16:35 UTC (Tue) by zlynx (guest, #2285) [Link]

And on those laptop models OS X works perfectly.

I do know that when I upgraded to a Macbook Pro in 2008 it was a great relief and very refreshing to know that every time I closed the lid it went to sleep. Every time I opened the lid it woke up.

It didn't stay awake and burn away the battery because Gnome had decided to create their own power management daemon and do it very badly. (Oooh, there's a sysfs file that is missing/in the wrong place/has different contents or permissions! I had better crash and not restart!)

It didn't kernel panic on resume.

Playing sound worked in every application, every time, without needing to search for whatever app had locked the sound device.

Linux cannot claim these things. It is certainly a more interesting OS, but it does cause a strain.

GNOME and input method integration

Posted Jun 27, 2012 14:34 UTC (Wed) by emk (subscriber, #1128) [Link]

> Isn't the whole point of this article that there is no world-class input method system that just works for everyone? In this case the Gnome devs aren't breaking anything that isn't already broken.

I don't have good answers here. I want a nice, standard input method that Just Works, too. I'm happy if that's ultimately iBus, at least if I can convince it to handle phonetic input with manual commits, preferably without writing a lot of C code.

What we have now are a number of clunky-but-mature solutions that cover a lot of use-cases: Traditional Chinese (for Taiwan), phonetic customizations (for Chinese "dialects"), online dictionary lookup, enterprise users who run Java apps, Emacs users who need both XCompose *and* an input method, and so on. Chinese speakers probably get all this from their distro, whereas users with specialized needs probably spent a day reading tutorials and kicking stuff.

As far as I can tell, iBus is well-designed but relatively immature, and it's of limited utility outside of Gnome.

I can see some sensible ways forward: We could announce that iBus is the future, make it an overridable default in most distributions, and spend a year or two ironing out the bugs. Or we could just go ahead and make iBus mandatory in the next release, while it's still half-baked.

I really want a beautiful, well-designed UI, and I'm willing to sacrifice a lot of customization to get one. But I'm not willing to put up with massive regressions every 6 months.

GNOME and input method integration

Posted Jul 7, 2012 4:35 UTC (Sat) by rodgerd (guest, #58896) [Link]

You must have read a different article to the one I did; in the one I read, there is one option which has some shortcomings but is widely used by people who speak, read, and write CJK languages as the best option, and some other option considered vastly inferior for people who use the languages in question.

The GNOME developers, who don't for the most part have no first-hand expernience of the problem space, following their usual user-hostile model of development, ignored what their users told them and went with the less useful option on the grounds there will be jam tomorrow.

GNOME and input method integration

Posted Jul 7, 2012 15:13 UTC (Sat) by tuna (guest, #44480) [Link]

IBus for mainland standard Chinese and Japanese work pretty well. For Cantonese and other Chinese input method types it might not be as good as other input frameworks.

The upside if Gnome would add Ibus for 3.6 is that you would not have to add and configure a lot of extra software in order to input CJK.

In Fedora 17, there is one keyboard configuration tool and one Ibus configuration tool. It is way easier just to have one.

GNOME and input method integration

Posted Jun 27, 2012 15:17 UTC (Wed) by gioele (subscriber, #61675) [Link]

My question is: in the end, will we get a nice composition system where we can

  • press Compose and it name an empty dotted circle appear as next character (◌),
  • ` and put a grave accent over the dotted circle (◌̀),
  • at the same time get a list of commonly used characters with grave accents,
  • press E, or select È from the list, and finally get a È?

GNOME and input method integration

Posted Jun 28, 2012 3:32 UTC (Thu) by csslayer (guest, #85354) [Link]

Both modern input method framework support this, including iBus and Fcitx.

If you cannot get it work, you might miss some package.

The problem for "pure" X11 application is historical, when XIM (X Input Method) is used, Compose from XLib will never work, but for such case, input method framework will take the response for Compose, so still no problem.

GNOME and input method integration

Posted Jun 28, 2012 3:49 UTC (Thu) by emk (subscriber, #1128) [Link]

Actually, relatively few input methods handle XCompose in any sort of sane fashion, because not many users need to input both European languages and CJK languages. The released version of ibus is a hopeless mess, for example, though it's allegedly fixed in git with ibus-xkb. (Not that I can get any of it to build, thanks to random undeclared API dependencies.)

There are several major exceptions, including uim, which handles xcompose quite nicely.

GNOME and input method integration

Posted May 6, 2013 7:31 UTC (Mon) by gioele (subscriber, #61675) [Link]

> Both modern input method framework support this, including iBus and Fcitx.

It looks like they cannot do that, or nobody knows how to do configure them so they act like that: <http://askubuntu.com/questions/290617/configure-ibus-to-g...>.

GNOME and input method integration

Posted Jun 28, 2012 3:40 UTC (Thu) by csslayer (guest, #85354) [Link]

For people who concern about the XCompose, this is not a problem to talk about.

Those are for handling Compose with IMF. But package may be not in your system (If your distro is relatively old), but it won't be a problem for distro which will have gnome 3.6 or later.

https://github.com/ibus/ibus-xkb/
https://github.com/fcitx/fcitx/tree/master/src/im/keyboard/

GNOME and input method integration

Posted Jun 28, 2012 8:31 UTC (Thu) by jschrod (subscriber, #1646) [Link]

> But Jasper St. Pierre compared the decision to other components, like
> audio. GNOME does not attempt to support ESD and OSS in addition to
> PulseAudio due to limited resources, he said, and GNOME's choice of IM
> frameworks will not force distributions to follow suit.

This is so arrogant, misleading, and plain false, that I'm almost speakless. A Proponent of one of the two major DEs, just having lived through the GNOME 3 forced-but-too-early-introduction flamewar, think that they don't force distributions with their decisions?

And uses the Pulseaudio introduction debacle as a shining example, how to `do it right'? You know, the one that still comes up in any discussion of Lennart's work as a prime example of `how not to do it right'?

Have GNOME developers eventually lost any contact to the Real World(tm) where their users live in?

GNOME and input method integration

Posted Jul 5, 2012 7:42 UTC (Thu) by ovitters (guest, #27950) [Link]

If you want a discussion, try not to accuse people of being plain wrong, "losing contact with Real World", etc.

Suggest to read the email that Jasper wrote before starting to mouth off.

GNOME and input method integration

Posted Jul 2, 2012 13:55 UTC (Mon) by oak (guest, #2786) [Link]

> and a D-Bus API on GNOME's side that the framework can use to draw predictive-text pop-up windows

Why D-BUS API is a requirement for this?

Can there be multiple clients at the same time so that some kind of a publish/subscribe/broadcast API/service is needed?

GNOME and input method integration

Posted Jul 5, 2012 7:35 UTC (Thu) by ovitters (guest, #27950) [Link]

Dbus is just an IPC system. Not inventing something new avoids bugs.

Thanks LWN

Posted Jul 5, 2012 7:47 UTC (Thu) by ovitters (guest, #27950) [Link]

I followed and participated in the discussion (more or less trying to make it constructive), but I never really grasped what the concerns were. Pretty amazing job to make this clear understandable summary. The various email threads had so much noise, advocacy and misunderstandings that it was pretty much impossible to understand anyone.


Copyright © 2012, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds