You can probably do that with variables..
have the ibus execute commands like (directly or by exectbl):
Then just use the mode buton or any other button to execute:
"SETVAR;IBUSMODE;0" or "SETVAR;IBUSMODE;1" ... or use another BYVAR to set the mode alternately:
"BYVAR;IBUSMODE;MODE0<<MODE1" then define the MODE0-1 commands with the setvar commands above in exectbl.
This message is really a hyper-crash-course on variables, but if you don't understand it, read skin commands.txt on the variables support and then re-read the message you'll understand it better. Point is, I don't see why you could't do that -- specially, if you use exectbl, you can actually define different modes and whatnot according to the current screen.