* bug#32736: 26; Bind `C-x 5 2' to `clone-frame' by default
@ 2018-09-14 16:32 Drew Adams
2018-09-14 18:57 ` Robert Pluim
0 siblings, 1 reply; 5+ messages in thread
From: Drew Adams @ 2018-09-14 16:32 UTC (permalink / raw)
To: 32736
Possible enhancement: Change default binding of `C-x 5 2' to
`clone-frame'. Unlike `make-frame-command', `clone-frame' would use the
same frame-parameter values as the selected frame. Here's a possible
definition of `clone-frame':
(defun clone-frame (&optional frame)
"Make a new frame with the same parameters as FRAME.
FRAME defaults to the selected frame. The frame is created on the
same terminal as FRAME. If the terminal is a text-only terminal then
also select the new frame."
(interactive)
(let* ((default-frame-alist (frame-parameters frame))
(new-fr (make-frame)))
(unless (display-graphic-p) (select-frame new-fr))))
In GNU Emacs 26.1 (build 1, x86_64-w64-mingw32)
of 2018-05-30
Repository revision: 07f8f9bc5a51f5aa94eb099f3e15fbe0c20ea1ea
Windowing system distributor `Microsoft Corp.', version 10.0.16299
Configured using:
`configure --without-dbus --host=x86_64-w64-mingw32
--without-compress-install 'CFLAGS=-O2 -static -g3''
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#32736: 26; Bind `C-x 5 2' to `clone-frame' by default
2018-09-14 16:32 bug#32736: 26; Bind `C-x 5 2' to `clone-frame' by default Drew Adams
@ 2018-09-14 18:57 ` Robert Pluim
2018-09-14 19:35 ` Drew Adams
2018-09-15 0:22 ` Phil Sainty
0 siblings, 2 replies; 5+ messages in thread
From: Robert Pluim @ 2018-09-14 18:57 UTC (permalink / raw)
To: Drew Adams; +Cc: 32736
Drew Adams <drew.adams@oracle.com> writes:
> Possible enhancement: Change default binding of `C-x 5 2' to
> `clone-frame'. Unlike `make-frame-command', `clone-frame' would use the
> same frame-parameter values as the selected frame. Here's a possible
> definition of `clone-frame':
Hmm, how common is it to have a frame that doesnʼt have the same frame
parameters as 'default-frame-alist', and you want to replicate them?
Personally I quite like the current behaviour.
> (defun clone-frame (&optional frame)
> "Make a new frame with the same parameters as FRAME.
> FRAME defaults to the selected frame. The frame is created on the
> same terminal as FRAME. If the terminal is a text-only terminal then
> also select the new frame."
> (interactive)
> (let* ((default-frame-alist (frame-parameters frame))
> (new-fr (make-frame)))
> (unless (display-graphic-p) (select-frame new-fr))))
How about you make it take a prefix argument to get back
'make-frame-command' semantics (or keep the current ones, and add
'clone-frame' semantics to the prefix arg)?
Robert
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#32736: 26; Bind `C-x 5 2' to `clone-frame' by default
2018-09-14 18:57 ` Robert Pluim
@ 2018-09-14 19:35 ` Drew Adams
2018-09-15 0:22 ` Phil Sainty
1 sibling, 0 replies; 5+ messages in thread
From: Drew Adams @ 2018-09-14 19:35 UTC (permalink / raw)
To: Robert Pluim; +Cc: 32736
> > Possible enhancement: Change default binding of `C-x 5 2' to
> > `clone-frame'. Unlike `make-frame-command', `clone-frame' would use the
> > same frame-parameter values as the selected frame. Here's a possible
> > definition of `clone-frame':
>
> Hmm, how common is it to have a frame that doesnʼt have the same frame
> parameters as 'default-frame-alist', and you want to replicate them?
> Personally I quite like the current behaviour.
It's definitely the case for me. I use several kinds of special-display frames. If I use it on a *Help* frame get a *Help* frame (same background etc.). If I use it on an *info* frame I get an *info* frame, and so on.
If it's not the case for you then you should get pretty much the same behavior as now. I don't think you'll notice a difference.
> How about you make it take a prefix argument to get back
> 'make-frame-command' semantics (or keep the current ones, and add
> 'clone-frame' semantics to the prefix arg)?
Fair enough.
(defun clone-frame (&optional frame no-clone)
"Make a new frame with the same parameters as FRAME.
With a prefix arg, don't clone - just call `make-frame-command'.
FRAME defaults to the selected frame. The frame is created on the
same terminal as FRAME. If the terminal is a text-only terminal then
also select the new frame."
(interactive "i\nP")
(if no-clone
(make-frame-command)
(let* ((default-frame-alist (frame-parameters frame))
(new-fr (make-frame)))
(unless (if (fboundp 'display-graphic-p) (display-graphic-p) window-system)
(select-frame new-fr)))))
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#32736: 26; Bind `C-x 5 2' to `clone-frame' by default
2018-09-14 18:57 ` Robert Pluim
2018-09-14 19:35 ` Drew Adams
@ 2018-09-15 0:22 ` Phil Sainty
1 sibling, 0 replies; 5+ messages in thread
From: Phil Sainty @ 2018-09-15 0:22 UTC (permalink / raw)
To: Robert Pluim, Drew Adams; +Cc: 32736
On 15/09/18 06:57, Robert Pluim wrote:
> How about you make it take a prefix argument to get back
> 'make-frame-command' semantics (or keep the current ones, and add
> 'clone-frame' semantics to the prefix arg)?
I don't have an opinion on which behaviour should be the default,
but I like the idea of adding such prefix argument behaviour to the
C-x 5 2 binding so that users can choose between the two, so +1 to
that idea in general.
-Phil
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#34715: 26.1; (1) Add `clone-frame', (2) bind it to `C-x 5 2'
@ 2019-03-03 0:47 Drew Adams
2021-09-01 9:43 ` bug#32736: 26; Bind `C-x 5 2' to `clone-frame' by default Lars Ingebrigtsen
0 siblings, 1 reply; 5+ messages in thread
From: Drew Adams @ 2019-03-03 0:47 UTC (permalink / raw)
To: 34715
Enhancement request:
1. Add a `clone-frame' command such as this one, which is similar to
what I've been using:
(defun clone-frame (&optional frame no-clone)
"Make a new frame with the same parameters as FRAME.
With a prefix arg, don't clone - just call `make-frame-command'.
FRAME defaults to the selected frame. The frame is created on the
same terminal as FRAME. If the terminal is a text-only terminal then
also select the new frame."
(interactive "i\nP")
(if no-clone
(make-frame-command)
(let* ((default-frame-alist (frame-parameters frame))
(new-fr (make-frame)))
(unless (display-graphic-p) (select-frame new-fr))
new-fr)))
2. Use it, not `make-frame-command', as the binding of `C-x 5 2'.
Why change the default behavior of `C-x 5 2'? If I want the buffer
of the selected window shown in another frame then I typically want
that frame to have the same parameters.
It's true that I often have only one window in the selected frame,
which is not typical of other users, and in that case it perhaps
makes even more sense that I want `C-x 5 2' to duplicate the frame's
parameters. But I think that most users are likely to prefer, as the
default behavior, keeping the same parameters. (`C-u' gives
`make-frame-command', i.e., the frame parameters are not cloned.) An
open question, I guess.
3. BTW, I think it would be good to add this to the doc string of
`make-frame-command':
Return the new frame.
In GNU Emacs 26.1 (build 1, x86_64-w64-mingw32)
of 2018-05-30
Repository revision: 07f8f9bc5a51f5aa94eb099f3e15fbe0c20ea1ea
Windowing system distributor `Microsoft Corp.', version 10.0.17134
Configured using:
`configure --without-dbus --host=x86_64-w64-mingw32
--without-compress-install 'CFLAGS=-O2 -static -g3''
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-09-01 9:43 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-14 16:32 bug#32736: 26; Bind `C-x 5 2' to `clone-frame' by default Drew Adams
2018-09-14 18:57 ` Robert Pluim
2018-09-14 19:35 ` Drew Adams
2018-09-15 0:22 ` Phil Sainty
-- strict thread matches above, loose matches on Subject: below --
2019-03-03 0:47 bug#34715: 26.1; (1) Add `clone-frame', (2) bind it to `C-x 5 2' Drew Adams
2021-09-01 9:43 ` bug#32736: 26; Bind `C-x 5 2' to `clone-frame' by default Lars Ingebrigtsen
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).