[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How to have a frame dedicated to buffers of a certain kind? (was: us
From: |
Hongyi Zhao |
Subject: |
Re: How to have a frame dedicated to buffers of a certain kind? (was: use pdf-tools in Emacs.) |
Date: |
Mon, 1 May 2023 15:21:48 +0800 |
On Mon, May 1, 2023 at 2:33 PM Tassilo Horn <tsdh@gnu.org> wrote:
>
> Hongyi Zhao <hongyi.zhao@gmail.com> writes:
>
> >> > But I found a further problem: If I first opened the PDF file, then
> >> > it still won't be able to create a new frame dedicated to buffers
> >> > of LaTeX code, as shown in the attached screenshot.
> >>
> >> True. I didn't know this was a requirement. Basically you could just
> >> copy&paste&adapt this code to dedicate a special frame to anything you'd
> >> like. But that's left as an excercise to the reader. ;-)
> >
> > I tried as follows, but still can't achieve the goal:
>
> Hm, I think a problem might be that when you open the PDF first (and
> this actually starts emacs itself), the th/pdf-frame frame parameter
> might not be assigned to that frame. Please verify using M-:
> (frame-parameter nil 'th/pdf-frame) RET in that frame. If it doesn't
> return t, then that's the case. Then you'd somehow need to ensure that
> this initial frame gets the parameter, e.g., by adding a function like
> this to some reasonable hook:
>
> (defun th/pdf-frame-ensure ()
> (when (and (derived-mode-p 'pdf-view-mode)
> (zerop (length (seq-filter
> (lambda (f)
> (frame-parameter f 'th/pdf-frame))
> (frame-list)))))
> (set-frame-parameter nil 'th/pdf-frame t)))
>
> Unfortunately, I don't know which hook. pdf-view-mode-hook might run
> too early, i.e., the buffer might be set up before displaying it which
> eventually will create the frame. So maybe after-make-frame-functions
> is better (but then you'd need to use the frame given as parameter). I
> guess you'll need to do some testing here.
>
> BTW, I wonder if you really want to have a dedicated tex frame or just a
> dedicated pdf frame + one editing/normal frame. If it's actually the
> latter, I wouldn't introduce another th/tex-frame parameter but simply
> test for (null (frame-parameter frame 'th/pdf-frame)) everywhere.
Please go ahead with the latter and let me test it.
> Bye,
> Tassilo
Best,
Zhao