unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Dan Nicolaescu <dann@ics.uci.edu>
To: emacs-devel@gnu.org
Subject: start emacs without creating frames and connect with emacsclient later
Date: Wed, 13 Aug 2008 09:10:46 -0700	[thread overview]
Message-ID: <200808131610.m7DGAkvk020047@sallyv1.ics.uci.edu> (raw)


It seemed that this TODO item shouldn't be that hard to do given that we
have all the infrastructure:

** Make "emacs --daemon" start emacs without showing any frame. 
Use emacsclient later to open frames.


10 minutes later it turned out to be true.

The patch below implements it.

emacs -daemon &

will start emacs without creating any frames, and it starts the server.

Later you can do:

emacsclient -t FILENAME

will create a tty frame.

and
emacsclient -c FILENAME

will create an X11 frame.

Not sure what to do about:
emacsclient FILENAME

it won't do anything visibe if no other frame is available.  Should it
create one?

Should something like this go in?  We do have a feature freeze, but this
is quite simple, and it completes the multi-tty functionality, which is
one of the major features of 23.1.

--- startup.el.~1.502.~	2008-08-06 21:53:07.000000000 -0700
+++ startup.el	2008-08-13 08:54:06.000000000 -0700
@@ -698,6 +698,8 @@ opening the first frame (e.g. open a con
 		  (attribute class &optional component subclass))
 (declare-function tool-bar-mode "tool-bar" (&optional arg))
 
+(defvar startup-unmapped nil)
+
 (defun command-line ()
   (setq before-init-time (current-time)
         command-line-default-directory default-directory)
@@ -863,6 +865,8 @@ opening the first frame (e.g. open a con
 	  (push '(icon-type . t) default-frame-alist))
 	 ((member argi '("-nbc" "-no-blinking-cursor"))
 	  (setq no-blinking-cursor t))
+	 ((equal argi "-unmapped")
+	  (setq startup-unmapped t))
 	 ;; Push the popped arg back on the list of arguments.
 	 (t
           (push argi args)
@@ -877,9 +881,11 @@ opening the first frame (e.g. open a con
 
   (run-hooks 'before-init-hook)
 
-  ;; Under X Window, this creates the X frame and deletes the terminal frame.
-  (when (fboundp 'frame-initialize)
-    (frame-initialize))
+  (if startup-unmapped
+      (server-start)
+    ;; Under X Window, this creates the X frame and deletes the terminal frame.
+    (when (and (fboundp 'frame-initialize))
+      (frame-initialize)))
 
   ;; Turn off blinking cursor if so specified in X resources.  This is here
   ;; only because all other settings of no-blinking-cursor are here.




             reply	other threads:[~2008-08-13 16:10 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-13 16:10 Dan Nicolaescu [this message]
2008-08-13 16:40 ` start emacs without creating frames and connect with emacsclient later Johannes Weiner
2008-08-13 20:49 ` Stefan Monnier
2008-08-14  5:19 ` Richard M. Stallman
2008-08-14 17:21   ` Stefan Monnier
2008-08-15 12:44     ` Richard M. Stallman
2008-08-15 15:25       ` Dan Nicolaescu
2008-08-21 17:20   ` Dan Nicolaescu
2008-08-21 22:55     ` David De La Harpe Golden
2008-08-21 23:55       ` Dan Nicolaescu
2008-08-22  5:59         ` tomas
2008-08-22  7:24       ` Paul R
2008-08-22 11:58     ` David Hansen
2008-09-01 14:03       ` Dan Nicolaescu
2008-09-01 14:02   ` Dan Nicolaescu
2008-09-01 18:29     ` Stefan Monnier
2008-09-01 23:11       ` Dan Nicolaescu
2008-09-02 19:53         ` Stefan Monnier
2008-09-03  6:43           ` Dan Nicolaescu
2008-09-03  6:50             ` martin rudalics
2008-09-03 11:53               ` Dan Nicolaescu
2008-09-03 12:38                 ` martin rudalics
2008-09-03 20:14                   ` Dan Nicolaescu
     [not found]             ` <jwv7i9tyzk5.fsf-monnier+emacs@gnu.org>
     [not found]               ` <200809211007.m8LA7TLQ014367@mothra.ics.uci.edu>
     [not found]                 ` <87k5d5u359.fsf@cyd.mit.edu>
     [not found]                   ` <jwvabe14o4w.fsf-monnier+emacs@gnu.org>
     [not found]                     ` <200809211826.m8LIQBbq016320@mothra.ics.uci.edu>
     [not found]                       ` <jwvskrt2tbz.fsf-monnier+emacs@gnu.org>
2008-09-21 23:36                         ` Dan Nicolaescu
2008-08-15 15:36 ` Phil Jackson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200808131610.m7DGAkvk020047@sallyv1.ics.uci.edu \
    --to=dann@ics.uci.edu \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).