[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#34715: 26.1; (1) Add `clone-frame', (2) bind it to `C-x 5 2'
From: |
Drew Adams |
Subject: |
bug#34715: 26.1; (1) Add `clone-frame', (2) bind it to `C-x 5 2' |
Date: |
Sat, 2 Mar 2019 16:47:47 -0800 (PST) |
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''
- bug#34715: 26.1; (1) Add `clone-frame', (2) bind it to `C-x 5 2',
Drew Adams <=