It seems as of Emacs 25, there are no hooks in posn-set-point to do something custom before or after point has been set/moved. How about modifying posn-set-point like so: (defun posn-set-point (position) "Move point to POSITION. Select the corresponding window as well." (if (not (windowp (posn-window position))) (error "Position not in text area of window")) (run-hooks 'before-set-point-hook) ; <-- ADD (select-window (posn-window position)) (if (numberp (posn-point position)) (goto-char (posn-point position))) (run-hooks 'after-set-point-hook)) ; <-- AD I can imagine both global and buffer-local uses of such hooks, such as logging where point has been and highlighting elements selected within a buffer. I have done some testing with it and I like it. If this is to be added, I would prefer that a core committer add it since it is in core code. Bob