Emacs: beframe version 0.3.0
beframe
enables a frame-oriented Emacs workflow where each frame has
access to the list of buffers visited therein. In the interest of
brevity, we call buffers that belong to frames “beframed”.
- Package name (GNU ELPA):
beframe
- Official manual: https://protesilaos.com/emacs/beframe
- Change log: https://protesilaos.com/emacs/beframe-changelog
- Git repo on SourceHut: https://git.sr.ht/~protesilaos/beframe
- Mirrors:
- Mailing list: https://lists.sr.ht/~protesilaos/general-issues
- Video demo: https://protesilaos.com/codelog/2023-02-28-emacs-beframe-demo/
- Backronym: Buffers Encapsulated in Frames Realise Advanced Management of Emacs.
Below are the release notes
Use more descriptive names for assume/unassume commands
Beframe limits the buffer list to buffers that are visited in the current frame. I provide commands to assume (add) or unassume (remove) buffers from other frames, making for a powerful and flexible workflow:
-
In bulk: Assume/unassume the (i) entire buffer list of a frame, or the (ii) consolidated buffer list of all frames.
-
Selectively: Use minibuffer completion to compile a list of buffers to assume/unassume (iii) from the given frame, or (iv) buffers from the consolidated buffer list.
The commands that operate selectively are renamed to better describe what they do. We thus have:
Deprecated name | New name |
---|---|
beframe-assume-buffers | beframe-assume-frame-buffers-selectively |
beframe-assume-buffers-all-frames | beframe-assume-buffers-selectively-all-frames |
beframe-unassume-buffers | beframe-unassume-current-frame-buffers-selectively |
To avoid potential confusion, the following command aliases are discontinued:
beframe-add-buffers
beframe-remove-buffers
beframe-add-frame-buffers
beframe-remove-frame-buffers
Provide the beframe-prefix-map
This is a keymap that binds the Beframe commands to recommended keys. As with all Emacs key bindings, those are configurable.
I call it a “prefix” keymap because it is not bound anywhere and cannot be used by default. The user must explicitly bind it to a key, which will be treated as a prefix key. For example:
(define-key global-map (kbd "C-c b") beframe-prefix-map)
With the above code, C-c b
becomes the prefix key that invokes
Beframe commands. Type C-c b C-h
to show the available key
bindings (by default C-h
as a suffix to an incomplete key sequence
produces a Help buffer that links to all the available bindings).
The beframe-prefix-map
and beframe-mode
are used independent of
each other.
Miscellaneous
- Simplify how
beframe-rename-function
is added by thebeframe-mode
. - Refine the application of
beframe-create-frame-scratch-buffer
by thebeframe-mode
. - Tweak the
beframe-buffer-sort-visibility
function to be consistent with the style ofbeframe.el
. - Rewrite parts of the manual to reference the aforementioned.