Hi, On Sat, May 23, 2015 at 03:43:08PM +0800, Ivan Tham wrote: > >>I typed ``Ctrl + Space`` in st but it seems like it doesn't work. Fcitx > >>is a Chinese IME for XIM. > > > >As far as I know no IME works with st (please correct me if I am
St has code to deal with input methods. I cannot test it because I am not user of such methods, but the code that deals with XIM is: xinit(): /* input methods */ if((xw.xim = XOpenIM(xw.dpy, NULL, NULL, NULL)) == NULL) { XSetLocaleModifiers("@im=local"); if((xw.xim = XOpenIM(xw.dpy, NULL, NULL, NULL)) == NULL) { XSetLocaleModifiers("@im="); if((xw.xim = XOpenIM(xw.dpy, NULL, NULL, NULL)) == NULL) { die("XOpenIM failed. Could not open input" " device.\n"); } } } xw.xic = XCreateIC(xw.xim, XNInputStyle, XIMPreeditNothing | XIMStatusNothing, XNClientWindow, xw.win, XNFocusWindow, xw.win, NULL); if(xw.xic == NULL) die("XCreateIC failed. Could not obtain input method.\n"); ---------------------------------------------------------------------------- void focus(XEvent *ev) { XFocusChangeEvent *e = &ev->xfocus; if(e->mode == NotifyGrab) return; if(ev->type == FocusIn) { XSetICFocus(xw.xic); xw.state |= WIN_FOCUSED; xseturgency(0); if(IS_SET(MODE_FOCUS)) ttywrite("\033[I", 3); } else { XUnsetICFocus(xw.xic); xw.state &= ~WIN_FOCUSED; if(IS_SET(MODE_FOCUS)) ttywrite("\033[O", 3); } } ----------------------------------------------------------------------------- kpress(): len = XmbLookupString(xw.xic, e, buf, sizeof buf, &ksym, &status); /* 1. shortcuts */ for(bp = shortcuts; bp < shortcuts + LEN(shortcuts); bp++) { if(ksym == bp->keysym && match(bp->mod, e->state)) { bp->func(&(bp->arg)); return; } } ----------------------------------------------------------------------------- > >having trouble figuring out where to start (Is it a X text protocol? > >It probably is with XIM but not with ibus. Would I have to use an ibus > >API to get st to work with ibus? Etc...). So I think it should work. With this information you can debug the issue. Regards,