unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* 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#32736: 26; Bind `C-x 5 2' to `clone-frame' by default
  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 ` Lars Ingebrigtsen
  0 siblings, 0 replies; 5+ messages in thread
From: Lars Ingebrigtsen @ 2021-09-01  9:43 UTC (permalink / raw)
  To: Drew Adams; +Cc: 34715, 32736

Drew Adams <drew.adams@oracle.com> writes:

> 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)

I've now added this to Emacs 28 (with some trivial changes) -- bound to
`C-x 5 c'.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ 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).