Hi Prot,
The documentation for `beframe-rename-function' states:
"If nil, no renaming is performed."
But setting it to `nil' causes an error when creating new frames as
`nil' is added to `after-make-frame-functions' when turning on
`beframe-mode'. To retain my frame naming scheme, I had to set it to
`#'ignore' instead. The mode definition should either check for nil, or
the documentation should specify that it should be set to `ignore' to
disable renaming.
It's possible that `setopt' or `customize-set-variable' does the right
thing here and I missed it, since I used `setq'. My apologies if this is
the case.
Karthik
> From: Karthik Chikmagalur <contact@karthinks.com>
> Date: Thu, 6 Jul 2023 12:08:20 -0700
>
> Hi Prot,
Hello Karthik,
> The documentation for `beframe-rename-function' states:
>
> "If nil, no renaming is performed."
>
> But setting it to `nil' causes an error when creating new frames as
> `nil' is added to `after-make-frame-functions' when turning on
> `beframe-mode'. To retain my frame naming scheme, I had to set it to
> `#'ignore' instead. The mode definition should either check for nil, or
> the documentation should specify that it should be set to `ignore' to
> disable renaming.
Oh, right! Does this work for you? Does it make sense?
beframe.el | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/beframe.el b/beframe.el
index 8ec90fb..e9dc35a 100644
--- a/beframe.el
@@ -552,13 +552,13 @@ (define-minor-mode beframe-mode
(setq beframe--read-buffer-function read-buffer-function
read-buffer-function #'beframe-read-buffer)
(add-hook 'after-make-frame-functions #'beframe--frame-predicate)
- (add-hook 'after-make-frame-functions beframe-rename-function)
+ (add-hook 'after-make-frame-functions #'beframe-maybe-rename-frame)
(add-hook 'after-make-frame-functions #'beframe-create-scratch-buffer)
(beframe--functions-in-frames))
(setq read-buffer-function beframe--read-buffer-function
beframe--read-buffer-function nil)
(remove-hook 'after-make-frame-functions #'beframe--frame-predicate)
- (remove-hook 'after-make-frame-functions beframe-rename-function)
+ (remove-hook 'after-make-frame-functions #'beframe-maybe-rename-frame)
(remove-hook 'after-make-frame-functions #'beframe-create-scratch-buffer)
(beframe--functions-in-frames :disable)))
@@ -650,6 +650,13 @@ (defun beframe-rename-frame (frame &optional name)
frame
(list (cons 'name (beframe--infer-frame-name frame name)))))
+(defun beframe-maybe-rename-frame (frame &optional name)
+ "Helper function to determine if `beframe-rename-function' is called.
+FRAME and optional NAME arguments are passed to the
+`beframe-rename-function'."
+ (when beframe-rename-function
+ (funcall beframe-rename-function frame name)))
+
(defun beframe--frame-buffer-p (buf &optional frame)
"Return non-nil if BUF belongs to the current frame.
Use optional FRAME to test if BUF belongs to it."
> It's possible that `setopt' or `customize-set-variable' does the right
> thing here and I missed it, since I used `setq'. My apologies if this is
> the case.
I think it works in that case, though I also use 'setq' all the time.
All the best,
Prot
--
Protesilaos Stavrou
https://protesilaos.com