branch: externals/beframe commit f5ff228db2f1afaf5ee19ab9c933ba1b3774396c Author: Protesilaos Stavrou <i...@protesilaos.com> Commit: Protesilaos Stavrou <i...@protesilaos.com>
Update to Beframe version 1.1.0 --- CHANGELOG.org | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- README.org | 13 +++-------- beframe.el | 2 +- 3 files changed, 74 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.org b/CHANGELOG.org index 79a3c5bc69..689f29e2e2 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -4,11 +4,80 @@ #+options: ':nil toc:nil num:nil author:nil email:nil This document contains the release notes for each tagged commit on the -project's main git repository: <https://git.sr.ht/~protesilaos/beframe>. +project's main git repository: <https://github.com/protesilaos/beframe>. The newest release is at the top. For further details, please consult the manual: <https://protesilaos.com/emacs/beframe>. +* 1.1.0 on 2024-05-06 +:PROPERTIES: +:CUSTOM_ID: h:6cdbd605-8a3c-4e71-849e-e17b75805b2f +:END: + +This is a small release that adds some quality-of-life refinements to +a stable package. + +** The ~beframe-global-buffers~ is more flexible +:PROPERTIES: +:CUSTOM_ID: h:ce67d817-c394-460f-af35-994459a8903b +:END: + +This is a user option to specify which buffers should appear in all +frames. These "global" buffers are thus not associated only with the +frame in which they where displayed in. + +Before, the value of this user option was a list of strings that were +matching buffer names literally. Now it is a list of strings which are +understood as regular expressions as well as a list of symbols +representing major modes. + +Consider this example: + +#+begin_src emacs-lisp +(setq beframe-global-buffers '("\\*scratch\\*" ".*notmuch.*" emacs-lisp-mode)) +#+end_src + +It matches a buffer with the literal name =*scratch*=, all buffers +that include =notmuch= in their name, and all buffers whose major mode +is ~emacs-lisp-mode~ or derived therefrom. + +You can now more easily put all buffers in the global list, such as +for email or IRC. + +** The ~beframe-prefix-map~ is now a command +:PROPERTIES: +:CUSTOM_ID: h:c50ef266-4bd2-4413-bca5-e8118c84586f +:END: + +Before, this symbol was defined as a variable, which held the value of +the key bindings. Users where expected to bind this variable to a +key, such as: + +#+begin_src emacs-lisp +(define-key global-map (kbd "C-c b") beframe-prefix-map) +#+end_src + +This would set up =C-c b= as a prefix for all the key bindings inside +of ~beframe-prefix-map~. However, any changes to that map would not be +automatically included in the prefix. The above binding had to be +evaluated again (because we were binding a fixed value directly, +instead of having the indirection of a symbol that points to a value). + +Now the ~beframe-prefix-map~ is implemented as a variable and a +command. The variable holds the value of the key bindings, while the +command is meant to be assigned to a key. For users, the change is +trivial: + +#+begin_src emacs-lisp +(define-key global-map (kbd "C-c b") 'beframe-prefix-map) +#+end_src + +Notice the added single quote before ~beframe-prefix-map~. While only +an extra character in the user's configuration, this is a major change +because any changes made to the key map will now be automatically +available under the defined prefix. No need to evaluate the key +binding again. + * 1.0.0 on 2023-11-17 :PROPERTIES: :CUSTOM_ID: h:9a00ab34-a07f-4bb3-9397-6b1383fcebca diff --git a/README.org b/README.org index 3248b02b65..c569f15ec0 100644 --- a/README.org +++ b/README.org @@ -4,9 +4,9 @@ #+language: en #+options: ':t toc:nil author:t email:t num:t #+startup: content -#+macro: stable-version 1.0.0 -#+macro: release-date 2023-11-17 -#+macro: development-version 1.1.0-dev +#+macro: stable-version 1.1.0 +#+macro: release-date 2024-05-06 +#+macro: development-version 1.2.0-dev #+export_file_name: beframe.texi #+texinfo_filename: beframe.info #+texinfo_dir_category: Emacs misc features @@ -216,13 +216,6 @@ Beframe's commands. Those are available on demand ([[*The Beframe keymap][The B :CUSTOM_ID: h:737253ad-f671-46df-bdb9-6be20a982470 :END: -[ The definition of ~beframe-prefix-map~ as a /command/ is part of - {{{development-version}}}. In previous versions, the following code - block was binding the variable of the key map to the key. This meant - that updating the key map required a revaluation of the key binding. - Whereas now updates to the key map apply immediately, due to the - indirection we achieve by binding the symbol of the command. ] - #+vindex: beframe-prefix-map The ~beframe-prefix-map~ defines key bindings for the Beframe commands documented herein. We call it a prefix keymap because it is not diff --git a/beframe.el b/beframe.el index b0d56a7da6..d33f8444a9 100644 --- a/beframe.el +++ b/beframe.el @@ -5,7 +5,7 @@ ;; Author: Protesilaos Stavrou <i...@protesilaos.com> ;; Maintainer: Protesilaos Stavrou <i...@protesilaos.com> ;; URL: https://github.com/protesilaos/beframe -;; Version: 1.0.1 +;; Version: 1.1.0 ;; Package-Requires: ((emacs "28.1")) ;; This file is NOT part of GNU Emacs.