[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: change buffer in other frame, multiple monitors
From: |
Sam Halliday |
Subject: |
Re: change buffer in other frame, multiple monitors |
Date: |
Thu, 28 May 2015 07:16:40 -0700 (PDT) |
User-agent: |
G2/1.0 |
I'm starting to think that `C-x 5` commands are not really intended to reuse
the other frame (despite their name). From the docs
http://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Frames.html
> If an existing visible or iconified ("minimized") frame already displays the
> requested buffer, that frame is raised and deiconified ("un-minimized");
> otherwise, a new frame is created on the current display terminal.
e.g. starting emacs24 (debian jessie) with -Q and type
C-x 5 2 ;; new frame
C-x 5 b ;; *Messages*
a THIRD frame is opened. I had expected the other frame to be reused.
Is there any way to get the `C-x 5` commands to reuse the other frame instead
of creating a new one or am I going to have to rewrite my own functions that
first call `other-frame`?
On Thursday, 28 May 2015 15:02:45 UTC+1, Sam Halliday wrote:
> I'm starting to think there must be a bug somewhere. Setting the explicit
> action is still causing `C-x 5 b` to open a new frame even if one is already
> open:
>
> (setq display-buffer--other-frame-action
> '((display-buffer-reuse-window display-buffer-pop-up-frame)
> (reusable-frames . t) (inhibit-same-window . t)))
>
> I'm on Debian Jessie but some mac users have said that the out-of-the-box
> behaviour is for `C-x 5 b` to reuse the other frame.
>
> I'm stumped. Any help appreciated.
>
>
> On Thursday, 28 May 2015 12:22:25 UTC+1, Sam Halliday wrote:
> > I've updated the below with the newer display-buffer-alist approach with
> >
> > (setq display-buffer-alist
> > '((".*" display-buffer-reuse-window (reusable-frames . t))
> > (".*" display-buffer-pop-up-frame (inhibit-switch-frame . t))))
> >
> > The reuse-window entry seems to reproduce the behaviour of the legacy
> > setting I was using.
> >
> > I have added a display-buffer-pop-up-frame entry as per the documentation
> > for display-buffer but it seems to be ignored.
> >
> > Is my syntax perhaps incorrect? Maybe there should only be one ".*"?
> >
> >
> >
> > On Wednesday, 27 May 2015 15:16:27 UTC+1, Sam Halliday wrote:
> > > Hi all,
> > >
> > > I have a setup with multiple monitors and when using Emacs I have a frame
> > > in each monitor.
> > >
> > > I recently asked a question on this list and the solution was to set
> > >
> > > (setq-default display-buffer-reuse-frames t)
> > >
> > > so that 'next-error would not popup a new window (when the window was
> > > already open in a new frame).
> > >
> > > That worked great! I've recently been extending my use of basic emacs
> > > commands to include the commands under `C-x 5 ...` (i.e. the "do in the
> > > other frame" commands)
> > >
> > > However, when I type `C-x 5 b` and select a buffer name, I am expecting
> > > the buffer to be shown in the other frame. But instead, the buffer is
> > > opened in a new frame.
> > >
> > > It would appear that setting 'display-buffer-reuse-frames is not enough
> > > to force re-use of existing frames and this function is popping up a new
> > > one.
> > >
> > > Is there something else I must do to re-use frames? I note that
> > > display-buffer-reuse-frames is deprecated, but I'm not entirely sure how
> > > to migrate to the new world.
> > >
> > > Best regards,
> > > Sam