;; frame-notice-user-settings didn't (such as on a tty).
;; frame-set-background-mode is idempotent, so it won't
;; cause any harm if it's already been done.
- (frame-set-background-mode (selected-frame)))
+ (let ((frame-background-mode frame-background-mode)
+ (frame (selected-frame))
+ term)
+ (when (and (null window-system)
+ ;; Don't override a possibly customized value.
+ (null frame-background-mode)
+ ;; Don't override user specifications.
+ (null (frame-parameter frame 'reverse))
+ (let ((bg (frame-parameter frame 'background-color)))
+ (or (null bg)
+ (member bg '(unspecified "unspecified-bg")))))
+ (setq term (getenv "TERM"))
+ (if (string-match "^\\(xterm\\|rxvt\\|dtterm\\|eterm\\)"
+ term)
+ (setq frame-background-mode 'light)))
+ (frame-set-background-mode (selected-frame))))
;; Now we know the user's default font, so add it to the menu.
(if (fboundp 'font-menu-add-default)
(string= vc "simple"))
(setq version-control 'never))))
- (set-locale-environment nil)
-
;;! This has been commented out; I currently find the behavior when
;;! split-window-keep-point is nil disturbing, but if I can get used
;;! to it, then it would be better to eliminate the option.
(not noninteractive))
(setq command-line-args (tty-handle-args command-line-args)))
+ (set-locale-environment nil)
+
(let ((done nil)
(args (cdr command-line-args)))
(setq-default blink-cursor t)
(blink-cursor-mode 1))
+ (when (and (not noninteractive)
+ (display-graphic-p)
+ (fboundp 'x-show-tip))
+ (setq-default tooltip-mode t)
+ (tooltip-mode 1))
+
;; Register default TTY colors for the case the terminal hasn't a
;; terminal init file.
(or (memq window-system '(x w32))
;; into user-init-file.
(setq user-init-file t)
(load user-init-file-1 t t)
+
;; If we did not find the user's init file,
;; set user-init-file conclusively to nil;
;; don't let it be set from default.el.
(if (eq user-init-file t)
(setq user-init-file nil))
+
;; If we loaded a compiled file, set
;; `user-init-file' to the source version if that
;; exists.
(when (and user-init-file
(equal (file-name-extension user-init-file)
- "elc")
- (file-exists-p user-init-file-1))
- (when (file-newer-than-file-p
- user-init-file-1 user-init-file)
- (message "Warning: %s is newer than %s"
- user-init-file-1 user-init-file)
- (sit-for 1))
- (setq user-init-file user-init-file-1))
+ "elc"))
+ (let* ((source (file-name-sans-extension user-init-file))
+ (alt (concat source ".el")))
+ (setq source (cond ((file-exists-p alt) alt)
+ ((file-exists-p source) source)
+ (t nil)))
+ (when source
+ (when (file-newer-than-file-p source user-init-file)
+ (message "Warning: %s is newer than %s"
+ source user-init-file)
+ (sit-for 1))
+ (setq user-init-file source))))
+
(or inhibit-default-init
(let ((inhibit-startup-message nil))
;; Users are supposed to be told their rights.
:face (variable-pitch :weight bold)
"Useful Files menu items:\n"
:face variable-pitch "\
-Exit Emacs (or type Control-x followed by Control-c)
-Recover Session recover files you were editing before a crash
+Exit Emacs\t(or type Control-x followed by Control-c)
+Recover Session\trecover files you were editing before a crash
"
:face (variable-pitch :weight bold)
"Important Help menu items:\n"
:face variable-pitch "\
-Emacs Tutorial Learn-by-doing tutorial for using Emacs efficiently.
-Emacs FAQ Frequently asked questions and answers
-\(Non)Warranty GNU Emacs comes with "
+Emacs Tutorial\tLearn-by-doing tutorial for using Emacs efficiently.
+Emacs FAQ\tFrequently asked questions and answers
+\(Non)Warranty\tGNU Emacs comes with "
:face (variable-pitch :slant oblique)
"ABSOLUTELY NO WARRANTY\n"
:face variable-pitch
"\
-Copying Conditions Conditions for redistributing and changing Emacs\n"))
+Copying Conditions\tConditions for redistributing and changing Emacs\n"))
"A list of texts to show in the middle part of splash screens.
Each element in the list should be a list of strings or pairs
`:face FACE', like `fancy-splash-insert' accepts them.")
:group 'initialization)
-(defcustom fancy-splash-delay 5
+(defcustom fancy-splash-delay 10
"*Delay in seconds between splash screens."
:group 'fancy-splash-screen
:type 'integer)
+(defcustom fancy-splash-max-time 60
+ "*Show splash screens for at most this number of seconds.
+Values less than 60 seconds are ignored."
+ :group 'fancy-splash-screen
+ :type 'integer)
+
+
(defcustom fancy-splash-image nil
"*The image to show in the splash screens, or nil for defaults."
:group 'fancy-splash-screen
(defvar fancy-current-text nil)
(defvar fancy-splash-help-echo nil)
+(defvar fancy-splash-stop-time nil)
(defun fancy-splash-insert (&rest args)
(defun fancy-splash-screens-1 (buffer)
"Timer function displaying a splash screen."
+ (when (> (float-time) fancy-splash-stop-time)
+ (throw 'stop-splashing nil))
(unless fancy-current-text
(setq fancy-current-text fancy-splash-text))
(let ((text (car fancy-current-text)))
"Display fancy splash screens when Emacs starts."
(setq fancy-splash-help-echo (startup-echo-area-message))
(switch-to-buffer "GNU Emacs")
+ (setq tab-width 20)
(let ((old-busy-cursor display-busy-cursor)
(splash-buffer (current-buffer))
timer)
- (unwind-protect
- (let ((map (make-sparse-keymap))
- (show-help-function nil))
- (use-local-map map)
- (define-key map [t] 'fancy-splash-default-action)
- (define-key map [mouse-movement] 'ignore)
- (setq cursor-type nil
- display-busy-cursor nil
- buffer-undo-list t
- mode-line-format
- (propertize "---- %b %-" 'face '(:weight bold))
- timer (run-with-timer 0 fancy-splash-delay
- #'fancy-splash-screens-1
- splash-buffer))
- (recursive-edit))
- (cancel-timer timer)
- (setq display-busy-cursor old-busy-cursor)
- (kill-buffer splash-buffer))))
+ (catch 'stop-splashing
+ (unwind-protect
+ (let ((map (make-sparse-keymap))
+ (show-help-function nil))
+ (use-local-map map)
+ (define-key map [t] 'fancy-splash-default-action)
+ (define-key map [mouse-movement] 'ignore)
+ (setq cursor-type nil
+ display-busy-cursor nil
+ buffer-undo-list t
+ mode-line-format
+ (propertize "---- %b %-" 'face '(:weight bold))
+ fancy-splash-stop-time (+ (float-time)
+ (max 60 fancy-splash-max-time))
+ timer (run-with-timer 0 fancy-splash-delay
+ #'fancy-splash-screens-1
+ splash-buffer))
+ (recursive-edit))
+ (cancel-timer timer)
+ (setq display-busy-cursor old-busy-cursor)
+ (kill-buffer splash-buffer)))))
(defun startup-echo-area-message ()