Configure (Other)

From Fcitx
Jump to navigation Jump to search
Other languages:
English • ‎中文(简体)‎

Setup environment variables

In spite of Ubuntu, Debian, Fedora, OpenSUSE, other distribution don't have utils to help to setup required environment variable.

Warning: Notice! Setting environment variable is hard for normal user to understand what are they for, and may conflicts with normal settings with distribution built-in tool.

To explain it as easy as possible how this works. That is, if you are using a graphical GUI to type user name, or to login, you will need to add

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

to ~/.xprofile (X11), ~/.bash_profile (bash shell), or ~/.profile (under certain case it won't be read if .bash_profile presents). It will be a hidden file, since the file name starts with dot. You may use any editor, like gedit, kwrite, vim, emacs to edit it.

And make sure, if you open any gtk application, and right click on an input field, there is an item for fcitx in Input Method Menu, like


And make sure if you open any qt application, and right click on an input field, there is also an item named in input method menu, like


It doesn't have to be selected if you haven't logout and re-login to make your setting effects, but you need to make sure they are selected after you change the setting and re-login.


If you can complete the step above, you don't need to bother following description.

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.

Requires following lines.

export GTK_IM_MODULE=fcitx # or xim
export QT_IM_MODULE=fcitx # or xim
export XMODIFIERS=@im=fcitx

Use Slim (~/.xinitrc)/startx

In that case, you are using ~/.xinitrc to startup, you also need those lines in your ~/.xinitrc. And depends on you use DBus (im module and kimpanel need it), you might want to add

eval `dbus-launch --sh-syntax --exit-with-session`

At the head, to make sure DBus correctly initialized.

With newer slim, you may need this instead:

dbus-launch --sh-syntax --exit-with-session > /dev/null

Other environment

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.


For ~/.xinitrc, you can put fcitx to your ~/.xinitrc. Fcitx will run as daemon by default, so no need to use fcitx & to start it.

If you running a XDG compatible desktop, for example, Gnome, KDE, LXDE, Xfce, you can run

cp /usr/share/applications/fcitx.desktop ~/.config/autostart/fcitx.desktop

To add fcitx to your autostart. You can also use tool provided by your desktop to do the same thing.

See also

Input method related environment variables