🌈 I provide private lessons on Emacs, Linux, and Life in general: https://protesilaos.com/coach/.

🪷 私人培训教学课程:Emacs, Linux 和人生: https://protesilaos.com/cn/coach/.

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”.

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.


  • Simplify how beframe-rename-function is added by the beframe-mode.
  • Refine the application of beframe-create-frame-scratch-buffer by the beframe-mode.
  • Tweak the beframe-buffer-sort-visibility function to be consistent with the style of beframe.el.
  • Rewrite parts of the manual to reference the aforementioned.