Skip to content

Instantly share code, notes, and snippets.

@arnested
Created February 23, 2012 19:06
Show Gist options
  • Save arnested/1894408 to your computer and use it in GitHub Desktop.
Save arnested/1894408 to your computer and use it in GitHub Desktop.
;;; .emacs --- Arne J,Ax(Brgensens .emacs file
;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
;; 2003, 2004, 2005, 2006 Arne J,Ax(Brgensen
;; Author: Arne J,Ax(Brgensen <arne@arnested.dk>
;; This file is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2 of the License, or (at
;; your option) any later version.
;; This program is distributed in the hope that it will be useful, but
;; WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;; General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
;;; Commentary:
;; This .emacs contains things that will only work in Emacs 22.
;;; Code:
;;; relocate and load customs (so we don't clutter this file with them)
(setq custom-file "~/.emacs.d/custom.el")
(load custom-file)
;; relocate other files so we don't clutter $HOME
(setq save-place-file "~/.emacs.d/save-places")
(setq abbrev-file-name "~/.emacs.d/abbrev_defs")
(setq url-configuration-directory "~/.emacs.d/url.d")
(setq gamegrid-user-score-file-directory "~/.emacs.d/games.d")
(setq auto-save-list-file-prefix "~/.emacs.d/auto-save-list.d/")
(setq gnus-home-directory "~/.emacs.d/gnus.d/")
(setq gnus-directory "~/.emacs.d/gnus.d/News/")
(setq message-directory "~/.emacs.d/gnus.d/Mail/")
(setq nnfolder-directory "~/.emacs.d/gnus.d/Mail/archive/")
(setq gnus-init-file "~/.emacs.d/gnus.d/init")
;; make emacs be more like in the ol' days
(setq resize-mini-windows nil)
(blink-cursor-mode 0)
(global-set-key [home] 'beginning-of-buffer)
(global-set-key [end] 'end-of-buffer)
;; editing convenience
(setq visible-bell t)
(setq default-indicate-buffer-boundaries t)
(when window-system (msb-mode 1))
(transient-mark-mode 1)
(mouse-wheel-mode 1)
(show-paren-mode 1)
(auto-compression-mode 1)
(global-font-lock-mode 1 nil)
(put 'narrow-to-region 'disabled nil)
(put 'iconify-or-deiconify-frame 'disabled t)
;; personalization
(setq user-full-name "Arne J,Ax(Brgensen")
(setenv "ORGANIZATION" "Arne J,Ax(Brgensen")
;; charset stuff
(require 'ucs-tables)
(set-language-environment "UTF-8")
(modify-coding-system-alist 'file "" 'utf-8)
;; localization
(setq default-input-method "danish-postfix")
(setq ispell-dictionary "dansk")
;; (eval-after-load 'ispell
;; '(when ispell-aspell-supports-utf8
;; (setq ispell-extra-args
;; (append ispell-extra-args '("--encoding" "none")))))
(add-hook 'LaTeX-mode-hook (lambda nil
(setq ispell-local-dictionary "american")))
(setq sentence-end-double-space nil)
;; printer etc.
(setq ps-printer-name "hl5040")
;; here I keep locally downloaded and developed libraries
;;(add-to-list 'load-path "~/usr/src/gnus/lisp")
(add-to-list 'load-path "~/.emacs.d/misc.d")
(load-library "my-autoload")
(add-to-list 'load-path "~/.emacs.d/misc.d/nxml-mode-20041004")
(load-library "rng-auto")
;; now require/autoload them
(load "50cperl")
;(require 'php-mode)
(require 'apache-mode)
(require 'dns-mode)
(require 'php-mode)
(autoload 'css-mode "css-mode")
;; auto-mode-alist
(add-to-list 'auto-mode-alist '("\\.soa\\'" . dns-mode))
(add-to-list 'auto-mode-alist '("\\.css\\'" . css-mode))
;; misc
(add-hook 'text-mode-hook 'turn-on-auto-fill)
(setq browse-url-browser-function 'browse-url-gnome-moz)
(add-hook 'text-mode-hook (lambda nil
(set-input-method default-input-method)))
(add-to-list 'file-coding-system-alist
'("\\.el\\'" iso-2022-7bit . iso-2022-7bit))
(add-hook 'before-save-hook 'copyright-update)
;; AUCTeX
(load "auctex.el" nil t t)
;; (load "preview-latex.el" nil t t)
(setq TeX-auto-global "")
(setq TeX-macro-global '("~/texmf/tex/" "/usr/local/share/texmf/tex/"
"/var/lib/texmf/tex/" "/usr/share/texmf/tex/"))
(setq-default TeX-master nil) ; Query for master file.
(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq TeX-auto-local ".auctex-auto")
(setq TeX-style-local ".auctex-auto")
;; (setq TeX-electric-escape t)
(add-hook 'LaTeX-mode-hook #'LaTeX-install-toolbar)
(defun my-LaTeX-document-style-hook nil
"Insert my default \\usepackages."
(save-excursion
(goto-char (point-min))
(search-forward "\\documentclass" nil t)
(forward-line)
(insert "\\usepackage[T1]{fontenc}\n")
(when (fboundp 'latexenc-coding-system-to-inputenc)
(when (not (eq (latexenc-coding-system-to-inputenc
buffer-file-coding-system)
'undecided))
(insert "\\usepackage[" (latexenc-coding-system-to-inputenc
buffer-file-coding-system) "]{inputenc}\n")))
(insert "\\usepackage{babel}\n")))
(add-hook 'LaTeX-mode-hook
(lambda nil (add-hook 'LaTeX-document-style-hook
'my-LaTeX-document-style-hook nil t)))
;; BibTeX
(require 'bibtex)
(setq bibtex-autokey-name-case-convert 'identity
bibtex-autokey-year-length 4
bibtex-autokey-titlewords 0
bibtex-autokey-titlewords-stretch 0
bibtex-autokey-titleword-length 0
bibtex-autokey-name-year-separator ":"
bibtex-autokey-edit-before-use nil
bibtex-autokey-before-presentation-function 'my-bibtex-autokey-unique)
(defun my-bibtex-autokey-unique (key)
"Make a unique version of KEY."
(save-excursion
(let ((trykey key)
(next ?a))
(while (and (bibtex-find-entry trykey t)
(<= next ?z))
(setq trykey (concat key (char-to-string next)))
(setq next (1+ next)))
trykey)))
(add-to-list 'bibtex-autokey-transcriptions '("\\\\r{a}" . "aa"))
(add-to-list 'bibtex-autokey-transcriptions '("\\\\r{A}" . "Aa"))
(add-to-list 'bibtex-autokey-transcriptions '("\\\\aa" . "aa"))
(add-to-list 'bibtex-autokey-transcriptions '("\\\\AA" . "Aa"))
;; RefTeX
(setq reftex-plug-into-AUCTeX t)
(autoload 'reftex-index-phrase-mode "reftex-index" "Phrase mode" t)
(add-hook 'LaTeX-mode-hook 'turn-on-reftex) ; with AUCTeX LaTeX mode
(add-hook 'latex-mode-hook 'turn-on-reftex) ; with Emacs latex mode
(setq reftex-use-external-file-finders t)
(setq reftex-external-file-finders
'(("tex" . "kpsewhich --format tex %f")
("bib" . "kpsewhich --format bib %f")))
;; smtpmail.el
(require 'smtpmail)
(setq smtpmail-auth-credentials "~/.authinfo")
(setq smtpmail-starttls-credentials '(("localhost" 587 "" "")))
;; (setq smtpmail-debug-info t)
(setq smtpmail-smtp-server "smtp.tiscali.dk"
smtpmail-smtp-service 25
message-send-mail-function 'message-smtpmail-send-it ; for gnus/message
send-mail-function 'smtpmail-send-it) ; for `mail'
;; BBDB
(require 'bbdb)
(bbdb-initialize 'gnus 'message 'w3 'sendmail)
(setq bbdb-north-american-phone-numbers-p nil)
(setq bbdb-user-mail-names (regexp-opt '("arne@daimi.au.dk"
"arne+usenet@daimi.au.dk"
"dk-tug-kasserer@sunsite.auc.dk"
"arne.jorgensen@tug.dk"
"treasurer@tug.dk"
"kasserer@tug.dk"
"arne@arnested.dk")))
(add-hook 'bbdb-load-hook (lambda nil (require 'bbdb-print)))
(setq bbdb-print-prolog "%%%% ====== Phone/Address list in -*-TeX-*- Format =====\n\n\\input bbdb-arne\n")
(setq bbdb-print-epilog "\\endaddresses\n\\bye\n\n%%% Local Variables: \n%%% mode: plain-tex\n%%% TeX-master: t\n%%% End: \n")
(setq bbdb-print-elide '(notes creation-date timestamp www tex-name aka mail-alias))
(setq bbdb-print-file-name (expand-file-name "~/Documents/adresseliste.tex"))
(setq bbdb-print-alist '((omit-area-code ."+45 *")
(phone-on-first-line . "Home")
(ps-fonts . nil)
(font-size . 6)
(quad-hsize . "3.15in")
(quad-vsize . "4.5in")))
(setq bbdb/gnus-summary-prefer-real-names t
bbdb/gnus-summary-show-bbdb-names t)
;; server-start unless it is already running somewhere
(unless (= 0 (call-process "emacsclient" nil nil nil "--eval" "nil" "-a" "false"))
(server-start))
(setq server-window '(lambda (buf)
(let ((frame (make-frame)))
(select-frame frame)
(switch-to-buffer buf)
(raise-frame frame)
(add-hook 'server-done-hook 'delete-frame t t))))
;; Blosxom
(setq blosxom-file-regexp "/home/arne/blog/.*txt")
;; my mailto
(defvar my-mailto-frame nil)
(defun my-mailto-handler (url)
"Compose new mail, using the mailto-url given"
(require 'gnus)
(require 'gnus-art)
(require 'message)
(require 'message-x)
(make-variable-frame-local 'my-mailto-frame)
(setq my-mailto-frame (make-frame))
(select-frame-set-input-focus my-mailto-frame)
(make-frame-visible my-mailto-frame)
(raise-frame my-mailto-frame)
(gnus-url-mailto url)
(save-excursion
(message-goto-to)
(message-x-tab))
(set-buffer-modified-p nil)
(message-add-action
`(delete-frame my-mailto-frame)
'exit 'kill 'postpone))
(defadvice handle-delete-frame (before my-kill-frame-message activate)
"Kill message first"
(message-kill-buffer))
;; Katsumi Yamaoka <yamaoka@jpl.org> posted this in
;; http://article.gmane.org/gmane.emacs.devel:39702
(defadvice raise-frame (after make-it-work (&optional frame) activate)
"Work around some bug? in raise-frame/Emacs/GTK/Metacity/something.
Katsumi Yamaoka <yamaoka@jpl.org> posted this in
http://article.gmane.org/gmane.emacs.devel:39702"
(call-process
"wmctrl" nil nil nil "-i" "-R"
(frame-parameter (or frame (selected-frame)) 'outer-window-id)))
(defun select-my-gnus nil
"Make the window manager switch to my main Emacs window and get new news in Gnus."
(with-temp-buffer
(call-process "wmctrl" nil t nil "-l" "-p")
(goto-char (point-min))
(while (looking-at "\\([^ ]+\\) +\\([^ ]+\\) +\\([^ ]+\\) +\\([^ ]+\\) +\\(.*\\)\n")
(when (string= (match-string 3)
(int-to-string (emacs-pid)))
(call-process "wmctrl" nil nil nil "-i" "-a" (match-string 1)))
(forward-line)))
(switch-to-buffer gnus-group-buffer)
(gnus-group-get-new-news))
;; Generate autoload for locally downloaded and developed elisp files
(defun my-autoloads nil
"Generate autoloads for code in ~/.emacs.d/misc.d/."
(interactive)
(let ((generated-autoload-file "~/.emacs.d/misc.d/my-autoload.el"))
(update-directory-autoloads "~/.emacs.d/misc.d")))
(when (> (safe-length command-line-args) 1)
(setq inhibit-startup-message t))
;; Local Variables:
;; coding: iso-2022-7bit
;; eval: (add-hook 'after-save-hook 'emacs-lisp-byte-compile t t)
;; End:
;;; .emacs ends here
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment