Difference between revisions of "FAQ"

From Fcitx
Jump to navigation Jump to search
(Marked this version for translation)
Line 8: Line 8:
 
[[Special:MyLanguage/Hall of Shame for Linux IME Support|Hall of Shame for Linux IME Support]]
 
[[Special:MyLanguage/Hall of Shame for Linux IME Support|Hall of Shame for Linux IME Support]]
  
== FAQ == <!--T:3-->
+
== When use Ctrl + Space, Fcitx cannot be triggered on == <!--T:3-->
=== When use Ctrl + Space, Fcitx cannot be triggered on ===
+
 
1. Check the application you want to type.
+
Check the application you want to type.
 
* Is it only one app have problem?
 
* Is it only one app have problem?
 
<!--T:4-->
 
 
** The most possible reason for this is Ctrl+Space occupied by some hotkey, please change to another trigger key and try again.
 
** The most possible reason for this is Ctrl+Space occupied by some hotkey, please change to another trigger key and try again.
 
<!--T:5-->
 
 
* Is it all Gtk App have problem?
 
* Is it all Gtk App have problem?
 
<!--T:6-->
 
 
** Please open a traditional Gtk App (traditional means, it cannot be Firefox, Libreoffice, which only use Gtk as a UI style). Gedit is a good choice. Right click at the input box, there will be a menu named "Input Method", please make sure there is "Fcitx" in it and being choosed.
 
** Please open a traditional Gtk App (traditional means, it cannot be Firefox, Libreoffice, which only use Gtk as a UI style). Gedit is a good choice. Right click at the input box, there will be a menu named "Input Method", please make sure there is "Fcitx" in it and being choosed.
 
<!--T:7-->
 
 
** If there is "Fcitx", but it still not works. Please try to restart Fcitx, if it will works at this time, please check your DBus settings, or make Fcitx start later. You can read [[Special:MyLanguage/Configure (Other)|Configure (Other)]] if you're using a custom startup script.
 
** If there is "Fcitx", but it still not works. Please try to restart Fcitx, if it will works at this time, please check your DBus settings, or make Fcitx start later. You can read [[Special:MyLanguage/Configure (Other)|Configure (Other)]] if you're using a custom startup script.
 
+
** If there is Fcitx but not being choosed by default, and please select it and you can immediately try again in this app. If not works, please read the entry above. For permanent fix (To use Fcitx by default), please read Configure part in [[Special:MyLanguage/Install And Configure|Install And Configure]].
<!--T:8-->
 
** If there is Fcitx but not being choosed by default, and please select it and you can immediately try again in this app. If not works, please read the entry above. For permanent fix (To use Fcitx by default), please read Configure part in [[Special:MyLanguage/Beginner's Guide|Beginner's Guide]].
 
 
 
<!--T:9-->
 
 
** If there is no Fcitx, you should check your install first. Usually, the package name contains fcitx and gtk. If you [[Special:MyLanguage/Compile from source|compile fcitx from source]], please make sure you have enable GTK{2,3}_IM_MODULE option. If you're sure about this, please read [[Special:MyLanguage/Input method related environment variables|Input method related environment variables]] for how to update some cached file for gtk.
 
** If there is no Fcitx, you should check your install first. Usually, the package name contains fcitx and gtk. If you [[Special:MyLanguage/Compile from source|compile fcitx from source]], please make sure you have enable GTK{2,3}_IM_MODULE option. If you're sure about this, please read [[Special:MyLanguage/Input method related environment variables|Input method related environment variables]] for how to update some cached file for gtk.
 
<!--T:10-->
 
 
* Is it all Qt App have problem?
 
* Is it all Qt App have problem?
 
** Run qtconfig (might have different name on your distribution), and go to the third tab, make sure fcitx is in the "Default Input Method" combo-box. If not, please check your install.
 
** Run qtconfig (might have different name on your distribution), and go to the third tab, make sure fcitx is in the "Default Input Method" combo-box. If not, please check your install.
 +
*Above solution can be also applied if you want use XIM, but still we highly recommend you to use im module. See Also [[Special:MyLanguage/Input method related environment variables|Input method related environment variables]].
  
<!--T:11-->
 
* Above solution can be also applied if you want use XIM, but still we highly recommend you to use im module.
 
 
<!--T:12-->
 
* See Also [[Special:MyLanguage/Input method related environment variables|Input method related environment variables]]
 
 
<!--T:22-->
 
 
If you are using Ubuntu and upgrade to 12.04 recently, some user notice that gtk.immodules related files doesn't generate correctly during upgrade. Try uninstall {{package ubuntu|fcitx-frontend-gtk2}}, {{package ubuntu|fcitx-frontend-gtk3}} and re-install them to trigger the file generate. Then recheck the input method menu to see whether it have "Fcitx" in the menu or not.
 
If you are using Ubuntu and upgrade to 12.04 recently, some user notice that gtk.immodules related files doesn't generate correctly during upgrade. Try uninstall {{package ubuntu|fcitx-frontend-gtk2}}, {{package ubuntu|fcitx-frontend-gtk3}} and re-install them to trigger the file generate. Then recheck the input method menu to see whether it have "Fcitx" in the menu or not.
  
<!--T:23-->
 
 
There are also some very rare case, that you're using a embedded linux or mini-linux distro, in which you must use XIM, the X server might missing some locale file. The file is usually needed to be under /usr/share/X11/locale/.
 
There are also some very rare case, that you're using a embedded linux or mini-linux distro, in which you must use XIM, the X server might missing some locale file. The file is usually needed to be under /usr/share/X11/locale/.
  
<!--T:24-->
+
And When you must use XIM, please make sure, your locale '''must NOT''' be C or POSIX and need to be a valid locale (no matter which language), and need to be generated if you are using glibc (locale-gen). When you are using im module, there is no such limitation.
And When you must use XIM, please make sure, your locale *must NOT* be C or POSIX and need to be a valid locale (no matter which language), and need to be generated if you are using glibc (locale-gen). When you are using im module, there is no such limitation.
+
 
 +
== Problem in Firefox and Google Docs == <!--T:4-->
  
=== Problem in Firefox and Google Docs === <!--T:13-->
 
 
You might want to toggle preedit off temporarily, which is Ctrl+Alt+P.
 
You might want to toggle preedit off temporarily, which is Ctrl+Alt+P.
  
=== Cannot use Fcitx in flash === <!--T:14-->
+
== Cannot use Fcitx in flash == <!--T:5-->
 +
 
 
Please read [[Special:MyLanguage/Hall of Shame for Linux IME Support|Hall of Shame for Linux IME Support]], and use im module.
 
Please read [[Special:MyLanguage/Hall of Shame for Linux IME Support|Hall of Shame for Linux IME Support]], and use im module.
  
=== Cannot type English after updating to fcitx newer than 4.2.4 === <!--T:25-->
+
== Cannot type English after updating to fcitx newer than 4.2.4 == <!--T:6-->
 +
 
 
Make sure you have add "[[Special:myLanguage/Keyboard|Keyboard]]" to the input method list. You can use [[Special:myLanguage/Integrate with Desktop#Configuration tool|Configuration tool]].
 
Make sure you have add "[[Special:myLanguage/Keyboard|Keyboard]]" to the input method list. You can use [[Special:myLanguage/Integrate with Desktop#Configuration tool|Configuration tool]].
  
<!--T:26-->
 
 
And you may want to move "Keyboard" to the first one.
 
And you may want to move "Keyboard" to the first one.
  
=== Unexpected keyboard layout change === <!--T:27-->
+
== Unexpected keyboard layout change == <!--T:7-->
 +
 
 
Use [[Special:myLanguage/Integrate with Desktop#Configuration tool|Configuration tool]], to bind specific keyboard layout to the specific input method.
 
Use [[Special:myLanguage/Integrate with Desktop#Configuration tool|Configuration tool]], to bind specific keyboard layout to the specific input method.
  
=== xmodmap settings being overwritten === <!--T:28-->
+
== xmodmap settings being overwritten == <!--T:8-->
 +
 
 
Fcitx now control keyboard layout and when switch layout, xmodmap setting will be overwritten. So fcitx-xkb provides an option to specify the xmodmap script and let fcitx loads it for you whenever keyboard layout changes. Or disable fcitx-xkb addon is also a solution for you, or if your requirement is simply, for example, switching Caps Lock and Esc, which is provided by xkb option, you can just set it with your desktop keyboard configuration tool (Gnome and KDE all support such configuration).
 
Fcitx now control keyboard layout and when switch layout, xmodmap setting will be overwritten. So fcitx-xkb provides an option to specify the xmodmap script and let fcitx loads it for you whenever keyboard layout changes. Or disable fcitx-xkb addon is also a solution for you, or if your requirement is simply, for example, switching Caps Lock and Esc, which is provided by xkb option, you can just set it with your desktop keyboard configuration tool (Gnome and KDE all support such configuration).
  
<!--T:29-->
 
 
For more detailed explanation, xmodmap is a very low level tool, that doesn't aware keyboard layout. For X11, keyboard layout is built on a set of profile, when such profile is loaded, anything you changed with xmodmap will be overwritten, this isn't specific to fcitx, but all tool that support keyboard layout configuration. Xkb option is a set of profile that can do some pre-defined change over keyboard layout, including many thing that people usually do with xmodmap, for example, defining where dead key is, switching Caps Lock and Esc, and so on. Unless you have special requirements, xkb layout and xkb option is recommended.
 
For more detailed explanation, xmodmap is a very low level tool, that doesn't aware keyboard layout. For X11, keyboard layout is built on a set of profile, when such profile is loaded, anything you changed with xmodmap will be overwritten, this isn't specific to fcitx, but all tool that support keyboard layout configuration. Xkb option is a set of profile that can do some pre-defined change over keyboard layout, including many thing that people usually do with xmodmap, for example, defining where dead key is, switching Caps Lock and Esc, and so on. Unless you have special requirements, xkb layout and xkb option is recommended.
  
=== Configure user interface, font, vertical list === <!--T:21-->
+
== Configure user interface, font, vertical list == <!--T:9-->
 +
 
 
Use [[Special:myLanguage/Integrate with Desktop#Configuration tool|Configuration tool]], Addon Configuration -> Classic UI.
 
Use [[Special:myLanguage/Integrate with Desktop#Configuration tool|Configuration tool]], Addon Configuration -> Classic UI.
  
<!--T:30-->
 
 
If you are using [[Special:myLanguage/Configtool]] newer than 0.4.5 or [[Special:myLanguage/Kcm]] newer 0.4.1, you can directly configure those from the first level tab.
 
If you are using [[Special:myLanguage/Configtool]] newer than 0.4.5 or [[Special:myLanguage/Kcm]] newer 0.4.1, you can directly configure those from the first level tab.
  
=== Possible issue for GNOME 3.6 === <!--T:31-->
+
== Possible issue for GNOME 3.6 == <!--T:10-->
 +
 
 
[[Note for GNOME Later than 3.6]]
 
[[Note for GNOME Later than 3.6]]
  
=== [[Special:MyLanguage/ClassicUI|Classic UI]] is not transparent === <!--T:15-->
+
== [[Special:MyLanguage/ClassicUI|Classic UI]] is not transparent == <!--T:11-->
 +
 
 
* This problem might workaround forever since 4.2.6 with a different approach for detect composite manager.
 
* This problem might workaround forever since 4.2.6 with a different approach for detect composite manager.
 
<!--T:32-->
 
 
* Restart Fcitx first, if it's ok then, it might be a bug in your Window manager. Gnome-Shell, xcompmgr is known to have this bug. You can try to set the delay start to walkaround this problem.
 
* Restart Fcitx first, if it's ok then, it might be a bug in your Window manager. Gnome-Shell, xcompmgr is known to have this bug. You can try to set the delay start to walkaround this problem.
 +
* If restart Fcitx doesn't solve this problem, you should check whether your window manager supports composite or it's enabled or not.
 +
=== Kwin ===
  
* If restart Fcitx doesn't solve this problem, you should check whether your window manager supports composite or it's enabled or not.
 
==== Kwin ==== <!--T:16-->
 
 
Enable desktop effects.
 
Enable desktop effects.
==== Metacity before GNOME3 ====
+
=== Metacity before GNOME3 ===
 +
 
 
gconftool-2 -s --type bool /apps/metacity/general/compositing_manager true
 
gconftool-2 -s --type bool /apps/metacity/general/compositing_manager true
==== Xfce ====
+
=== Xfce ===
 +
 
 
Xfwm support composite, but need to be enabled by hand.
 
Xfwm support composite, but need to be enabled by hand.
==== Compiz ====
+
=== Compiz ===
 +
 
 
0.9 series compiz can disable composite. You can use ccsm to configure it.
 
0.9 series compiz can disable composite. You can use ccsm to configure it.
==== Other window manager ====
+
=== Other window manager ===
 +
 
 
You can use xcompmgr, cairo-compmgr as composite manager for them.
 
You can use xcompmgr, cairo-compmgr as composite manager for them.
  
=== Minecraft === <!--T:33-->
+
== Minecraft == <!--T:12-->
  
 
<!--T:34-->
 
<!--T:34-->
 
Minecraft under linux doesn't support input method, what make it worse is, XIM will conflict with its key event processing, one way to work around is, set a wrong environment variable on purpose for minecraft, then start up it. You can use following script to do that
 
Minecraft under linux doesn't support input method, what make it worse is, XIM will conflict with its key event processing, one way to work around is, set a wrong environment variable on purpose for minecraft, then start up it. You can use following script to do that
  
<!--T:35-->
+
== Root application under normal user X ==
#!/bin/sh
+
Root application under X normal user session is always broken (in general, not specific to fcitx), due to the fact that dbus is a user session only process. The only way to type in root application with normal fcitx is to use XIM, set GTK_IM_MODULE=xim and QT_IM_MODULE=xim before you start your application.
# set a wrong one
+
 
export XMODIFIERS="@im=null"
+
<!--T:35-->
# start minecraft, this might change depends on you're mod, but simply its what you ARE using to start minecraft.
+
<pre>#!/bin/sh
java -Xmx1024M -Xms512M -cp minecraft.jar net.minecraft.LauncherFrame
+
# set a wrong one
 +
export XMODIFIERS="@im=null"
 +
# start minecraft, this might change depends on you're mod, but simply its what you ARE using to start minecraft.
 +
java -Xmx1024M -Xms512M -cp minecraft.jar net.minecraft.LauncherFrame</pre>
  
<!--T:36-->
 
 
This way can be also used, if you don't want fcitx to work on some application which is using XIM.
 
This way can be also used, if you don't want fcitx to work on some application which is using XIM.
  
== Cursor Following problem == <!--T:17-->
+
== Cursor Following problem == <!--T:13-->
 
There is a common misunderstanding that it's input method's fault that input window could not follow the cursor, which is simply wrong. This is how cursor following works: Application send the position to Input method, then input method move the input window. So if application do not send the position, the position would be wrong. This behavior is controlled by application, but not input method. So if you meet any problem, please ask application to fix it, don't ask input method to do anything. Actually, input method could do nothing with this.
 
There is a common misunderstanding that it's input method's fault that input window could not follow the cursor, which is simply wrong. This is how cursor following works: Application send the position to Input method, then input method move the input window. So if application do not send the position, the position would be wrong. This behavior is controlled by application, but not input method. So if you meet any problem, please ask application to fix it, don't ask input method to do anything. Actually, input method could do nothing with this.
  
<!--T:18-->
 
 
Although there is some walkaround for specific problem, bug is still in application, not in input method.
 
Although there is some walkaround for specific problem, bug is still in application, not in input method.
  
<!--T:19-->
 
 
* Opera, enable on the spot for [[Special:MyLanguage/XIM|XIM]].
 
* Opera, enable on the spot for [[Special:MyLanguage/XIM|XIM]].
 
* Firefox, enable preedit.
 
* Firefox, enable preedit.
  
<!--T:20-->
+
<!--T:14-->
 
[[Category:How-to]]
 
[[Category:How-to]]
  
 
</translate>
 
</translate>

Revision as of 16:59, 26 January 2013

Other languages:
English • ‎中文(简体)‎

When you want to complain about input method cannot work correctly, please read this first.

Hall of Shame for Linux IME Support

When use Ctrl + Space, Fcitx cannot be triggered on

Check the application you want to type.

  • Is it only one app have problem?
    • The most possible reason for this is Ctrl+Space occupied by some hotkey, please change to another trigger key and try again.
  • Is it all Gtk App have problem?
    • Please open a traditional Gtk App (traditional means, it cannot be Firefox, Libreoffice, which only use Gtk as a UI style). Gedit is a good choice. Right click at the input box, there will be a menu named "Input Method", please make sure there is "Fcitx" in it and being choosed.
    • If there is "Fcitx", but it still not works. Please try to restart Fcitx, if it will works at this time, please check your DBus settings, or make Fcitx start later. You can read Configure (Other) if you're using a custom startup script.
    • If there is Fcitx but not being choosed by default, and please select it and you can immediately try again in this app. If not works, please read the entry above. For permanent fix (To use Fcitx by default), please read Configure part in Install And Configure.
    • If there is no Fcitx, you should check your install first. Usually, the package name contains fcitx and gtk. If you compile fcitx from source, please make sure you have enable GTK{2,3}_IM_MODULE option. If you're sure about this, please read Input method related environment variables for how to update some cached file for gtk.
  • Is it all Qt App have problem?
    • Run qtconfig (might have different name on your distribution), and go to the third tab, make sure fcitx is in the "Default Input Method" combo-box. If not, please check your install.
  • Above solution can be also applied if you want use XIM, but still we highly recommend you to use im module. See Also Input method related environment variables.

If you are using Ubuntu and upgrade to 12.04 recently, some user notice that gtk.immodules related files doesn't generate correctly during upgrade. Try uninstall fcitx-frontend-gtk2, fcitx-frontend-gtk3 and re-install them to trigger the file generate. Then recheck the input method menu to see whether it have "Fcitx" in the menu or not.

There are also some very rare case, that you're using a embedded linux or mini-linux distro, in which you must use XIM, the X server might missing some locale file. The file is usually needed to be under /usr/share/X11/locale/.

And When you must use XIM, please make sure, your locale must NOT be C or POSIX and need to be a valid locale (no matter which language), and need to be generated if you are using glibc (locale-gen). When you are using im module, there is no such limitation.

Problem in Firefox and Google Docs

You might want to toggle preedit off temporarily, which is Ctrl+Alt+P.

Cannot use Fcitx in flash

Please read Hall of Shame for Linux IME Support, and use im module.

Cannot type English after updating to fcitx newer than 4.2.4

Make sure you have add "Keyboard" to the input method list. You can use Configuration tool.

And you may want to move "Keyboard" to the first one.

Unexpected keyboard layout change

Use Configuration tool, to bind specific keyboard layout to the specific input method.

xmodmap settings being overwritten

Fcitx now control keyboard layout and when switch layout, xmodmap setting will be overwritten. So fcitx-xkb provides an option to specify the xmodmap script and let fcitx loads it for you whenever keyboard layout changes. Or disable fcitx-xkb addon is also a solution for you, or if your requirement is simply, for example, switching Caps Lock and Esc, which is provided by xkb option, you can just set it with your desktop keyboard configuration tool (Gnome and KDE all support such configuration).

For more detailed explanation, xmodmap is a very low level tool, that doesn't aware keyboard layout. For X11, keyboard layout is built on a set of profile, when such profile is loaded, anything you changed with xmodmap will be overwritten, this isn't specific to fcitx, but all tool that support keyboard layout configuration. Xkb option is a set of profile that can do some pre-defined change over keyboard layout, including many thing that people usually do with xmodmap, for example, defining where dead key is, switching Caps Lock and Esc, and so on. Unless you have special requirements, xkb layout and xkb option is recommended.

Configure user interface, font, vertical list

Use Configuration tool, Addon Configuration -> Classic UI.

If you are using Special:myLanguage/Configtool newer than 0.4.5 or Special:myLanguage/Kcm newer 0.4.1, you can directly configure those from the first level tab.

Possible issue for GNOME 3.6

Note for GNOME Later than 3.6

Classic UI is not transparent

  • This problem might workaround forever since 4.2.6 with a different approach for detect composite manager.
  • Restart Fcitx first, if it's ok then, it might be a bug in your Window manager. Gnome-Shell, xcompmgr is known to have this bug. You can try to set the delay start to walkaround this problem.
  • If restart Fcitx doesn't solve this problem, you should check whether your window manager supports composite or it's enabled or not.

Kwin

Enable desktop effects.

Metacity before GNOME3

gconftool-2 -s --type bool /apps/metacity/general/compositing_manager true

Xfce

Xfwm support composite, but need to be enabled by hand.

Compiz

0.9 series compiz can disable composite. You can use ccsm to configure it.

Other window manager

You can use xcompmgr, cairo-compmgr as composite manager for them.

Minecraft

Minecraft under linux doesn't support input method, what make it worse is, XIM will conflict with its key event processing, one way to work around is, set a wrong environment variable on purpose for minecraft, then start up it. You can use following script to do that

Root application under normal user X

Root application under X normal user session is always broken (in general, not specific to fcitx), due to the fact that dbus is a user session only process. The only way to type in root application with normal fcitx is to use XIM, set GTK_IM_MODULE=xim and QT_IM_MODULE=xim before you start your application.

#!/bin/sh
# set a wrong one
export XMODIFIERS="@im=null"
# start minecraft, this might change depends on you're mod, but simply its what you ARE using to start minecraft.
java -Xmx1024M -Xms512M -cp minecraft.jar net.minecraft.LauncherFrame

This way can be also used, if you don't want fcitx to work on some application which is using XIM.

Cursor Following problem

There is a common misunderstanding that it's input method's fault that input window could not follow the cursor, which is simply wrong. This is how cursor following works: Application send the position to Input method, then input method move the input window. So if application do not send the position, the position would be wrong. This behavior is controlled by application, but not input method. So if you meet any problem, please ask application to fix it, don't ask input method to do anything. Actually, input method could do nothing with this.

Although there is some walkaround for specific problem, bug is still in application, not in input method.

  • Opera, enable on the spot for XIM.
  • Firefox, enable preedit.