Bug 598289 - Unicode character input not available by default
Unicode character input not available by default
Status: CLOSED NOTABUG
Product: Fedora
Classification: Fedora
Component: ibus (Show other bugs)
13
All Linux
low Severity low
: ---
: ---
Assigned To: Peng Huang
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2010-05-31 22:43 EDT by Joe Smith
Modified: 2010-07-21 00:43 EDT (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-07-08 02:29:11 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)

  None (edit)
Description Joe Smith 2010-05-31 22:43:24 EDT
Description of problem:
For the past few years using Gnome on Fedora, I have been able to enter arbitrary Unicode characters in any Gnome/Gtk application using Ctrl+Shift+U followed by the character's code point as hex digits.

I just upgraded to Fedora 13 which includes Gnome 2.30, and this handy feature seems to have disappeared!

I found some advice to use ibus instead, but so far I've not been able to get ibus to do what I need without having it interfere with my normal typing. I don't work with any complex-script languages, I just need a quick way to type common symbols found in English text (e.g. an em-dash).

Version-Release number of selected component (if applicable):
Fedora 13:
Gnome 2.30
gtk2-2.20.1-1.fc13.i686
ibus-1.3.3-1.fc13.i686
ibus-rawcode-1.3.0.20100421-1.fc13.i686

How reproducible:
Always

Steps to Reproduce:
1. Start any application that uses Gtk for keyboard input, Gnote, for example
2. Type Ctrl+Shift+U, type hex digits for character, end with space.
For example: Ctrl+Shift+U, 2, 0, 1, 4 space for em-dash, U+2014.
3.
  
Actual results:
digits are input as plain characters.

Expected results:
A single Unicode character should be input

Additional info:
If I enable the ibus input method and configure rawcode as the input method, I can enter a character by its code point using the sequence above: —, but the pop-up menu is distracting and if I forget to toggle the input method, it keeps triggering on any letter that is also a hex digit (a-f).

Requiring users who have no need to work with complex scripts to activate, configure and use something as complex as ibus just to get this basic feature does not seem entirely reasonable. I hope the default desktop configuration will continue to provide Unicode character entry without requiring any extra input method.
Comment 1 Joe Smith 2010-06-01 09:00:37 EDT
Changing component from "gtk+" to "ibus" on recommendation here:
http://permalink.gmane.org/gmane.comp.gnome.general/8656

I'm not sure what the right component is here; it's really more of a configuration/integration issue.
Comment 2 Jens Petersen 2010-06-03 01:33:30 EDT
What is your output from "imsettings-info"?
Comment 3 Joe Smith 2010-06-03 03:30:36 EDT
This is from my normal working account, which was carried over from F11, and where I've activated and disabled ibus several times. System > Preferences > Input Method currently says that no input method is enabled.

$ imsettings-info
Xinput file: /etc/X11/xinit/xinput.d/none.conf
GTK+ immodule: xim
Qt immodule: xim
XMODIFIERS: @im=none
XIM server: (null) 
Preferences:  
Auxiliary:  
Short Description: none
Long Description: 
Icon file: /usr/share/pixmaps/imsettings-unknown.png
Is system default: FALSE
Is user default: TRUE
Is XIM server: FALSE

For a 'clean' account created during the F13 install, imsettings-info doesn't show any settings--it just says that no input method is active.
Comment 4 Jens Petersen 2010-06-24 01:38:27 EDT
You could install ibus-rawcode and use it to input unicode.
Comment 5 Jens Petersen 2010-06-24 01:39:16 EDT
Does C-S-u work in the new fresh a/c?
Comment 6 Joe Smith 2010-06-24 11:48:09 EDT
Thanks for taking a look.

> Does C-S-u work in the new fresh a/c?

If "a/c" == "account", then no. The user account from the F13 install, in the original configuration, does not provide C-S-u for any applications. Same with a fresh new user added just now.

I just tried starting gedit with

GTK_IM_MODULE=gtk-im-context-simple gedit

That enables C-S-u for that single application, but when I created a ~/.gnomerc with the same setting, it was not picked up by any applications after logout/login.

> You could install ibus-rawcode and use it to input unicode.

Absolutely. That works, but it's not a good solution for people in my situation who just need the occasional Unicode character.
Comment 7 fujiwara 2010-06-28 02:33:30 EDT
How do you use input method?
If you wish to use Ctrl+Shift+u only, don't you have to enable input method?
ibus-rawcode is enabled when you type Ctrl+Space.

I guess your main input method engine is not ibus-rawcode.
Probably some of input method engines need to be disabled when users type Ctrl+Space again.
So if you mean to disable the engine automatically after you commit the preedit code point, it would not be a common feature between engines but could be a specific request for ibus-rawcode.

I guess you don't have to enable input method when you like to commit strings with code points. I.e. if you don't type Ctrl + Space, any ibus engines are not enabled and you could use gtk-im-context-simple instead.
It means I'd suggest not a bug.

If you mean to disable lookup table(pop-up menu), probably it also would be a specific request to ibus-rawcode.
Comment 8 Joe Smith 2010-06-28 09:55:13 EDT
> How do you use input method?

The default F13 configuration, en_US locale, does not provide any input method (see https://bugzilla.redhat.com/show_bug.cgi?id=598289#c3 for my config info).

That's perfect, I don't need an input method.

Unfortunately, the default configuration does not include gtk-im-context-simple and I don't know how to change the configuration to provide that setting for my entire session. From the output above, it looks like gtk is using "xim" where I want it to use gtk-im-context-simple.

This problem would be solved if the default configuration would configure gtk to use the gtk-im-context-simple module when no input method is configured, as it did in previous Fedora releases (I believe the change was introduced with F12).

This issue is not really about any input method, it's about what happens when no input method is configured. In that situation, I should have access to the previous behavior (Ctrl+Shift+U,hex digits,space), which is a publicly documented ISO-standard feature.
Comment 9 fujiwara 2010-06-28 21:33:53 EDT
(In reply to comment #8)
> Unfortunately, the default configuration does not include gtk-im-context-simple
> and I don't know how to change the configuration to provide that setting for my
> entire session. From the output above, it looks like gtk is using "xim" where I
> want it to use gtk-im-context-simple.

Ah, ok. currently GTK XIM module is used by default.
You could read the content of /etc/X11/xinit/xinput.d/none.conf :).

% rpm -qf /etc/X11/xinit/xinput.d/none.conf 
imsettings-0.107.4-5.fc13.x86_64

The none.conf checks the existence of im-xim.so so if you uninstall gtk2-immodule-xim, gtk-im-context-simple could be used.

or

You could create $HOME/.xinputrc newly to specify GTK_IM_MODULE=gtk-im-context-simple.

The main reason to check xim module is, many European people wish to use compose keys AFAIK.

Does it make sense?
Comment 10 fujiwara 2010-06-28 21:50:36 EDT
If you'd like to see the Ctrl+Shift+u feature with ibus, we can consider it however probably I think it will need to type Ctrl+Space to switch IM.
Comment 11 Joe Smith 2010-06-28 23:04:51 EDT
Fantastic! Thanks for your time to look at this.

> The none.conf checks the existence of im-xim.so so if you uninstall
> gtk2-immodule-xim, gtk-im-context-simple could be used.

This works--thanks for the tip!

This will set the default for every user account on the system, right?

Obviously, uninstalling xim means that no user on the system can use xim, but I suppose the ibus input methods will still be available, correct?

> You could create $HOME/.xinputrc newly to specify
> GTK_IM_MODULE=gtk-im-context-simple.

Sorry, this method does not seem to work: I could not see that environment variable from a gnome-terminal shell and gtk+ applications did not provide the C-S-u input method.

I can now get the behavior I need, but I was hoping to also get some consideration of what the policy will be for the future in these two areas:

1) What is the standard configuration going to be for Fedora users in locales that use the Latin alphabet, like en_US. Will an input method be part of the standard configuration or not? If no input method is installed, will gtk-im-context-simple be used or not?

2) How will Fedora users input characters by their code? Will there be one standard method for doing this?

#1 is important because applications need to know what input method(s) to support.

I recently filed a bug against OpenOffice because it sometimes records the digit keystrokes from the C-S-u character input. Now that I've upgraded to F13, this method is no longer part of the default Fedora configuration, and the OOo devs will not fix the bug. Some kind of policy is needed, so developers know what they should support. 

#2 is important because this an important task. Many users will need some way to enter characters by their code, and it's always better to have a single, standard method for doing a task.

This is an important task because many users will need access to some characters that are not part of their home language. For example, entering  punctuation (bullets or dashes), or technical symbols, or developers needing access to an exact code point. Sometimes, you really just want to enter a character by its code.

I've provided a lot of support for OpenOffice users working in many different locales, and the need to enter a specific character comes up more often than you might expect. Having one standard method for doing it is a big win.

Thanks again for your time.
Comment 12 Simos Xenitellis 2010-06-29 07:03:34 EDT
The Ctrl+Shift+u functionality in GNOME is an implementation of ISO 14755 for Unicode character input based on the hex code.

What this bug should be about is,
“Could we have this ISO 14755 functionality that is found in GNOME/GTK+ made available in any IBus input method?”

That is, is it possible to have ISO 14755 functionality in IBus that works under all IBus input methods? Does IBus allow this feature?

(I did not try ibus-rawcode; is it ISO 14755? Can it be used only as a separate input IBus method?)
Comment 13 fujiwara 2010-06-30 06:03:08 EDT
(In reply to comment #11)
> This will set the default for every user account on the system, right?

Yes, it effects every user.

> 
> Obviously, uninstalling xim means that no user on the system can use xim, but I
> suppose the ibus input methods will still be available, correct?

Yes, GTK_IM_MODULE=xim uses im-xim.so and GTK_IM_MODULE=ibus uses im-ibus.so so if you uninstall xim, ibus is still available.

> Sorry, this method does not seem to work: I could not see that environment
> variable from a gnome-terminal shell and gtk+ applications did not provide the
> C-S-u input method.

OK, I confirmed it works below.

% cat $HOME/.xinputrc
XIM=none
XIM_PROGRAM=
XIM_ARGS=
GTK_IM_MODULE=gtk-im-context-simple
QT_IM_MODULE=xim
IMSETTINGS_IGNORE_ME=yes
DISABLE_IMSETTINGS=yes

> 1) What is the standard configuration going to be for Fedora users in locales
> that use the Latin alphabet, like en_US. Will an input method be part of the
> standard configuration or not? If no input method is installed, will
> gtk-im-context-simple be used or not?

AFAIK, many European people like to use compose keys so probably xim is more useful than gtk-im-context-simple.
Yes, if you uninstall IM modules in /usr/lib*/gtk-2.0/../immodules, gtk-im-context-simple will be used.
If you don't set GTK_IM_MODULE, /etc/gtk-2.0/*/gtk.immodules decide the default module.
ibus-daemon runs on Asian locales by default.


> 2) How will Fedora users input characters by their code? Will there be one
> standard method for doing this?

ibus-daemon enables ibus IM engine(e.g. ibus-rawcode) when you type trigger key likes Ctrl+Space.
So the code point feature is implemented in an ibus engine, you need to type Ctrl+Space to enable the engine.


(In reply to comment #12)
> That is, is it possible to have ISO 14755 functionality in IBus that works
> under all IBus input methods? Does IBus allow this feature?

One idea might be to add features in ibus-rawcode.
 - Disable lookup window option
 - Auto disable engine option

It means you'll use Ctrl+Space instead of Ctrl+Shift+u by default while the trigger key can be customized with ibus-setup.

If we try to implement Ctrl+Shift+U in ibus-daemon, probably we developers need further discussions internally.
Comment 14 Simos Xenitellis 2010-06-30 10:17:11 EDT
(In reply to comment #13)
> (In reply to comment #11)
> > This will set the default for every user account on the system, right?
> 
> Yes, it effects every user.
> 
> > 
> > Obviously, uninstalling xim means that no user on the system can use xim, but I
> > suppose the ibus input methods will still be available, correct?
> 
> Yes, GTK_IM_MODULE=xim uses im-xim.so and GTK_IM_MODULE=ibus uses im-ibus.so so
> if you uninstall xim, ibus is still available.
> 
> > Sorry, this method does not seem to work: I could not see that environment
> > variable from a gnome-terminal shell and gtk+ applications did not provide the
> > C-S-u input method.
> 
> OK, I confirmed it works below.
> 
> % cat $HOME/.xinputrc
> XIM=none
> XIM_PROGRAM=
> XIM_ARGS=
> GTK_IM_MODULE=gtk-im-context-simple
> QT_IM_MODULE=xim
> IMSETTINGS_IGNORE_ME=yes
> DISABLE_IMSETTINGS=yes
> 
> > 1) What is the standard configuration going to be for Fedora users in locales
> > that use the Latin alphabet, like en_US. Will an input method be part of the
> > standard configuration or not? If no input method is installed, will
> > gtk-im-context-simple be used or not?
> 
> AFAIK, many European people like to use compose keys so probably xim is more
> useful than gtk-im-context-simple.

gtk-im-context-simple supports (the vast majority) of the compose sequence that are available with XIM.

> Yes, if you uninstall IM modules in /usr/lib*/gtk-2.0/../immodules,
> gtk-im-context-simple will be used.
> If you don't set GTK_IM_MODULE, /etc/gtk-2.0/*/gtk.immodules decide the default
> module.
> ibus-daemon runs on Asian locales by default.

If the variable GTK_IM_MODULE is not set, then GTK+ selects by default gtk-im-context-simple.

> 
> (In reply to comment #12)
> > That is, is it possible to have ISO 14755 functionality in IBus that works
> > under all IBus input methods? Does IBus allow this feature?
> 
> One idea might be to add features in ibus-rawcode.
>  - Disable lookup window option
>  - Auto disable engine option
> 
> It means you'll use Ctrl+Space instead of Ctrl+Shift+u by default while the
> trigger key can be customized with ibus-setup.
> 
> If we try to implement Ctrl+Shift+U in ibus-daemon, probably we developers need
> further discussions internally.    

It would be good if this could go forward. Then Fedora and other distributions could claim ISO 14755 support.
Comment 15 fujiwara 2010-06-30 21:21:22 EDT
(In reply to comment #14)
> gtk-im-context-simple supports (the vast majority) of the compose sequence that
> are available with XIM.

It would not be a reason to use gtk-im-context-simple instead of xim.

> If the variable GTK_IM_MODULE is not set, then GTK+ selects by default
> gtk-im-context-simple.

I don't understand what you mean in 'variable'.
As I explained, if GTK_IM_MODULE is not set, it uses gtk.immodules.
http://git.gnome.org/browse/gtk+/tree/gtk/gtkimmodule.c#n718

> It would be good if this could go forward. Then Fedora and other distributions
> could claim ISO 14755 support.

I thought this again.
If you set GTK_IM_MODULE=ibus but don't enable any ibus engines, ibus uses gtk-im-context-simple.
http://github.com/phuang/ibus/blob/master/client/gtk2/ibusimcontext.c#L365
Probably I think it would be enough for you.
Comment 16 fujiwara 2010-07-07 03:21:45 EDT
Probably I'll close this bug later as Not a Bug because if you set GTK_IM_MODULE=ibus but don't enable any IM engines, you could use gtk-im-context-simple and probably it could satisfy your request.
Comment 17 fujiwara 2010-07-21 00:43:45 EDT
Today we discussed xim and gtk-im-context-simple and probably we'll revert the default xim to gtk-im-context-simple with locales later.

Note You need to log in before you can comment on or make changes to this bug.