Problem is the "minimize" button (>>) shifts the keyboard position by a relative to "minimize" it - needs to use an absolute. from xkbd.c if(iMode==1) { XResizeWindow(display, win, xkbd_get_width(kb), xkbd_get_height(kb)); XMoveWindow(display,win,xorgpos+worg-xkbd_get_width(kb), yorgpos+horg-xkbd_get_height(kb)); } else { xkbd_resize(kb, an_event.xconfigure.width*0.52*wkbscale, an_event.xconfigure.height*1.2*hkbscale ); worg=xkbd_get_width(kb); horg=xkbd_get_height(kb); XResizeWindow(display, win, xkbd_get_width(kb), xkbd_get_height(kb)); if(xorgpos==0 || yorgpos==0) { xorgpos=wscr-worg+1; yorgpos=hscr-horg+1; } XMoveWindow(display,win,xorgpos, yorgpos); xkbd_repaint(kb); } Not sure how that'd be fixed - maybe cme can look at it?