How can I let the cursor colour depend on the current input method?
That's exactly what you get with library
Just turn on minor mode
change-cursor-mode, and leave option
curchg-change-cursor-on-input-method-flag with its default value of
The cursor color when an input method is used is controlled by option
curchg-input-method-cursor-color (default value
(If you do not also want the cursor color to change to indicate when a buffer is read-only or is in overwrite mode, then set option
See Emacs-Wiki page Change Cursor Dynamically.