Eli Zaretskii writes: > Let's please discuss your ideas before you implement them, to make > sure you don't work on some ideas that we might object to. Sure. The code needs to run each time the cursor moves, (is there a function/code that do this?) and each time user changes window (because cursor color is not buffer-local). I think that using variable watchers would be better and keep this defcustom (it will only use variables): #+begin_example (defcustom cursor-indicators '((overwrite-mode . "red") (buffer-read-only "green" hollow) (current-input-method . "blue")) [...] #+end_example