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.
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.
What is your output from "imsettings-info"?
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.
You could install ibus-rawcode and use it to input unicode.
Does C-S-u work in the new fresh a/c?
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.
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.
> 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.
(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?
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.
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.
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?)
(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.
(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.
(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.
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.
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.