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
it themselves.
Example: Setup 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
(fullframe enter-command
exit-command
&optional kill-buffer-after-exit-command
after-command-on-func)
enter-command
is the function you want to execute in a single window in the current frame.exit-command
is the name of a function which, when called, should restore the window configuration.kill-buffer-after-exit-command
can be set to true ifexit-command
does not kill the bufferenter-command
created, and you want that buffer gone.after-command-on-func
will be called aftercommand-on
was 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)))))
fullframe
is available on melpa and melpa-stable.
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
(depends-on "fullframe")
to it.