comparison lisp/startup.el @ 83901:81f157bfa93c

(fancy-startup-text): Renamed from fancy-splash-text. Several items removed, simplified, or put on one line. (fancy-about-text): Add substantial contents, part of startup text. (fancy-splash-head): Make "GNU" or "GNU/Linux" a link. (normal-splash-screen): Call normal-mouse-startup-screen, normal-no-mouse-startup-screen, or normal-about-screen. (normal-mouse-startup-screen): New fn, broken out, shortened. (normal-no-mouse-startup-screen): New fn, broken out. (normal-about-screen): New function, contents all new.
author Richard M. Stallman <rms@gnu.org>
date Wed, 05 Sep 2007 19:58:50 +0000
parents 5e1dbcacecd3
children 034769070421
comparison
equal deleted inserted replaced
83900:ab4f581c67b9 83901:81f157bfa93c
1132 1132
1133 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1133 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1134 ;;; Fancy splash screen 1134 ;;; Fancy splash screen
1135 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1135 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1136 1136
1137 (defvar fancy-splash-text 1137 (defvar fancy-startup-text
1138 '((:face (variable-pitch :weight bold) 1138 '((:face variable-pitch
1139 "Important Help menu items:\n" 1139 :link ("Emacs Tutorial" (lambda (button) (help-with-tutorial)))
1140 :face variable-pitch 1140 "\tLearn basic Emacs keystroke commands"
1141 :link ("Emacs Tutorial" (lambda (button) (help-with-tutorial))) 1141 (lambda ()
1142 "\tLearn how to use Emacs efficiently" 1142 (let* ((en "TUTORIAL")
1143 (lambda () 1143 (tut (or (get-language-info current-language-environment
1144 (let* ((en "TUTORIAL") 1144 'tutorial)
1145 (tut (or (get-language-info current-language-environment 1145 en))
1146 'tutorial) 1146 (title (with-temp-buffer
1147 en)) 1147 (insert-file-contents
1148 (title (with-temp-buffer 1148 (expand-file-name tut tutorial-directory)
1149 (insert-file-contents 1149 nil 0 256)
1150 (expand-file-name tut tutorial-directory) 1150 (search-forward ".")
1151 nil 0 256) 1151 (buffer-substring (point-min) (1- (point))))))
1152 (search-forward ".") 1152 ;; If there is a specific tutorial for the current language
1153 (buffer-substring (point-min) (1- (point)))))) 1153 ;; environment and it is not English, append its title.
1154 ;; If there is a specific tutorial for the current language 1154 (if (string= en tut)
1155 ;; environment and it is not English, append its title. 1155 ""
1156 (if (string= en tut) 1156 (concat " (" title ")"))))
1157 "" 1157 "\n"
1158 (concat " (" title ")")))) 1158 :face variable-pitch
1159 "\n" 1159 :link ("View Emacs Manual" (lambda (button) (info-emacs-manual)))
1160 :face variable-pitch 1160 "\tView the Emacs manual using Info\n"
1161 :link ("Emacs FAQ" (lambda (button) (view-emacs-FAQ))) 1161 :link ("Emacs Guided Tour"
1162 "\tFrequently asked questions and answers\n" 1162 (lambda (button) (browse-url "http://www.gnu.org/software/emacs/tour/")))
1163 :link ("View Emacs Manual" (lambda (button) (info-emacs-manual))) 1163 "\tOverview of Emacs features\n"
1164 "\tView the Emacs manual using Info\n" 1164 :link ("Absence of Warranty" (lambda (button) (describe-no-warranty)))
1165 :link ("Absence of Warranty" (lambda (button) (describe-no-warranty))) 1165 "\tGNU Emacs comes with "
1166 "\tGNU Emacs comes with " 1166 :face (variable-pitch :slant oblique)
1167 :face (variable-pitch :slant oblique) 1167 "ABSOLUTELY NO WARRANTY\n"
1168 "ABSOLUTELY NO WARRANTY\n" 1168 :face variable-pitch
1169 :face variable-pitch 1169 :link ("Copying Conditions" (lambda (button) (describe-copying)))
1170 :link ("Copying Conditions" (lambda (button) (describe-copying))) 1170 "\tConditions for redistributing and changing Emacs\n"
1171 "\tConditions for redistributing and changing Emacs\n" 1171 :link ("More Manuals / Ordering" (lambda (button) (view-order-manuals)))
1172 :link ("Getting New Versions" (lambda (button) (describe-distribution))) 1172 "\tThe FSF sells printed copies of several manuals for Emacs\n"
1173 "\tHow to obtain the latest version of Emacs\n" 1173 "\n"
1174 :link ("More Manuals / Ordering Manuals" (lambda (button) (view-order-manuals))) 1174 "To start... "
1175 " Buying printed manuals from the FSF\n") 1175 :link ("Open a File"
1176 (:face (variable-pitch :weight bold) 1176 (lambda (button) (call-interactively 'find-file)))
1177 "Useful tasks:\n" 1177 "\t"
1178 :face variable-pitch 1178 :link ("Open Home Directory"
1179 :link ("Visit New File" 1179 (lambda (button) (dired "~")))
1180 (lambda (button) (call-interactively 'find-file))) 1180 "\n"))
1181 "\tSpecify a new file's name, to edit the file\n"
1182 :link ("Open Home Directory"
1183 (lambda (button) (dired "~")))
1184 "\tOpen your home directory, to operate on its files\n"
1185 :link ("Open *scratch* buffer"
1186 (lambda (button) (switch-to-buffer (get-buffer-create "*scratch*"))))
1187 "\tOpen buffer for notes you don't want to save\n"
1188 :link ("Customize Startup"
1189 (lambda (button) (customize-group 'initialization)))
1190 "\tChange initialization settings including this screen\n"
1191
1192 "\nEmacs Guided Tour\tSee "
1193 :link ("http://www.gnu.org/software/emacs/tour/"
1194 (lambda (button) (browse-url "http://www.gnu.org/software/emacs/tour/")))
1195
1196 ))
1197 "A list of texts to show in the middle part of splash screens. 1181 "A list of texts to show in the middle part of splash screens.
1198 Each element in the list should be a list of strings or pairs 1182 Each element in the list should be a list of strings or pairs
1199 `:face FACE', like `fancy-splash-insert' accepts them.") 1183 `:face FACE', like `fancy-splash-insert' accepts them.")
1200 1184
1201 (defvar fancy-about-text 1185 (defvar fancy-about-text
1202 '((:face variable-pitch 1186 '((:face variable-pitch
1203 )) 1187 :link ("GNU and Freedom" (lambda (button) (describe-project)))
1188 "\tWhy we developed GNU Emacs, and the GNU operating system\n"
1189 :link ("Absence of Warranty" (lambda (button) (describe-no-warranty)))
1190 "\tGNU Emacs comes with "
1191 :face (variable-pitch :slant oblique)
1192 "ABSOLUTELY NO WARRANTY\n"
1193 :face variable-pitch
1194 :link ("Copying Conditions" (lambda (button) (describe-copying)))
1195 "\tConditions for redistributing and changing Emacs\n"
1196 :link ("Getting New Versions" (lambda (button) (describe-distribution)))
1197 "\tHow to obtain the latest version of Emacs\n"
1198 :link ("More Manuals / Ordering Manuals" (lambda (button) (view-order-manuals)))
1199 " Buying printed manuals from the FSF\n"
1200 "\n"
1201 :link ("Emacs Tutorial" (lambda (button) (help-with-tutorial)))
1202 "\tLearn basic Emacs keystroke commands"
1203 (lambda ()
1204 (let* ((en "TUTORIAL")
1205 (tut (or (get-language-info current-language-environment
1206 'tutorial)
1207 en))
1208 (title (with-temp-buffer
1209 (insert-file-contents
1210 (expand-file-name tut tutorial-directory)
1211 nil 0 256)
1212 (search-forward ".")
1213 (buffer-substring (point-min) (1- (point))))))
1214 ;; If there is a specific tutorial for the current language
1215 ;; environment and it is not English, append its title.
1216 (if (string= en tut)
1217 ""
1218 (concat " (" title ")"))))
1219 "\n"
1220 :link ("Emacs Guided Tour"
1221 (lambda (button) (browse-url "http://www.gnu.org/software/emacs/tour/")))
1222 "\tSee an overview of the many facilities of GNU Emacs"
1223 ))
1204 "A list of texts to show in the middle part of the About screen. 1224 "A list of texts to show in the middle part of the About screen.
1205 Each element in the list should be a list of strings or pairs 1225 Each element in the list should be a list of strings or pairs
1206 `:face FACE', like `fancy-splash-insert' accepts them.") 1226 `:face FACE', like `fancy-splash-insert' accepts them.")
1207 1227
1208 1228
1289 'face 'default 1309 'face 'default
1290 'help-echo "mouse-2: browse http://www.gnu.org/" 1310 'help-echo "mouse-2: browse http://www.gnu.org/"
1291 'action (lambda (button) (browse-url "http://www.gnu.org/")) 1311 'action (lambda (button) (browse-url "http://www.gnu.org/"))
1292 'follow-link t) 1312 'follow-link t)
1293 (insert "\n")))) 1313 (insert "\n"))))
1314 (insert "\n")
1294 (fancy-splash-insert 1315 (fancy-splash-insert
1295 :face '(variable-pitch :foreground "red") 1316 :face '(variable-pitch :foreground "red")
1317 "GNU Emacs is one component of the "
1318 :link
1296 (if (eq system-type 'gnu/linux) 1319 (if (eq system-type 'gnu/linux)
1297 "GNU Emacs is one component of the GNU/Linux operating system." 1320 '("GNU/Linux" (lambda (button) (browse-url "http://www.gnu.org/gnu/linux-and-gnu.html")))
1298 "GNU Emacs is one component of the GNU operating system.")) 1321 '("GNU" (lambda (button) (describe-project))))
1322 " operating system.")
1299 (insert "\n") 1323 (insert "\n")
1300 (if startup 1324 (if startup
1301 (fancy-splash-insert 1325 (fancy-splash-insert
1302 :face 'variable-pitch 1326 :face 'variable-pitch
1303 "You can do basic editing with the menu bar and scroll bar \ 1327 "You can do basic editing with the menu bar and scroll bar \
1395 (if pure-space-overflow 1419 (if pure-space-overflow
1396 (insert "\ 1420 (insert "\
1397 Warning Warning!!! Pure space overflow !!!Warning Warning 1421 Warning Warning!!! Pure space overflow !!!Warning Warning
1398 \(See the node Pure Storage in the Lisp manual for details.)\n")) 1422 \(See the node Pure Storage in the Lisp manual for details.)\n"))
1399 (fancy-splash-head startup) 1423 (fancy-splash-head startup)
1400 (dolist (text fancy-splash-text) 1424 (dolist (text fancy-startup-text)
1401 (apply #'fancy-splash-insert text) 1425 (apply #'fancy-splash-insert text)
1402 (insert "\n")) 1426 (insert "\n"))
1403 (skip-chars-backward "\n") 1427 (skip-chars-backward "\n")
1404 (delete-region (point) (point-max)) 1428 (delete-region (point) (point-max))
1405 (insert "\n") 1429 (insert "\n")
1471 (insert 1495 (insert
1472 (if (eq system-type 'gnu/linux) 1496 (if (eq system-type 'gnu/linux)
1473 ", one component of the GNU/Linux operating system.\n" 1497 ", one component of the GNU/Linux operating system.\n"
1474 ", a part of the GNU operating system.\n")) 1498 ", a part of the GNU operating system.\n"))
1475 1499
1500 (insert "\n")
1501
1476 (if startup 1502 (if startup
1477 (if (display-mouse-p) 1503 (if (display-mouse-p)
1478 ;; The user can use the mouse to activate menus 1504 ;; The user can use the mouse to activate menus
1479 ;; so give help in terms of menu items. 1505 ;; so give help in terms of menu items.
1480 (progn 1506 (normal-mouse-startup-screen)
1481 (insert "\
1482 You can do basic editing with the menu bar and scroll bar using the mouse.
1483 To quit a partially entered command, type Control-g.\n")
1484
1485 (insert "\nImportant Help menu items:\n")
1486 (insert-button "Emacs Tutorial"
1487 'action (lambda (button) (help-with-tutorial))
1488 'follow-link t)
1489 (insert "\t\tLearn how to use Emacs efficiently\n")
1490 (insert-button "Emacs FAQ"
1491 'action (lambda (button) (view-emacs-FAQ))
1492 'follow-link t)
1493 (insert "\t\tFrequently asked questions and answers\n")
1494 (insert-button "Read the Emacs Manual"
1495 'action (lambda (button) (info-emacs-manual))
1496 'follow-link t)
1497 (insert "\tView the Emacs manual using Info\n")
1498 (insert-button "\(Non)Warranty"
1499 'action (lambda (button) (describe-no-warranty))
1500 'follow-link t)
1501 (insert "\t\tGNU Emacs comes with ABSOLUTELY NO WARRANTY\n")
1502 (insert-button "Copying Conditions"
1503 'action (lambda (button) (describe-copying))
1504 'follow-link t)
1505 (insert "\tConditions for redistributing and changing Emacs\n")
1506 (insert-button "Getting New Versions"
1507 'action (lambda (button) (describe-distribution))
1508 'follow-link t)
1509 (insert "\tHow to obtain the latest version of Emacs\n")
1510 (insert-button "More Manuals / Ordering Manuals"
1511 'action (lambda (button) (view-order-manuals))
1512 'follow-link t)
1513 (insert " How to order printed manuals from the FSF\n")
1514
1515 (insert "\nUseful tasks:\n")
1516 (insert-button "Visit New File"
1517 'action (lambda (button) (call-interactively 'find-file))
1518 'follow-link t)
1519 (insert "\t\tSpecify a new file's name, to edit the file\n")
1520 (insert-button "Open Home Directory"
1521 'action (lambda (button) (dired "~"))
1522 'follow-link t)
1523 (insert "\tOpen your home directory, to operate on its files\n")
1524 (insert-button "Open *scratch* buffer"
1525 'action (lambda (button) (switch-to-buffer
1526 (get-buffer-create "*scratch*")))
1527 'follow-link t)
1528 (insert "\tOpen buffer for notes you don't want to save\n")
1529 (insert-button "Customize Startup"
1530 'action (lambda (button) (customize-group 'initialization))
1531 'follow-link t)
1532 (insert "\tChange initialization settings including this screen\n")
1533
1534 (insert "\n" (emacs-version)
1535 "\n" emacs-copyright))
1536 1507
1537 ;; No mouse menus, so give help using kbd commands. 1508 ;; No mouse menus, so give help using kbd commands.
1538 1509 (normal-no-mouse-startup-screen))
1539 ;; If keys have their default meanings, 1510
1540 ;; use precomputed string to save lots of time. 1511 (normal-about-screen))
1541 (if (and (eq (key-binding "\C-h") 'help-command)
1542 (eq (key-binding "\C-xu") 'advertised-undo)
1543 (eq (key-binding "\C-x\C-c") 'save-buffers-kill-terminal)
1544 (eq (key-binding "\C-ht") 'help-with-tutorial)
1545 (eq (key-binding "\C-hi") 'info)
1546 (eq (key-binding "\C-hr") 'info-emacs-manual)
1547 (eq (key-binding "\C-h\C-n") 'view-emacs-news))
1548 (progn
1549 (insert "
1550 Get help\t C-h (Hold down CTRL and press h)
1551 ")
1552 (insert-button "Emacs manual"
1553 'action (lambda (button) (info-emacs-manual))
1554 'follow-link t)
1555 (insert " C-h r\t")
1556 (insert-button "Browse manuals"
1557 'action (lambda (button) (Info-directory))
1558 'follow-link t)
1559 (insert "\t C-h i
1560 ")
1561 (insert-button "Emacs tutorial"
1562 'action (lambda (button) (help-with-tutorial))
1563 'follow-link t)
1564 (insert " C-h t\tUndo changes\t C-x u
1565 ")
1566 (insert-button "Buy manuals"
1567 'action (lambda (button) (view-order-manuals))
1568 'follow-link t)
1569 (insert "\t C-h C-m\tExit Emacs\t C-x C-c"))
1570
1571 (insert (format "
1572 Get help\t %s
1573 "
1574 (let ((where (where-is-internal
1575 'help-command nil t)))
1576 (if where
1577 (key-description where)
1578 "M-x help"))))
1579 (insert-button "Emacs manual"
1580 'action (lambda (button) (info-emacs-manual))
1581 'follow-link t)
1582 (insert (substitute-command-keys"\t \\[info-emacs-manual]\t"))
1583 (insert-button "Browse manuals"
1584 'action (lambda (button) (Info-directory))
1585 'follow-link t)
1586 (insert (substitute-command-keys "\t \\[info]
1587 "))
1588 (insert-button "Emacs tutorial"
1589 'action (lambda (button) (help-with-tutorial))
1590 'follow-link t)
1591 (insert (substitute-command-keys
1592 "\t \\[help-with-tutorial]\tUndo changes\t \\[advertised-undo]
1593 "))
1594 (insert-button "Buy manuals"
1595 'action (lambda (button) (view-order-manuals))
1596 'follow-link t)
1597 (insert (substitute-command-keys
1598 "\t \\[view-order-manuals]\tExit Emacs\t \\[save-buffers-kill-terminal]")))
1599
1600 ;; Say how to use the menu bar with the keyboard.
1601 (insert "\n")
1602 (insert-button "Activate menubar"
1603 'action (lambda (button) (tmm-menubar))
1604 'follow-link t)
1605 (if (and (eq (key-binding "\M-`") 'tmm-menubar)
1606 (eq (key-binding [f10]) 'tmm-menubar))
1607 (insert " F10 or ESC ` or M-`")
1608 (insert (substitute-command-keys " \\[tmm-menubar]")))
1609
1610 ;; Many users seem to have problems with these.
1611 (insert "
1612 \(`C-' means use the CTRL key. `M-' means use the Meta (or Alt) key.
1613 If you have no Meta key, you may instead type ESC followed by the character.)")
1614
1615 ;; Insert links to useful tasks
1616 (insert "\nUseful tasks:\n")
1617
1618 (insert-button "Visit New File"
1619 'action (lambda (button) (call-interactively 'find-file))
1620 'follow-link t)
1621 (insert "\t\t\t")
1622 (insert-button "Open Home Directory"
1623 'action (lambda (button) (dired "~"))
1624 'follow-link t)
1625 (insert "\n")
1626
1627 (insert-button "Customize Startup"
1628 'action (lambda (button) (customize-group 'initialization))
1629 'follow-link t)
1630 (insert "\t\t")
1631 (insert-button "Open *scratch* buffer"
1632 'action (lambda (button) (switch-to-buffer
1633 (get-buffer-create "*scratch*")))
1634 'follow-link t)
1635 (insert "\n")
1636
1637 (insert "\n" (emacs-version)
1638 "\n" emacs-copyright)
1639
1640 (if (and (eq (key-binding "\C-h\C-c") 'describe-copying)
1641 (eq (key-binding "\C-h\C-d") 'describe-distribution)
1642 (eq (key-binding "\C-h\C-w") 'describe-no-warranty))
1643 (progn
1644 (insert
1645 "\n
1646 GNU Emacs comes with ABSOLUTELY NO WARRANTY; type C-h C-w for ")
1647 (insert-button "full details"
1648 'action (lambda (button) (describe-no-warranty))
1649 'follow-link t)
1650 (insert ".
1651 Emacs is Free Software--Free as in Freedom--so you can redistribute copies
1652 of Emacs and modify it; type C-h C-c to see ")
1653 (insert-button "the conditions"
1654 'action (lambda (button) (describe-copying))
1655 'follow-link t)
1656 (insert ".
1657 Type C-h C-d for information on ")
1658 (insert-button "getting the latest version"
1659 'action (lambda (button) (describe-distribution))
1660 'follow-link t)
1661 (insert "."))
1662 (insert (substitute-command-keys
1663 "\n
1664 GNU Emacs comes with ABSOLUTELY NO WARRANTY; type \\[describe-no-warranty] for "))
1665 (insert-button "full details"
1666 'action (lambda (button) (describe-no-warranty))
1667 'follow-link t)
1668 (insert (substitute-command-keys ".
1669 Emacs is Free Software--Free as in Freedom--so you can redistribute copies
1670 of Emacs and modify it; type \\[describe-copying] to see "))
1671 (insert-button "the conditions"
1672 'action (lambda (button) (describe-copying))
1673 'follow-link t)
1674 (insert (substitute-command-keys".
1675 Type \\[describe-distribution] for information on "))
1676 (insert-button "getting the latest version"
1677 'action (lambda (button) (describe-distribution))
1678 'follow-link t)
1679 (insert ".")))
1680
1681 ;; About screen
1682 (insert "\n" (emacs-version) "\n" emacs-copyright "\n")
1683 )
1684 1512
1685 ;; The rest of the startup screen is the same on all 1513 ;; The rest of the startup screen is the same on all
1686 ;; kinds of terminals. 1514 ;; kinds of terminals.
1687 1515
1688 ;; Give information on recovering, if there was a crash. 1516 ;; Give information on recovering, if there was a crash.
1713 (view-mode-enter nil 'kill-buffer)) 1541 (view-mode-enter nil 'kill-buffer))
1714 (switch-to-buffer "*About GNU Emacs*") 1542 (switch-to-buffer "*About GNU Emacs*")
1715 (if startup (rename-buffer "*GNU Emacs*" t)) 1543 (if startup (rename-buffer "*GNU Emacs*" t))
1716 (goto-char (point-min))))) 1544 (goto-char (point-min)))))
1717 1545
1546 (defun normal-mouse-startup-screen ()
1547 ;; The user can use the mouse to activate menus
1548 ;; so give help in terms of menu items.
1549 (insert "\
1550 You can do basic editing with the menu bar and scroll bar using the mouse.
1551 To quit a partially entered command, type Control-g.\n")
1552
1553 (insert "\nImportant Help menu items:\n")
1554 (insert-button "Emacs Tutorial"
1555 'action (lambda (button) (help-with-tutorial))
1556 'follow-link t)
1557 (insert "\t\tLearn basic Emacs keystroke commands\n")
1558 (insert-button "Read the Emacs Manual"
1559 'action (lambda (button) (info-emacs-manual))
1560 'follow-link t)
1561 (insert "\tView the Emacs manual using Info\n")
1562 (insert-button "\(Non)Warranty"
1563 'action (lambda (button) (describe-no-warranty))
1564 'follow-link t)
1565 (insert "\t\tGNU Emacs comes with ABSOLUTELY NO WARRANTY\n")
1566 (insert-button "Copying Conditions"
1567 'action (lambda (button) (describe-copying))
1568 'follow-link t)
1569 (insert "\tConditions for redistributing and changing Emacs\n")
1570 (insert-button "More Manuals / Ordering Manuals"
1571 'action (lambda (button) (view-order-manuals))
1572 'follow-link t)
1573 (insert " How to order printed manuals from the FSF\n")
1574
1575 (insert "\nUseful tasks:\n")
1576 (insert-button "Visit New File"
1577 'action (lambda (button) (call-interactively 'find-file))
1578 'follow-link t)
1579 (insert "\t\tSpecify a new file's name, to edit the file\n")
1580 (insert-button "Open Home Directory"
1581 'action (lambda (button) (dired "~"))
1582 'follow-link t)
1583 (insert "\tOpen your home directory, to operate on its files\n")
1584 (insert-button "Customize Startup"
1585 'action (lambda (button) (customize-group 'initialization))
1586 'follow-link t)
1587 (insert "\tChange initialization settings including this screen\n")
1588
1589 (insert "\n" (emacs-version)
1590 "\n" emacs-copyright))
1591
1592 ;; No mouse menus, so give help using kbd commands.
1593 (defun normal-no-mouse-startup-screen ()
1594
1595 ;; If keys have their default meanings,
1596 ;; use precomputed string to save lots of time.
1597 (if (and (eq (key-binding "\C-h") 'help-command)
1598 (eq (key-binding "\C-xu") 'advertised-undo)
1599 (eq (key-binding "\C-x\C-c") 'save-buffers-kill-terminal)
1600 (eq (key-binding "\C-ht") 'help-with-tutorial)
1601 (eq (key-binding "\C-hi") 'info)
1602 (eq (key-binding "\C-hr") 'info-emacs-manual)
1603 (eq (key-binding "\C-h\C-n") 'view-emacs-news))
1604 (progn
1605 (insert "
1606 Get help\t C-h (Hold down CTRL and press h)
1607 ")
1608 (insert-button "Emacs manual"
1609 'action (lambda (button) (info-emacs-manual))
1610 'follow-link t)
1611 (insert " C-h r\t")
1612 (insert-button "Browse manuals"
1613 'action (lambda (button) (Info-directory))
1614 'follow-link t)
1615 (insert "\t C-h i
1616 ")
1617 (insert-button "Emacs tutorial"
1618 'action (lambda (button) (help-with-tutorial))
1619 'follow-link t)
1620 (insert " C-h t\tUndo changes\t C-x u
1621 ")
1622 (insert-button "Buy manuals"
1623 'action (lambda (button) (view-order-manuals))
1624 'follow-link t)
1625 (insert "\t C-h C-m\tExit Emacs\t C-x C-c"))
1626
1627 (insert (format "
1628 Get help\t %s
1629 "
1630 (let ((where (where-is-internal
1631 'help-command nil t)))
1632 (if where
1633 (key-description where)
1634 "M-x help"))))
1635 (insert-button "Emacs manual"
1636 'action (lambda (button) (info-emacs-manual))
1637 'follow-link t)
1638 (insert (substitute-command-keys"\t \\[info-emacs-manual]\t"))
1639 (insert-button "Browse manuals"
1640 'action (lambda (button) (Info-directory))
1641 'follow-link t)
1642 (insert (substitute-command-keys "\t \\[info]
1643 "))
1644 (insert-button "Emacs tutorial"
1645 'action (lambda (button) (help-with-tutorial))
1646 'follow-link t)
1647 (insert (substitute-command-keys
1648 "\t \\[help-with-tutorial]\tUndo changes\t \\[advertised-undo]
1649 "))
1650 (insert-button "Buy manuals"
1651 'action (lambda (button) (view-order-manuals))
1652 'follow-link t)
1653 (insert (substitute-command-keys
1654 "\t \\[view-order-manuals]\tExit Emacs\t \\[save-buffers-kill-terminal]")))
1655
1656 ;; Say how to use the menu bar with the keyboard.
1657 (insert "\n")
1658 (insert-button "Activate menubar"
1659 'action (lambda (button) (tmm-menubar))
1660 'follow-link t)
1661 (if (and (eq (key-binding "\M-`") 'tmm-menubar)
1662 (eq (key-binding [f10]) 'tmm-menubar))
1663 (insert " F10 or ESC ` or M-`")
1664 (insert (substitute-command-keys " \\[tmm-menubar]")))
1665
1666 ;; Many users seem to have problems with these.
1667 (insert "
1668 \(`C-' means use the CTRL key. `M-' means use the Meta (or Alt) key.
1669 If you have no Meta key, you may instead type ESC followed by the character.)")
1670
1671 ;; Insert links to useful tasks
1672 (insert "\nUseful tasks:\n")
1673
1674 (insert-button "Visit New File"
1675 'action (lambda (button) (call-interactively 'find-file))
1676 'follow-link t)
1677 (insert "\t\t\t")
1678 (insert-button "Open Home Directory"
1679 'action (lambda (button) (dired "~"))
1680 'follow-link t)
1681 (insert "\n")
1682
1683 (insert-button "Customize Startup"
1684 'action (lambda (button) (customize-group 'initialization))
1685 'follow-link t)
1686 (insert "\t\t")
1687 (insert-button "Open *scratch* buffer"
1688 'action (lambda (button) (switch-to-buffer
1689 (get-buffer-create "*scratch*")))
1690 'follow-link t)
1691 (insert "\n")
1692 (insert "\n" (emacs-version) "\n" emacs-copyright "\n")
1693
1694 (if (and (eq (key-binding "\C-h\C-c") 'describe-copying)
1695 (eq (key-binding "\C-h\C-d") 'describe-distribution)
1696 (eq (key-binding "\C-h\C-w") 'describe-no-warranty))
1697 (progn
1698 (insert
1699 "\n
1700 GNU Emacs comes with ABSOLUTELY NO WARRANTY; type C-h C-w for ")
1701 (insert-button "full details"
1702 'action (lambda (button) (describe-no-warranty))
1703 'follow-link t)
1704 (insert ".
1705 Emacs is Free Software--Free as in Freedom--so you can redistribute copies
1706 of Emacs and modify it; type C-h C-c to see ")
1707 (insert-button "the conditions"
1708 'action (lambda (button) (describe-copying))
1709 'follow-link t)
1710 (insert ".
1711 Type C-h C-d for information on ")
1712 (insert-button "getting the latest version"
1713 'action (lambda (button) (describe-distribution))
1714 'follow-link t)
1715 (insert "."))
1716 (insert (substitute-command-keys
1717 "\n
1718 GNU Emacs comes with ABSOLUTELY NO WARRANTY; type \\[describe-no-warranty] for "))
1719 (insert-button "full details"
1720 'action (lambda (button) (describe-no-warranty))
1721 'follow-link t)
1722 (insert (substitute-command-keys ".
1723 Emacs is Free Software--Free as in Freedom--so you can redistribute copies
1724 of Emacs and modify it; type \\[describe-copying] to see "))
1725 (insert-button "the conditions"
1726 'action (lambda (button) (describe-copying))
1727 'follow-link t)
1728 (insert (substitute-command-keys".
1729 Type \\[describe-distribution] for information on "))
1730 (insert-button "getting the latest version"
1731 'action (lambda (button) (describe-distribution))
1732 'follow-link t)
1733 (insert ".")))
1734
1735 (defun normal-about-screen ()
1736 (insert "\n" (emacs-version) "\n" emacs-copyright "\n\n")
1737
1738 (insert "To follow a link, click Mouse-1 on it, or move to it and type RET.\n\n")
1739
1740 (insert-button "GNU and Freedom"
1741 'action (lambda (button) (describe-project))
1742 'follow-link t)
1743 (insert "\t\tWhy we developed GNU Emacs and the GNU system\n")
1744
1745 (insert-button "Absence of Warranty"
1746 'action (lambda (button) (describe-no-warranty))
1747 'follow-link t)
1748 (insert "\tGNU Emacs comes with ABSOLUTELY NO WARRANTY\n")
1749
1750 (insert-button "Copying Conditions"
1751 'action (lambda (button) (describe-copying))
1752 'follow-link t)
1753 (insert "\tConditions for redistributing and changing Emacs\n")
1754
1755 (insert-button "Getting New Versions"
1756 'action (lambda (button) (describe-distribution))
1757 'follow-link t)
1758 (insert "\tHow to get the latest version of GNU Emacs\n")
1759
1760 (insert-button "More Manuals / Ordering Manuals"
1761 'action (lambda (button) (view-order-manuals))
1762 'follow-link t)
1763 (insert "\tBuying printed manuals from the FSF\n"))
1718 1764
1719 (defun startup-echo-area-message () 1765 (defun startup-echo-area-message ()
1720 (if (eq (key-binding "\C-h\C-p") 'describe-project) 1766 (if (eq (key-binding "\C-h\C-p") 'describe-project)
1721 "For information about the GNU system and GNU/Linux, type C-h C-p." 1767 "For information about the GNU system and GNU/Linux, type C-h C-p."
1722 (substitute-command-keys 1768 (substitute-command-keys