emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tab-bar-mode new tab hook?


From: Aaron Jensen
Subject: Re: tab-bar-mode new tab hook?
Date: Tue, 26 Apr 2022 11:56:49 -0400

On Tue, Apr 26, 2022 at 11:53 AM Juri Linkov <juri@linkov.net> wrote:
>
> > I imagine you didn't intend for it, but the fact that tab-bar-mode
> > manages its own buffer-list frame-parameter per tab makes it perfectly
> > suited for the purpose of tabs being used as workspaces.
>
> The intention was to make tabs as a light-weigh version of frames,
> so like every frame uses own frame-local buffer-list, switching tabs
> updates frame buffer-list to maintain a tab as a separate frame.
>
> > I just found `tab-bar-tab-post-open-functions', which should do
> > exactly what I need.
>
> I still don't understand why you need to run a hook only on opening
> a new tab, and not on switching tabs, to update frame parameters,
> but glad to hear that the existing hook does what you need.

Because the only thing I need is to set the initial buffer list and
then what you described above takes care of switching tabs. This is
what we are doing:

(set-frame-parameter nil
                     'buffer-list
                     (let ((window-buffers (mapcar #'window-buffer
(window-list))))
                       (seq-filter (lambda (buffer)
                                     (or (member buffer window-buffers)
                                         (member (buffer-name buffer)
                                                 tabspaces-include-buffers)))
                                   (frame-parameter nil 'buffer-list))))
(set-frame-parameter nil
                     'buried-buffer-list
                     (seq-filter (lambda (buffer)
                                   (member (buffer-name buffer)
                                           tabspaces-include-buffers))
                                 (frame-parameter nil 'buried-buffer-list)))

tab-bar-mode takes care of the rest by doing what you describe above.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]