;--------------------------------------------------------------------------- ; Mark Allman (mallman@ir.bbn.com) ; ICSI Center for Internet Research ; ; Last Updated: Mon Dec 1, 2003 ; ; I use this file with XEmacs 21.4.14. There may be some incompatibilities ; with other versions. Thief beware! ; ;--------------------------------------------------------------------------- (message "Reading Allman's startup...") ;--------------------------------------------------------------------------- ; Look around. ;--------------------------------------------------------------------------- (setq debug-on-error t) (defun xwindowsp () "Are we running under X windows? (sdo)" (eq (device-type) 'x)) ;--------------------------------------------------------------------------- ; Screen setup ;--------------------------------------------------------------------------- (cond ((xwindowsp) (set-frame-size (selected-frame) 80 50) (set-specifier top-toolbar-height 0) (set-specifier bottom-toolbar-height 0) (set-specifier scrollbar-width 0) (set-specifier scrollbar-height 0) (set-specifier menubar-visible-p nil))) (setq allow-remote-paths t) ;--------------------------------------------------------------------------- ; Set some general variables... ;--------------------------------------------------------------------------- (setq homedir (getenv "HOME")) (setq message-directory "/dev/null") (setq make-backup-files nil) (setq-default inhibit-startup-message "t") (setq-default require-final-newline "askme") (setq-default tab-stop-list (list 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72)) (setq-default indent-tabs-mode nil) (setq whoami (getenv "USER")) (setq minibuffer-max-depth nil) (put 'eval-expression 'disabled nil) (setq load-path (append (list "/home/mallman/emacs") load-path)) (setq load-path (append (list "/home/mallman/emacs/mh-e-7.84") load-path)) ; (setq load-path (append (list "/home/mallman/emacs/mh-e-8.0.3/emacs/lisp/mh-e") load-path)) (setq load-path (append (list "/home/mallman/emacs/ess") load-path)) (setq load-path (append (list "/home/mallman/emacs/notes/lisp") load-path)) (setq load-path (append (list "/home/mallman/emacs/org-6.24b/lisp") load-path)) (setq ispell-choices-win-default-height 6) (setq-default ispell-program-name "ispell") (setq default-major-mode 'text-mode) (setq browse-url-browser-function 'browse-url-netscape) (setq teach-extended-commands-p nil) (setq my-url "http://www.icir.org/mallman/") (setq ps-lpr-command "lpr") (setq ps-lpr-switches '("-l")) (custom-set-variables '(gutter-buffers-tab-visible-p nil)) (setq progress-feedback-use-echo-area t) (setq interprogram-cut-function nil) (setq interprogram-paste-function nil) (setq allman-browser "open") (line-number-mode 0) (column-number-mode 0) ; make startup faster by preventing garbage collection for a while ; (from sdo) (setq gc-cons-threshold 1000000000) ;--------------------------------------------------------------------------- ; Require some things... ;--------------------------------------------------------------------------- ; (setq uniquify-after-kill-buffer-p t) ; (add-hook 'post-command-hook 'delayed-uniquify-rationalize-file-buffer-names) ; (if (xemacsp) ; (require 'crypt)) ; ; (require 'notes-variables) ; need this one in some fashion --allman (require 'filladapt) ; (require 'man) ;(require 'org-install) ;--------------------------------------------------------------------------- ; Which modes to use for which files... ;--------------------------------------------------------------------------- (setq auto-mode-alist '( ("\\.c$" . c-mode) ("\\.cc$" . c-mode) ("\\.h$" . c-mode) ("\\.l$" . c-mode) ("\\.y$" . c-mode) ("\\.awk$" . c-mode) ("\\.cc$" . c-mode) ("\\.x$" . c-mode) ("\\.s$" . asm-mode) ("\\.p$" . pascal-mode) ("\\.pl$" . perl-mode) ("\\.txt$" . text-mode) ("\\.text$" . text-mode) ("\\.tex$" . latex-mode) ("\\.sm$" . latex-mode) ("\\.el$" . emacs-lisp-mode) ("\\.tcl$" . tcl-mode) ("\\.bib$" . bibtex-mode) ("\\.java$" . java-mode) ("\\.html$" . hm--html-mode) ("[]>:/]Makefile" . makefile-mode) ("[]>:/]\\..*emacs" . emacs-lisp-mode) ("[]>:/]dot.emacs" . emacs-lisp-mode) ("\\.rfc$" . rfc-mode) ("\\.id$" . rfc-mode) ("\\.isl$" . isl-mode) ("\\.sty$" . latex-mode) ("\\.Rprofile" . R-mode) ("\\.xml" . xml-mode) ("\\.mallman" . mail-mode) ; ("\\.asc" . allman-gpg-mode) ; ("[]>:/][0-9][0-9][0-9][0-9][0-9][0-9]$" . notes-mode) ("\\.org\\'" . org-mode) )) (setq interpreter-mode-alist '(("^#!.*csh" . sh-mode) ("^#!.*\\b\\(scope\\|wish\\|tcl\\|tclsh\\|expect\\)" . tcl-mode) ("^#!.*sh\\b" . sh-mode) ("perl" . perl-mode) ("python" . python-mode) ("awk\\b" . awk-mode) ("^:" . sh-mode) )) ;--------------------------------------------------------------------------- ; Always load some libraries... ;--------------------------------------------------------------------------- (load-library "allman-misc") (load-library "mh-e") (load-library "allman-mh2") (load-library "allman-comment") (load-library "allman-svn2") (load-library "allman-git") (load-library "ess-site") (load-library "timer-funcs") (setq mh-identity-pgg-default-user-id "CE3222CE") ;--------------------------------------------------------------------------- ; Access to remote file systems ;--------------------------------------------------------------------------- (setq tramp-default-method "scp") (setq tramp-auto-save-directory "~/.autosave") (setq tramp-default-user "mallman") (setq tramp-unified-filenames t) (require 'tramp) ;--------------------------------------------------------------------------- ; Abbreviation Stuff ;--------------------------------------------------------------------------- (message "Reading abbreviations...") (setq abbrev-file-name (concat homedir "/emacs/abbrevs")) (if (file-exists-p abbrev-file-name) (quietly-read-abbrev-file abbrev-file-name)) ;--------------------------------------------------------------------------- ; Load some thing, only when needed... ;--------------------------------------------------------------------------- (autoload 'gnus "gnus" "Read news." t) (autoload 'gnus-post-news "gnuspost" "Post news." t) (autoload 'allman-customize-c-hook "allman-c-mode") (autoload 'ispell-buffer "ispell") (autoload 'bibtex-mode "bibtex") (autoload 'latex-mode "latex") (autoload 'allman-latex-hook "allman-latex-mode") (autoload 'allman-bibtex-hook "allman-latex-mode") (autoload 'rfc-mode "rfc" "RFC mode" t) (autoload 'webjump "webjump") (autoload 'isl-mode "isl-mode") (autoload 'ssh "ssh") ;--------------------------------------------------------------------------- ; Setup some GNUS stuff... ;--------------------------------------------------------------------------- (if (xwindowsp) (setq gnus-subject-lines-height 10) (setq gnus-subject-lines-height 5)) (setq gnus-startup-file (concat homedir "/.newsrc")) (setq gnus-large-newsgroup 75) (setq gnus-default-article-saver 'gnus-summary-save-in-folder) (setq gnus-novice-user nil) (setq gnus-mail-reply-method 'gnus-mail-reply-using-mhe) (setq gnus-mail-other-window-method 'gnus-mail-other-window-using-mhe) (setq gnus-signature-file nil) (setq gnus-nntp-server "sulawesi-fi.grc.nasa.gov") (setq gnus-local-domain "lerc.nasa.gov") (setq gnus-local-organization "Late Night Hackers, NASA LeRC, Cleveland, Ohio") (setq gnus-nntp-service 119) (setq gnus-use-full-window "t") (setq gnus-thread-indent-level 0) ;--------------------------------------------------------------------------- ; Uniqify settings ;--------------------------------------------------------------------------- ; do these settings work?! (setq uniquify-buffer-name-style 'post-forward) (setq uniquify-after-kill-buffer-p t) (setq uniquify-ignore-buffers-re "^show\+-.*\\|^draft-.*") (require 'uniquify) ;-------------------------------------------------------------------------- ; Bind some keystrokes... ;--------------------------------------------------------------------------- (global-set-key "\es" 'shell) (global-set-key "\eo" 'overwrite-mode) (global-set-key "\em" 'manual-entry) (global-set-key "\C-c\C-d" 'cd) (global-set-key "\C-c\C-v" 'ispell-buffer) (global-set-key "\C-ck" 'allman-kill-line) (global-set-key "\C-h\C-v" 'spaf-variable-apropos) (global-set-key "\C-hA" 'apropos) (global-set-key "\C-cg" 'grep) (global-set-key "\C-c\C-r" 'allman-rgrep) (global-set-key "\C-cr" 'eval-region) (global-set-key "\C-cb" 'eval-current-buffer) (global-set-key "\C-xg" 'gnus) (global-set-key "\C-cl" 'what-page) (global-set-key "\C-xm" 'mh-rmail) (global-set-key "\C-xM" 'allman-mh-rmail-without-inc) (global-set-key "\et" 'ssh) (global-set-key "\C-cf" 'display-filename) (global-set-key "\C-xl" 'goto-line) (global-set-key "\C-c=" 'compare-windows) (global-set-key "\C-x\C-l" 'read-current-file) (global-set-key "\C-xw" 'write-region) (global-set-key "\C-c-" 'shrink-window) (global-set-key "\C-cc" 'allman-comment-out-line) (global-set-key "\C-cu" 'allman-uncomment-out-line) (global-set-key "\e\C-f" 'allman-finger) (global-set-key "\e\C-u" 'upcase-word) (global-set-key "\C-cm" 'allman-highlight-line) (global-set-key "\C-cd" 'insert-date) (global-set-key "\C-cD" 'insert-date-and-time) (global-set-key "\C-c\C-a" 'altavista) (global-set-key "\C-c\C-w" 'webjump) (global-set-key "\C-c\C-u" 'allman-insert-update) (global-set-key "\C-ch" 'allman-insert-my-url) (global-set-key "\C-cM" 'allman-toggle-menus) (global-set-key "\C-x\C-c" 'allman-noop) (global-set-key "\C-cA" 'cvs-add) (global-set-key "\C-ce" 'allman-change-to-case) (global-set-key [button4] 'previous-line) (global-set-key [button5] 'next-line) (global-set-key "\C-c\C-c" 'allman-nuke-frame) (global-set-key "\C-c\C-k" 'allman-nuke-frame) ; (global-set-key "\C-cn" 'notes-index-todays-link) (global-set-key "\C-x\C-n" 'allman-find-notes-file) (global-set-key "\C-cw" 'elb-copy-line) (global-set-key "\e\e" 'eval-expression) (global-set-key "\C-c\C-m" 'allman-fix-newline) (global-set-key "\en" 'allman-start-xterm) (global-set-key "\C-x\C-e" 'allman-find-ephemeral-file) ;--------------------------------------------------------------------------- ; Bind some keystrokes in the minibuffer... ;--------------------------------------------------------------------------- (define-key minibuffer-local-completion-map "\C-i" 'minibuffer-complete) (define-key minibuffer-local-completion-map " " 'minibuffer-complete-word) (define-key minibuffer-local-must-match-map "\C-i" 'minibuffer-complete) (define-key minibuffer-local-must-match-map " " 'minibuffer-complete-word) ;--------------------------------------------------------------------------- ; Some programming definitions and key bindings... ;--------------------------------------------------------------------------- (setq-default compile-command "gmake") (global-set-key "\e\C-c" 'allman-alt-compile) (global-set-key "\e\C-s" 'allman-set-alt-compile) (global-set-key "\e\C-l" 'allman-show-alt-compile) (global-set-key "\e\C-z" 'allman-clear-alt-compile) (global-set-key "\C-xn" 'next-error) (global-set-key "\eg" 'gdb) (require 'cvs) (load-library "allman-cvs") ;--------------------------------------------------------------------------- ; Setup some hooks... ;--------------------------------------------------------------------------- (setq c-mode-hook (list 'allman-customize-c-hook)) (setq c++-mode-hook (list 'allman-customize-c-hook)) (add-hook 'shell-mode-hook 'allman-shell-mode-hook) (setq ksh-mode-hook 'allman-ksh-mode-hook) (setq sh-mode-hook 'allman-ksh-mode-hook) (setq emacs-lisp-mode-hook 'allman-emacs-lisp-hook) (setq perl-mode-hook 'allman-perl-mode-hook) (setq cperl-mode-hook 'allman-perl-mode-hook) (setq gnus-summary-mode-hook 'allman-summary-mode-hook) (setq gnus-startup-hook 'allman-gnus-hook) (setq tcl-mode-hook 'allman-tcl-mode-hook) (setq java-mode-hook 'allman-java-mode-hook) (setq LaTeX-mode-hook 'allman-latex-hook) (add-hook 'bibtex-mode-hook 'allman-bibtex-hook) (add-hook 'cvs-minor-mode-hooks 'allman-cvs-hook) (add-hook 'python-mode-hook 'allman-python-mode-hook) (add-hook 'create-frame-hook 'allman-create-frame-hook) (add-hook 'send-pr-mode-hook 'allman-send-pr-mode-hook) (add-hook 'send-pr-mode-hook 'turn-on-filladapt-mode) (add-hook 'text-mode-hook 'allman-text-mode-hook) (add-hook 'rfc-mode-hook 'allman-rfc-mode-hook) (add-hook 'after-save-hook 'allman-after-save-hook) (add-hook 'auto-save-hook 'allman-after-save-hook) (add-hook 'org-mode-hook 'turn-on-font-lock) ;--------------------------------------------------------------------------- ; Set some colors... ;--------------------------------------------------------------------------- (setq font-latex-fontify-sectioning 1) (cond ((xwindowsp) (set-face-foreground 'primary-selection "White") (set-face-background 'primary-selection "Blue") (set-face-foreground 'secondary-selection "White") (set-face-background 'secondary-selection "Blue") (set-face-foreground 'zmacs-region "White") (set-face-background 'zmacs-region "Blue") (set-face-foreground 'isearch "White") (set-face-background 'isearch "Black") (set-face-foreground 'isearch-secondary "White") (set-face-background 'isearch-secondary "DarkSlateGray") (set-face-foreground 'modeline-mousable "Black") (set-face-foreground 'red "Tomato") (set-face-foreground 'list-mode-item-selected "Black") (set-face-background 'modeline "LightGrey") (set-face-foreground 'modeline "DarkSlateGray") (set-face-background 'modeline-buffer-id "LightGrey") (set-face-foreground 'modeline-buffer-id "blue") (set-face-foreground 'man-bold "yellow") (set-face-foreground 'man-heading "yellow") (set-face-foreground 'text-cursor "DarkSlateGray") (set-face-background 'text-cursor "white") (or (find-face 'message-headers) (make-face 'message-headers)) (or (find-face 'message-header-contents) (make-face 'message-header-contents)) (or (find-face 'message-highlighted-header-contents) (make-face 'message-highlighted-header-contents)) (or (find-face 'message-cited-text) (make-face 'message-cited-text)) (set-face-foreground 'message-headers "Yellow") (set-face-foreground 'message-header-contents "Green") (set-face-foreground 'message-cited-text "LightBlue") (set-face-background 'highlight "Blue") (add-hook 'font-lock-mode-hook '(lambda () (set-face-foreground 'font-lock-comment-face "yellow") (set-face-foreground 'font-lock-keyword-face "white") (set-face-foreground 'font-lock-function-name-face "skyblue") (set-face-foreground 'font-lock-string-face "white") (set-face-foreground 'font-lock-doc-string-face "white") (set-face-foreground 'font-lock-preprocessor-face "white") (set-face-foreground 'font-lock-reference-face "Tomato") (set-face-foreground 'font-lock-reference-face "white") (set-face-foreground 'font-lock-variable-name-face "white") (set-face-foreground 'font-lock-type-face "white") (set-face-underline-p 'font-lock-string-face nil) (make-face-unitalic 'font-lock-string-face nil) (make-face-unitalic 'font-lock-doc-string-face nil) (make-face-bold 'font-lock-preprocessor-face nil) )))) ;--------------------------------------------------------------------------- ; Turn on font-lock... ;--------------------------------------------------------------------------- (cond ((xwindowsp) (add-hook 'emacs-lisp-mode-hook 'turn-on-font-lock) (add-hook 'lisp-mode-hook 'turn-on-font-lock) (add-hook 'c-mode-hook 'turn-on-font-lock) (add-hook 'perl-mode-hook 'turn-on-font-lock) (add-hook 'tex-mode-hook 'turn-on-font-lock) (add-hook 'dired-mode-hook 'turn-on-font-lock) (add-hook 'ksh-mode-hook 'turn-on-font-lock) (add-hook 'sh-mode-hook 'turn-on-font-lock) (add-hook 'shell-mode-hook 'turn-on-font-lock) (add-hook 'LaTeX-mode-hook 'turn-on-font-lock) (add-hook 'bibtex-mode-hook 'turn-on-font-lock) (add-hook 'pascal-mode-hook 'turn-on-font-lock) (add-hook 'asm-mode-hook 'turn-on-font-lock) (add-hook 'tcl-mode-hook 'turn-on-font-lock) (add-hook 'makefile-mode-hook 'turn-on-font-lock) (add-hook 'hm--html-mode-hook 'turn-on-font-lock) (add-hook 'send-pr-mode-hook 'turn-on-font-lock) (add-hook 'xml-mode-hook 'turn-on-font-lock) (add-hook 'Manual-mode-hook 'turn-on-font-lock) (add-hook 'bro-mode 'turn-on-font-lock) )) ;--------------------------------------------------------------------------- ; Run some things upon startup... ;--------------------------------------------------------------------------- (desktop-load-default) (desktop-read) (setq desktop-buffers-not-to-save "\\(^nn\\.a[0-9]+\\|\\.log\\|(ftp)\\|^TAGS\\|Entries\\)$\\|^\\+") (if (xwindowsp) (gnuserv-start)) (message "Reading Allman's startup...done")