GNU bug report logs -
#13251
Wishlist: Add ability to set initial buffer for new frames.
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Wed, 02 Jan 2013 09:03:18 +0100
with message-id <50E3E9C6.8040501 <at> gmx.at>
and subject line Re: bug#13251: Wishlist: Add ability to set initial buffer for new frames.
has caused the debbugs.gnu.org bug report #13251,
regarding Wishlist: Add ability to set initial buffer for new frames.
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
13251: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13251
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
// Discussion in devel.
https://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00521.html
Short:
I want to be able to set buffer that will be displayed in window of newly
created frame.
I need it for my emacs package, that will save and restore some emacs state
including
last window configurations, opened and displayed buffers and such.
I tried this: add hook to `after-make-frame-functions'. Inside this hook I
do
`(switch-to-buffer <some-buffer>)' and frame is switched to that
<some-buffer> at first,
but after a short time it's switched to *scratch*.
The one way I found how to overcome this behaviour is by setting the
`initial-buffer-choice' in the `after-make-frame-functions' hook. One
drawback of this
approach is that it could only be set to name of file, t or nil and so
there is no way to
force switching to buffer without underlying file. This could be fixed int
server.el:1258
replacing
(unless (or files commands)
(if (stringp initial-buffer-choice)
(find-file initial-buffer-choice)
(switch-to-buffer (get-buffer-create "*scratch*")
'norecord)))
to
(unless (or files commands)
(switch-to-buffer
(get-buffer-create
(or (cond
((stringp initial-buffer-choice) (find-file-noselect
initial-buffer-choice))
((functionp initial-buffer-choice) (funcall
initial-buffer-choice)))
"*scratch*"))
'norecord))
and modified defcustom in in startup.el:41 would be:
(defcustom initial-buffer-choice nil
"Buffer to show after starting Emacs.
If the value is nil and `inhibit-startup-screen' is nil, show the
startup screen. If the value is a string, visit the specified file
or directory using `find-file'. If t, open the `*scratch*'
buffer. If function, switch to a buffer returned by this function.
A string value also causes emacsclient to open the specified file
or directory when no target file is specified."
:type '(choice
(const :tag "Startup screen" nil)
(directory :tag "Directory" :value "~/")
(file :tag "File" :value "~/.emacs")
(function :tag "Function")
(const :tag "Lisp scratch buffer" t))
:version "23.1"
:group 'initialization)
This code allows setting `initial-buffer-choice' to a function returning
needed buffer.
[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
> seems it works as I need. Thanks.
Bug closed.
Thanks, martin
This bug report was last modified 12 years and 140 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.