Re: [dev] [st] XIM switching problems in combination with XKB dead keys

From: Hiltjo Posthuma <>
Date: Fri, 17 Jul 2020 21:08:44 +0200

On Fri, Jul 17, 2020 at 07:01:59PM +0200, Maarten van Gompel wrote:
> Hi,
> I identified a problem when switching input methods: XIM and XKB keymaps
> with dead keys can not be used properly in the same session as that
> breaks the dead keys (= composition keys for diacritics).
> My situation: I use regular XKB to type in languages using a latin or
> cyrillic script, but for Chinese I need of course need a proper input
> method (e.g. fcitx or ibus-libpinyin). I want to change between input
> methods on the fly, this currently does not work, if st is started with
> a XMODIFIERS="_AT_im=whatever" then normal dead keys don't work, regardless
> whether the underlying XIM server is running or not, if it is started
> with an empty XMODIFIERS="", then they do work. It means I need to
> restart the terminal if I want to properly switch between chinese and my
> usual dead keys. Switching in my case entails killing the XIM server if
> it's running and running setxkbmap to set the desired keymap.
> To reproduce:
> Case 1)
> $ export XMODIFIERS=""
> $ setxbkmap es
> $ st
> Type apostrophe a and output is , as expected, but of course no XIM now
> Case 2)
> $ export XMODIFIERS="_AT_im=fcitx"
> $ setxbkmap es #spanish XKB keymap to illustrate the issue
> $ st
> Type apostrophe a and output is 'a instead of
> I think st should behave the same way most applications do; if the xim
> server is not running, it should exhibit the same behaviour as if no XIM
> was configured at all. (for comparison; terminals like urxvt and
> alacritty behave in this way, GTK and QT apps too)
> The problem was introduced in the following commit:
> 787c9a55fea7131b4f1e5c7699b68b3517db8e49 Quentin Rameau x: fix XIM handling
> Prior to this commit though, the situation was much worse as st would
> simply crash if the XIM server stopped, so there's good progress but we
> aren't entirely there yet :)
> Regards,
> --
> Maarten van Gompel
> GnuPG key: 0x39FE11201A31555C
> XMPP: Matrix:
> Telegram: proycon IRC: proycon (freenode)
> Mastodon: (
> Twitter:


Thanks for the feedback. Is anyone willing to work on this and improve general
XIM support?

Alternatively maybe the current code should be removed and completely reworked?

Kind regards,
Received on Fri Jul 17 2020 - 21:08:44 CEST

This archive was generated by hypermail 2.3.0 : Fri Jul 17 2020 - 21:12:08 CEST