Generalized automatic execution in a single frame
This is a library that package developers can use to provide user
friendly single window per frame execution of buffer exposing
commands, as well as to use in personal emacs configurations to attain
the same goal for packages that don’t use
fullframe or the likes of
magit-status to open in one window in the current
frame when called:
(require 'fullframe) (fullframe magit-status magit-mode-quit-window)
Fullframe exposes one function,
(fullframe enter-command exit-command &optional kill-buffer-after-exit-command after-command-on-func)
enter-commandis the function you want to execute in a single window in the current frame.
exit-commandis the symbol of a function – or a list of function symbols – which, when called, should restore the window configuration.
kill-buffer-after-exit-commandcan be set to true if
exit-commanddoes not kill the buffer
enter-commandcreated, and you want that buffer gone.
after-command-on-funcwill be called after
command-onwas called and the buffer generated by it is visible in the only window in the current frame
This call will show the current buffer and the
rgrep result only; if the
rgrep result buffer is closed (with
q), the previous window configuration is restored.
(fullframe rgrep quit-window nil (lambda () (let ((wconf (fullframe/current-buffer-window-config)) (new-window (split-window-below))) (set-window-buffer new-window "*grep*") (fullframe/erase-current-buffer-window-config) (with-current-buffer "*grep*" (fullframe/set-current-buffer-window-config wconf)))))
Add melpa to your package sources, then execute the following in emacs:
M-x package-install<CR> fullframe<CR>
If you use
cask for your package-management, make sure you have
(source 'melpa) in your
Cask file and add
The simple usage does not need configuration.
If you want to fullframe functions, but your workflow makes you use
multiple commands to exit the buffer in question, you don’t have to
use multiple calls to
You have two possibilities:
- Pass a list of all possible exit-commands to
- Revise the customization list
- mix both