Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tomterl/fullframe
Advice commands to execute fullscreen, restoring the window setup when exiting.
https://github.com/tomterl/fullframe
emacs emacs-lisp
Last synced: 2 months ago
JSON representation
Advice commands to execute fullscreen, restoring the window setup when exiting.
- Host: GitHub
- URL: https://github.com/tomterl/fullframe
- Owner: tomterl
- Archived: true
- Created: 2013-11-24T21:29:09.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2021-02-19T15:11:36.000Z (almost 4 years ago)
- Last Synced: 2024-08-05T06:06:19.965Z (6 months ago)
- Topics: emacs, emacs-lisp
- Language: Emacs Lisp
- Size: 50.8 KB
- Stars: 46
- Watchers: 4
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
Awesome Lists containing this project
README
Development takes now place at sourcehut: https://sr.ht/~tomterl/tomtel/ .
* Generalized automatic execution in a single frame
[[https://stable.melpa.org/#/fullframe][file:http://stable.melpa.org/packages/fullframe-badge.svg]]
[[https://melpa.org/#/fullframe][file:http://melpa.org/packages/fullframe-badge.svg]]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:#+BEGIN_SRC emacs-lisp
(require 'fullframe)
(fullframe magit-status magit-mode-quit-window)
#+END_SRC** API
Fullframe exposes one function, =fullframe=
#+BEGIN_SRC emacs-lisp
(fullframe enter-command
exit-command
&optional kill-buffer-after-exit-command
after-command-on-func)
#+END_SRC- =enter-command= is the function you want to execute in a single window in the current frame.
- =exit-command= is the symbol of a function -- or a list of function symbols -- which, when called, should restore the window configuration.
- =kill-buffer-after-exit-command= can be set to true if
=exit-command= does not kill the buffer =enter-command= created, and
you want that buffer gone.
- =after-command-on-func= will be called after =command-on= was
called and the buffer generated by it is visible in the only window
in the current frame*** =after-command-on-func= example
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.
#+BEGIN_SRC emacs-lisp
(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)))))
#+END_SRC** Installation
=fullframe= is available on [[http://melpa.org/#/fullframe][melpa]] and [[http://stable.melpa.org][melpa-stable]].
[[http://melpa.org/#/getting-started][Add melpa to your package sources]], then execute the following in emacs:
#+BEGIN_SRC emacs-lisp
M-x package-install fullframe
#+END_SRCIf you use =cask= for your package-management, make sure you have
=(source 'melpa)= in your =Cask= file and add#+BEGIN_SRC emacs-lisp
(depends-on "fullframe")
#+END_SRCto it.
** ConfigurationThe 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 ~fullframe~.You have two possibilities:
- Pass a list of all possible exit-commands to ~fullframe~
- Revise the customization list ~fullframe/generic-quit-commands~ and
set ~fullframe/advice-generic-quit-commands~ to ~t~.
- mix both