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