Anything is possible, just depends on if generic code exists to do it or not. ASUI creates a hidden window that grabs screen events so it can intercept the first tap that wakes up the screen when not locked. You could pull the blank window code (window_open_blank) out of ASUI's window.c file and have it send a dbus message to launch Xkbd and then quit. When Xkbd quits have it relaunch the blank window. You'd also need a way to tell the blank window to quit when you close roxterm.