Is it necessary to introduce the NtUserNotifyIMEStatus syscall? Also, the parameter is winex11::xim specific, so it doesn't look generic.
Although undocumented it seems appropriate for this use. I don't know what the status parameter is, but I don't think it's specific to XIM in any way and it's simply the open status. We might want to pass more information in the future, adding composition and sentence mode maybe, but for now it isn't useful.
Like @jacek said on some other previous MR, it's easier and probably better to use win32u interface instead of a custom unixlib interface.
I think it's time to move the imm.c::load_graphics_driver() ?
I don't understand what you mean, after this MR there's still some exports that need to be moved to imm32. I will get rid of it when they are all moved.