I would like to be able to control Info and Help buffers from other buffers, to lessen switch between windows. All commands are (should be) completely backwards compatible, so when called from within help- and Info-mode buffers, they should act as before the patch. Some rudimentary error checking is performed to ensure that user has a visible help- and Info-bufers. Mouse commands are not touched (should not be needed). This patch also introduces two defcustomed prefix keys for help- and Info-mode-map, so they can be assigned a prefix key. I have used somewhat cumbersome to use, C-h M-h for help-mode-map, and C-h M-i Info-mode-map as prefix keys. I personally use M-h and M-i as prefixes, but those are already assigned by default, and since I do understand the conseervative nature of the list, I prefer to default to something cumbersome and let user remap to anything they find suitable. These are just suggestions. It is also completely valid to not define any prefix key, and leave that code completely out, but a pre-defined prefix key does suggest a certain usage pattern. The defcustom init funciton to read user key is adapted from Helm, I am not sure how/if that works with copyrights (I have signed myself, and this re-uses a relatively small piece of code out of Helm). I have tried to not introduce any visible changes, just to re-implement stuff under the hood, minus the prefix key customization and extra jump command for help and Info windows. Original commands as found in help- and Info-modes are just wrapped into a `with-selected-window', while few commands from some other modes are also wrapped into aformentioned macro and introduced into help- and Info-mode as "new" commands. The patch looks big, but overall it is very simple and "mechanical" hack to just adapt commands to be help- and Info-mode specific. To note is that there can be several info buffer visible at a time. As now, user can switch to any of those, and invoke info-mode commands in the buffer. That is still possible, but when invoked from a non-info buffer, it is not clear what get-buffer will return. It also seems that it returns even other buffers that start with "info" prefix, for example "info-remote.el" would also be returned by (get-buffer "*info*"). I haven't addressed that since I don't think it is very common case, but it shouldn't be a big deal to fix; adding additional check for major mode as done in some other places in info.el should suffice. Perhaps it might be natural to expect this to work even with multiple frames, but it does not. I am not sure what workflow would be, should user be switched to the frame containing the help/info buffer, or should buffer be openend in a new frame? I have no idea or opinion, so I have left that out, so currently same workflow as now applys (user can't remotely control buffer on other frame). The user-error message in Info and probably in Help could be expressed in better English. I am not an English native speaker, so please feel free to improve it. I am not sure how much, if some, should be mentioned in the manual. I have tested the code myself, but it is possible that I have overlooked something, or not tested it enough, in that case please let me know. Hope this would be acceaptable for Emacs, since I find it quite useful to "remotely" control help and info buffers, and it is relatively expensive to do this programmatically via function advising (I have tested). Thanks in advance and best regards.