/burly.el

Save and restore frames and windows with their buffers in Emacs

Primary LanguageEmacs LispGNU General Public License v3.0GPL-3.0

Burly.el

This package provides tools to save and restore frame and window configurations in Emacs, including buffers that may not be live anymore. In this way, it’s like a lightweight “workspace” manager, allowing you to easily restore one or more frames, including their windows, the windows’ layout, and their buffers.

Internally it uses Emacs’s bookmarks system to restore buffers to their previous contents and location. This provides power and extensibility, since many major modes already integrate with Emacs’s bookmarks system. However, in case a mode’s bookmarking function isn’t satisfactory, Burly allows the user to customize buffer-restoring functions for specific modes.

For Org mode, Burly provides such custom functions so that narrowed and indirect Org buffers are properly restored, and headings are located by outline path in case they’ve moved since a bookmark was made (the org-bookmark-heading package also provides this through the Emacs bookmark system, but users may not have it installed, and the functionality is too useful to not include here by default).

Internally, buffers and frame/window configurations are also encoded as URLs, and users may also save and open those URLs instead of using Emacs bookmarks. (The name “Burly” comes from “buffer URL.”) For example, a URL to the Installation/Quelpa heading in this file, as I’m writing it, looks like this:

emacs+burly+file:///home/me/src/emacs/burly.el/README.org?pos=2651&outline-path=%28%22Installation%22%20%22Quelpa%22%29&relative-pos=308

In terms of built-in features, Burly may be seen as integrating or leveraging the built-in libraries bookmark.el, window.el, and frameset.el.

Contents

Installation

MELPA

If you installed from MELPA, you’re done. Just run one of the commands below.

Quelpa

The easiest way is to install with quelpa-use-package, like this:

(use-package burly
  :quelpa (burly :fetcher github :repo "alphapapa/burly.el"))

Manual

  1. Install version 2.1 or later of the map library from GNU ELPA.
  2. Copy burly.el into a directory in your load-path, then (require 'burly).

Usage

Bookmark commands

Most users will probably use Burly by bookmarking frame and window configurations and accessing them with these commands:

  • burly-bookmark-frames: Bookmark the current frames and their window configurations.
  • burly-bookmark-windows: Bookmark the current frame’s window configuration.
  • burly-open-bookmark: Select and open a Burly bookmark.

Note that bookmarks created by Burly are regular Emacs bookmarks, so they can be managed by Emacs’s built-in bookmark commands, e.g. list-bookmarks, bookmark-delete, etc.

URL commands

These commands work on URL strings. While most users probably won’t use these, they may be useful for building custom tooling.

  • burly-open-url: Open a Burly URL (at point, or prompt for one), displaying the buffer(s) in the current window or frame.
  • burly-kill-buffer-url: Copy BUFFER’s URL to the kill ring.
  • burly-kill-frames-url: Copy the current frameset’s URL to the kill ring.
  • burly-kill-windows-url: Copy the current frame’s window configuration URL to the kill ring.

Tips

  • You can customize settings in the burly group.
  • An Info manual is included with this package.

Changelog

0.1

Initial release.

Development

Bug reports, feature requests, suggestions — oh my!

Credits

Thanks to Clemens Radermacher and Robert Weiner for their suggestions.

License

GPLv3