* Re: Overriding switch to *scratch* buffer after creating new frame with 'emacsclient -c' @ 2012-12-20 9:59 martin rudalics 0 siblings, 0 replies; 9+ messages in thread From: martin rudalics @ 2012-12-20 9:59 UTC (permalink / raw) To: zxnotdead; +Cc: help-gnu-emacs > Heh, found, that it I can set `initial-buffer-choice' to some > file-name and it will be opened instead of switching to *scratch*. > But can't specify buffer without underlying file though. I wonder which buffer you want to display here if it doesn't correspond to a file. martin ^ permalink raw reply [flat|nested] 9+ messages in thread
[parent not found: <CAFkz2yroLhknptDnWyC9B1fbZKEwTCV-T0VttHQiwZoaAW-j6A@mail.gmail.com>]
[parent not found: <CAFkz2yrZ3wuMiyNY2edNLDG4jTAfNKXb5mvC6OYqu+0xE94Qgg@mail.gmail.com>]
[parent not found: <50D2F0FD.30804@gmx.at>]
[parent not found: <CAFkz2ypcP-fmRH7jJWdhYRaRVB-VEtn0=5qWYQ_S+QCTmZ=TRQ@mail.gmail.com>]
* Re: Overriding switch to *scratch* buffer after creating new frame with 'emacsclient -c' [not found] ` <CAFkz2ypcP-fmRH7jJWdhYRaRVB-VEtn0=5qWYQ_S+QCTmZ=TRQ@mail.gmail.com> @ 2012-12-20 13:52 ` martin rudalics 2012-12-20 14:46 ` Thien-Thi Nguyen 0 siblings, 1 reply; 9+ messages in thread From: martin rudalics @ 2012-12-20 13:52 UTC (permalink / raw) To: Константин Куликов Cc: help-gnu-emacs >> add an appropriate customization type for `initial-buffer-choice' > I don't think that it's will be useful for users to customise, but who > knows... `initial-buffer-choice' _is_ an option specified via `defcustom' in startup.el. We cannot implicitly ignore this fact in `command-line-1'. But we could, for example, allow a function here and you could specify a function to provide the buffer of your choice here. > Here the scenario: > I want new frames to switch to some buffer so I added hook to > `after-make-frame-functions'. > Inside this hook I do `(switch-to-buffer <some-buffer>)' the window on this > frame is switched to that <some-buffer> at first, but after a short time > it's > switched to *scratch*. So as I think it would be better that > `after-make-frame-functions' will be called after this 'default switching to > *scratch* behaviour' is performed. I'm afraid that this would mean a quite intrusive change to the sequence of operations performed by the startup code. Are there any reasons why you can't use `emacs-startup-hook' or `term-setup-hook' instead? > And than will be no need for me to > add code to server.el. > // New version: > (unless (or files commands) > (let ((type (type-of initial-buffer-choice)) > (buf "*scratch*")) > (cond > ((eq 'string type) (setq buf (find-file-noselect > initial-buffer-choice))) > ((eq 'buffer type) (when (buffer-live-p > initial-buffer-choice) > (setq buf initial-buffer-choice)))) > (switch-to-buffer (get-buffer-create buf) 'norecord))) Looks good to me. martin ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Overriding switch to *scratch* buffer after creating new frame with 'emacsclient -c' 2012-12-20 13:52 ` martin rudalics @ 2012-12-20 14:46 ` Thien-Thi Nguyen 2012-12-20 17:06 ` Stefan Monnier 0 siblings, 1 reply; 9+ messages in thread From: Thien-Thi Nguyen @ 2012-12-20 14:46 UTC (permalink / raw) To: martin rudalics; +Cc: help-gnu-emacs [-- Attachment #1: Type: text/plain, Size: 966 bytes --] () martin rudalics <rudalics@gmx.at> () Thu, 20 Dec 2012 14:52:31 +0100 > (unless (or files commands) > (let ((type (type-of initial-buffer-choice)) > (buf "*scratch*")) > (cond > ((eq 'string type) (setq buf (find-file-noselect initial-buffer-choice))) > ((eq 'buffer type) (when (buffer-live-p initial-buffer-choice) > (setq buf initial-buffer-choice)))) > (switch-to-buffer (get-buffer-create buf) 'norecord))) Looks good to me. It would be better w/o local vars and ‘setq’, though. -- Thien-Thi Nguyen ..................................... GPG key: 4C807502 . NB: ttn at glug dot org is not me . . (and has not been since 2007 or so) . . ACCEPT NO SUBSTITUTES . ........... please send technical questions to mailing lists ........... [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Overriding switch to *scratch* buffer after creating new frame with 'emacsclient -c' 2012-12-20 14:46 ` Thien-Thi Nguyen @ 2012-12-20 17:06 ` Stefan Monnier 2012-12-21 13:10 ` Thien-Thi Nguyen 0 siblings, 1 reply; 9+ messages in thread From: Stefan Monnier @ 2012-12-20 17:06 UTC (permalink / raw) To: help-gnu-emacs > (unless (or files commands) > (let ((type (type-of initial-buffer-choice)) > (buf "*scratch*")) > (cond > ((eq 'string type) (setq buf (find-file-noselect initial-buffer-choice))) > ((eq 'buffer type) (when (buffer-live-p initial-buffer-choice) > (setq buf initial-buffer-choice)))) > (switch-to-buffer (get-buffer-create buf) 'norecord))) > It would be better w/o local vars and ‘setq’, though. You mean like (unless (or files commands) (let ((buf (cond ((stringp initial-buffer-choice) (find-file-noselect initial-buffer-choice)) ((buffer-live-p initial-buffer-choice) initial-buffer-choice) (t "*scratch*")))) (switch-to-buffer (get-buffer-create buf) 'norecord))) -- Stefan ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Overriding switch to *scratch* buffer after creating new frame with 'emacsclient -c' 2012-12-20 17:06 ` Stefan Monnier @ 2012-12-21 13:10 ` Thien-Thi Nguyen 2012-12-21 15:43 ` Constantin Kulikov 2012-12-22 17:46 ` Stefan Monnier 0 siblings, 2 replies; 9+ messages in thread From: Thien-Thi Nguyen @ 2012-12-21 13:10 UTC (permalink / raw) To: Stefan Monnier; +Cc: help-gnu-emacs [-- Attachment #1: Type: text/plain, Size: 1773 bytes --] () Stefan Monnier <monnier@iro.umontreal.ca> () Thu, 20 Dec 2012 12:06:54 -0500 You mean like (unless (or files commands) (let ((buf (cond ((stringp initial-buffer-choice) (find-file-noselect initial-buffer-choice)) ((buffer-live-p initial-buffer-choice) initial-buffer-choice) (t "*scratch*")))) (switch-to-buffer (get-buffer-create buf) 'norecord))) Almost. To rid ourselves of the last local var: (unless (or files commands) (switch-to-buffer (get-buffer-create (cond ((stringp initial-buffer-choice) (find-file-noselect initial-buffer-choice)) ((buffer-live-p initial-buffer-choice) initial-buffer-choice) (t "*scratch*"))) 'norecord)) or (hewing closer to OP approach): (unless (or files commands) (switch-to-buffer (get-buffer-create (or (case (type-of initial-buffer-choice) (string (find-file-noselect initial-buffer-choice)) (buffer (when (buffer-live-p initial-buffer-choice) initial-buffer-choice))) "*scratch*")) 'norecord)) Same difference; more stack, less state... Since we're talking style, i'd say the most important thing is sane indentation, but luckily we have Emacs for that. :-D -- Thien-Thi Nguyen ..................................... GPG key: 4C807502 . NB: ttn at glug dot org is not me . . (and has not been since 2007 or so) . . ACCEPT NO SUBSTITUTES . ........... please send technical questions to mailing lists ........... [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Overriding switch to *scratch* buffer after creating new frame with 'emacsclient -c' 2012-12-21 13:10 ` Thien-Thi Nguyen @ 2012-12-21 15:43 ` Constantin Kulikov 2012-12-22 17:46 ` Stefan Monnier 1 sibling, 0 replies; 9+ messages in thread From: Constantin Kulikov @ 2012-12-21 15:43 UTC (permalink / raw) To: help-gnu-emacs [-- Attachment #1: Type: text/plain, Size: 135 bytes --] :-) nice. And I think that martin was right, it's more useful to allow setting initial-buffer-choice to a function returning a buffer. [-- Attachment #2: Type: text/html, Size: 182 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Overriding switch to *scratch* buffer after creating new frame with 'emacsclient -c' 2012-12-21 13:10 ` Thien-Thi Nguyen 2012-12-21 15:43 ` Constantin Kulikov @ 2012-12-22 17:46 ` Stefan Monnier 1 sibling, 0 replies; 9+ messages in thread From: Stefan Monnier @ 2012-12-22 17:46 UTC (permalink / raw) To: help-gnu-emacs > (or (case (type-of initial-buffer-choice) I really dislike type-of (e.g. what's the type of nil? Is `bold' a symbol or a face?). > Same difference; more stack, less state... Since we're talking style, Actually (let ((foo ...)) ...foo...) does not use more "state". State only creeps in when we use things like setq. As for whether the use of a let-binding for a single-use variable is warranted: it mostly depends on aesthetics. In this specific case, I'd favor the let-form since it gives a name to the intermediate value without costing you an extra line. Stefan ^ permalink raw reply [flat|nested] 9+ messages in thread
* Overriding switch to *scratch* buffer after creating new frame with 'emacsclient -c' @ 2012-12-19 13:14 Константин Куликов 2012-12-20 0:43 ` Константин Куликов 0 siblings, 1 reply; 9+ messages in thread From: Константин Куликов @ 2012-12-19 13:14 UTC (permalink / raw) To: help-gnu-emacs [-- Attachment #1: Type: text/plain, Size: 458 bytes --] If you run command emacsclient -c the new frame will be created and then selected window(that have cursor and input focus) of this frame is switched to display *scratch* buffer. I added hook to `after-make-frame-functions', that already perform switching to another buffer that I need, but it's then switched to *scratch*. Can I somehow override this behaviour, by disabling switching to *scratch* buffer in new frame, that was created by 'emacsclient -c' ? [-- Attachment #2: Type: text/html, Size: 545 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Overriding switch to *scratch* buffer after creating new frame with 'emacsclient -c' 2012-12-19 13:14 Константин Куликов @ 2012-12-20 0:43 ` Константин Куликов 0 siblings, 0 replies; 9+ messages in thread From: Константин Куликов @ 2012-12-20 0:43 UTC (permalink / raw) To: help-gnu-emacs [-- Attachment #1: Type: text/plain, Size: 753 bytes --] Heh, found, that it I can set `initial-buffer-choice' to some file-name and it will be opened instead of switching to *scratch*. But can't specify buffer without underlying file though. 2012/12/19 Константин Куликов <zxnotdead@gmail.com> > If you run command emacsclient -c the new frame will be created and then > selected window(that have cursor and input focus) of this frame is switched > to display *scratch* buffer. > I added hook to `after-make-frame-functions', that already perform > switching to another buffer that I need, but it's then switched to > *scratch*. > Can I somehow override this behaviour, by disabling switching to *scratch* > buffer in new frame, that was created by 'emacsclient -c' ? > > [-- Attachment #2: Type: text/html, Size: 1175 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2012-12-22 17:46 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-12-20 9:59 Overriding switch to *scratch* buffer after creating new frame with 'emacsclient -c' martin rudalics [not found] <CAFkz2yroLhknptDnWyC9B1fbZKEwTCV-T0VttHQiwZoaAW-j6A@mail.gmail.com> [not found] ` <CAFkz2yrZ3wuMiyNY2edNLDG4jTAfNKXb5mvC6OYqu+0xE94Qgg@mail.gmail.com> [not found] ` <50D2F0FD.30804@gmx.at> [not found] ` <CAFkz2ypcP-fmRH7jJWdhYRaRVB-VEtn0=5qWYQ_S+QCTmZ=TRQ@mail.gmail.com> 2012-12-20 13:52 ` martin rudalics 2012-12-20 14:46 ` Thien-Thi Nguyen 2012-12-20 17:06 ` Stefan Monnier 2012-12-21 13:10 ` Thien-Thi Nguyen 2012-12-21 15:43 ` Constantin Kulikov 2012-12-22 17:46 ` Stefan Monnier -- strict thread matches above, loose matches on Subject: below -- 2012-12-19 13:14 Константин Куликов 2012-12-20 0:43 ` Константин Куликов
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).