Setup environment variables
In spite of Ubuntu, Debian, Fedora, OpenSUSE, other distribution don't have utils to help to setup required environment variable.
Fcitx can use XIM or Fcitx's own DBus protocol to communicate with input program. Since 4.1, Fcitx provides GTK2/3 and Qt4 input method module, in order to provides better experience in those application, it's highly recommended to use im module instead of XIM, in order to avoid unresolvable problem.
There are several places to setup environment variable. It depends on how you start up your Display Server.
export GTK_IM_MODULE=fcitx # or xim export QT_IM_MODULE=fcitx # or xim export XMODIFIERS=@im=fcitx
~/.xprofile is the best choice, since it will only affect X and will not pollute to other console environment. Some other people might like to use ~/.profile (Affect whenever you login), or /etc/profile (Global profile).
In that case, you are using ~/.xinitrc to startup, you also need those lines in your ~/.xinitrc. And depends
Maybe you are using vncserver, or something else, you need to figure out your start script, for example, vncserver use ~/.vnc/xstartup. Treat it similar with ~/.xinitrc.