Hi Guix, a couple of months ago we discussed how to make IBus and GTK themes work across different GTK versions. See: http://lists.gnu.org/archive/html/guix-devel/2015-09/msg00617.html To summarise, GTK itself only supports path environment variables that are recognised by *all* versions of GTK, such as GTK_EXE_PREFIX or GTK_PATH. This is a problem as modules built for GTK3 cannot be loaded by GTK2 (and vice versa). This can result in segfaults or other nasty effects that are hard to debug. The attached patches modify our gtk packages such that they apply patches against the GTK sources to enable support for two new environment variables: * GUIX_GTK2_PATH, which is honoured exclusively by gtk+ 2.x, and * GUIX_GTK3_PATH, which is only honoured by gtk+ 3.x Directories specified in these variables are searched first when GTK looks for modules, such as input method modules provided by IBus. A user would just set both of these variables such: export GUIX_GTK2_PATH=$HOME/.guix-profile/lib/gtk-2.0 export GUIX_GTK3_PATH=$HOME/.guix-profile/lib/gtk-3.0 With these variables set GTK2 will find the IBus input methods for GTK2 (and not those for GTK3), and vice versa. I rebuilt both GTKs in my profile, and rebuilt ibus, ibus-libpinyin, and xfce4-terminal and after removing some cached state (a problem which we’ll have to fix eventually) I could input Chinese characters on the terminal, indicating that the environment variables are in fact recognised. An additional patch to ibus-libpinyin was required because it previously only worked by accident as I had a package installed in my profile that also propagated gtk+. The third attached patch adds gtk-propagated inputs to ibus-libpinyin for the sole purpose of adding their girepository directories to the GI_TYPELIB_PATH with which we’re wrapping some executables.