From: tfheen Date: Thu, 26 Sep 2002 07:03:54 +0000 (+0000) Subject: Initial revision X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b2f76ba7a02ea6ffea08a62975da5d0844f44ef6;p=dotfiles Initial revision git-svn-id: file:///svn/tfheen/trunk/dotfiles@1 8da78d58-1cd3-0310-bee5-d77bd1b3e8bf --- b2f76ba7a02ea6ffea08a62975da5d0844f44ef6 diff --git a/emacs b/emacs new file mode 100644 index 0000000..d96cc5c --- /dev/null +++ b/emacs @@ -0,0 +1,321 @@ + +(setq tfheen-color-preference 'light) ; light or dark + +(if (not (string-match "Lucid" emacs-version)) + (setq xemacsp nil)) + +(if (not xemacsp) + (save-excursion + (if (string< "21" emacs-version ) + (set-language-environment "Latin-1") + (let () + (standard-display-european t) + (if (string< emacs-version "20") + (load-library "iso-syntax") ; emacs 19.x + (require 'latin-1)) ; emacs 20.x + (set-input-mode (car (current-input-mode)) + (nth 1 (current-input-mode)) + 0))))) + +;(prefer-coding-system "utf-8") + + +(add-to-list 'Info-default-directory-list (expand-file-name "~/usr/info")) +;(add-to-list 'Info-default-directory-list +; (expand-file-name "~/data/emacs/lisp/tramp/texi")) + +(add-to-list 'load-path (expand-file-name "~/data/emacs/lisp")) +;(add-to-list 'load-path (expand-file-name "~/data/emacs/lisp/tramp/lisp")) + +(require 'bbdb) + +(setq tramp-default-method "rsync") + +(bbdb-initialize 'gnus 'message 'w3) + +(setq bbdb-use-pop-up nil + bbdb-quiet-about-name-mismatches t + bbdb-default-area-code nil + bbdb-north-american-phone-numbers-p nil + bbdb-user-mail-names "\(tollef|tfheen\)" + bbdb-offer-save 1 + bbdb-use-pop-up nil + mail-setup-hook 'bbdb-insinuate-sendmail) +(add-hook mail-setup-hook 'bbdb-define-all-aliases) + +(setq default-major-mode 'text-mode) +(add-hook 'text-mode-hook 'turn-on-auto-fill) + +(defun dos-to-unix () + (interactive) + (save-excursion + (goto-char (point-min)) + (replace-string "‘" "æ") + (replace-string "›" "ø") + (replace-string "†" "å") + (replace-string "’" "Æ") + (replace-string "" "Ø") + (replace-string "" "Å") + (replace-string " " "") + (replace-string "" "") + ) + ) + + +(defun text-to-html () + (interactive) + (save-excursion + (goto-char (point-min)) + (replace-string "æ" "æ") + (replace-string "æ" "ø") + (replace-string "å" "å") + (replace-string "Æ" "Æ") + (replace-string "Ø" "Ø") + (replace-string "Å" "Å") + ) + ) + +(fset 'yes-or-no-p 'y-or-n-p) + +(load-library "mailcrypt") +(mc-setversion "gpg") + +(autoload 'mc-install-write-mode "mailcrypt" nil t) +(autoload 'mc-install-read-mode "mailcrypt" nil t) +(add-hook 'mail-mode-hook 'mc-install-write-mode) +(add-hook 'mail-setup-hook 'mc-install-write-mode) + +(add-hook 'gnus-summary-mode-hook 'mc-install-read-mode) +(add-hook 'news-reply-mode-hook 'mc-install-write-mode) + +(global-set-key "\M-n" 'browse-url-at-point) +(global-set-key [(control backspace)] 'undo) +(global-set-key [(control return)] 'find-tag) + +;;; Custom stuff. +(setq load-path (cons "/usr/share/emacs/site-lisp" load-path)) +(condition-case () (require 'w3-auto "w3-auto") (error nil)) +(custom-set-variables + '(ecb-source-path (quote ("~/data/ntnu/SIF8005/prosjekt/risk/"))) + '(w3-user-fonts-take-precedence t) + '(browse-url-browser-function (quote browse-url-netscape) t) + '(browse-url-new-window-p t t) + '(browse-url-generic-program "opera" t) + '(browse-url-netscape-program "opera") + '(gnuserv-program (concat exec-directory "/gnuserv")) + '(tramp-multi-file-name-structure (quote ("\\`/r:\\(\\([a-z0-9]+\\)\\)?\\(\\(%s\\)+\\):\\(.*\\)\\'" 2 3 -1))) + '(tramp-make-tramp-file-format "/r:%m/%u@%h:%p") + '(tramp-file-name-regexp "\\`/r:") + '(tramp-make-multi-tramp-file-format (quote ("/r:%m" "/%m:%u@%h" ":%p"))) + '(tramp-auto-save-directory "/home/tfheen/tmp") + '(load-home-init-file t t) + '(py-beep-if-tab-change nil) + '(tramp-make-tramp-file-user-nil-format "/r:%m/%h:%p") + '(tramp-file-name-structure (quote ("\\`/r:\\(\\([a-zA-Z0-9]+\\)/\\)?\\(\\([-a-zA-Z0-9_#/:]+\\)@\\)?\\([-a-zA-Z0-9_#/:@.]+\\):\\(.*\\)\\'" 2 4 5 6))) + '(browse-url-temp-dir "~/tmp/") + '(nnmail-prepare-incoming-header-hook (quote (nnmail-fix-eudora-headers))) + '(jde-bug-vm-includes-jpda-p t) + '(w3-user-colors-take-precedence t)) + + (if (eq tfheen-color-preference 'dark) + (custom-set-faces + '(w3-style-face-00003 ((t (:foreground "#000000" :background "black"))) t) + '(w3-style-face-00002 ((t (:background "black"))) t) + '(w3-style-face-00001 ((t (:background "black"))) t) + '(custom-set-face ((((class color)) (:foreground "blue" :background "black")))) + '(font-lock-keyword-face ((((class color) (background dark)) (:foreground "Maroon")))) + '(show-paren-mismatch-face ((((class color)) (:bold t :foreground "Red")))) + '(gnus-cite-face-3 ((t (:foreground "Green")))) + '(gnus-cite-face-2 ((t (:foreground "LightBlue")))) + '(gnus-cite-face-1 ((t (:foreground "Yellow")))) + '(show-paren-match-face ((((class color)) (:bold t :foreground "White")))) + '(font-lock-builtin-face ((((class color) (background dark)) (:foreground "BlueViolet"))))) + (custom-set-faces + '(w3-style-face-00003 ((t (:foreground "#000000" :background "black"))) t) + '(w3-style-face-00002 ((t (:background "black"))) t) + '(w3-style-face-00001 ((t (:background "black"))) t) + + '(custom-set-face ((((class color)) (:foreground "blue" :background "black")))) + '(sh-heredoc-face ((((class color) (background light)) (:foreground "DarkGreen")))) + '(font-lock-keyword-face ((t (:foreground "DarkBlue"))) t) + '(font-lock-string-face ((t (:foreground "Blue"))) t) + '(mmm-default-submode-face ((t (:background "White"))) t) + '(show-paren-mismatch-face ((((class color)) (:bold t :foreground "Red")))) + '(gnus-cite-face-3 ((t (:foreground "DarkGreen")))) + '(gnus-cite-face-2 ((t (:foreground "DarkRed")))) + '(gnus-cite-face-1 ((t (:foreground "DarkBlue")))) + '(show-paren-match-face ((((class color)) (:bold t :foreground "White")))) + '(font-lock-builtin-face ((((class color) (background dark)) (:foreground "BlueViolet")))))) +;; File modes + +(autoload 'php-mode "php-mode" "PHP editing mode" t) +(autoload 'css-mode "css-mode") +(autoload 'pov-mode "pov-mode" "PoVray scene file mode" t) +(autoload 'jde-mode "jde" "Java Development Environment" t) +(autoload 'dtml-mode "dtml-mode" "Document Template Markup Language" t) + +(add-to-list 'auto-mode-alist '("\\.php3$" . php-mode)) +(add-to-list 'auto-mode-alist '("\\.css$" . css-mode)) +(add-to-list 'auto-mode-alist '("\\.pov$" . pov-mode)) +(add-to-list 'auto-mode-alist '("\\.jl$" . lisp-mode)) +(add-to-list 'auto-mode-alist '("\\.java$" . jde-mode)) + +;; Set up autoloading and auto-mode +(autoload 'ps-mode "ps-mode" + "Major mode for editing PostScript" t) +(setq auto-mode-alist + (append + '(("\\.[eE]?[pP][sS]$" . ps-mode)) + auto-mode-alist)) + +;; Various programming settings and languages +; K&R +(setq perl-indent-level 5 + perl-continued-statement-offset 5 + perl-continued-brace-offset 0 + perl-brace-offset -5 + perl-brace-imaginary-offset 0 + perl-label-offset -5 + ) + +;(if (not xemacsp) +; (c-set-style "k&r")) + + +(setq next-line-add-newlines nil + compilation-window-height 10 + european-calendar-style t) + +(defun reverse-list-in-list (reverse-list) + (require 'cl) + (let '(bar (copy-list reverse-list)) + (setq liste (list)) + (while (car bar) + (let '(elem (car bar)) + (add-to-list 'liste (reverse elem))) + (setq bar (cdr bar))) + (reverse liste))) + +(defun reverse-nnml-list-in-list (reverse-list) + (require 'cl) + (let '(bar (copy-list reverse-list)) + (setq liste (list)) + (while (car bar) + (let '(elem (car bar)) + (print (car elem)) + (add-to-list 'liste (list (car (cdr elem)) (concat "nnml:" (car elem)))) + (setq bar (cdr bar)))) + (reverse liste))) +(setq py-honor-comment-indentation nil) + +(add-hook 'sgml-mode-hook '(lambda()(local-set-key "\C-c>" 'sgml-insert-end-tag))) +(add-hook 'emacs-lisp-mode-hook '(lambda()(local-set-key "\C-j" 'find-function))) +(setq mc-temp-directory (expand-file-name "~/tmp") + mc-encrypt-for-me t + mc-gpg-user-id "tfheen@opera.no") +;(require 'template) +;(add-hook 'c-mode-common-hook 'tmpl-init) +;(add-hook 'c-mode-common-hook 'auto-insert-file-header) +(add-hook 'c-mode-common-hook (lambda() (local-set-key "\M-\C-x" 'compile))) +(add-hook 'c-mode-common-hook (lambda() (local-set-key "\M-\C-z" 'next-error))) +(require 'auto-header) +(setq header-full-name "Tollef Fog Heen" + header-email-address "tollef@add.no" + add-log-mailing-address "tfheen@debian.org" + debian-changelog-mailing-address "tfheen@debian.org" + tags-table-list (list (expand-file-name "~/usr/include/"))) +(setq sgml-local-catalogs (list "~/usr/lib/sgml/sgml.catalog")) + +;; Find-file hooks +; Stolen from Jan Ingvoldstad +(add-hook 'find-file-hooks + '(lambda () + ;; Invoke proper modes when we don't know file extensions + (cond ((looking-at "#!.*/perl") (perl-mode)) + ((looking-at "#!.*/tclsh") (tcl-mode)) + ((looking-at "#!.*/wish") (tcl-mode)) + ((looking-at "#!.*/make") (makefile-mode))))) + +;; Visual fluff. + +(if (not xemacsp) + (toggle-scroll-bar -1) + (setq scrollbars-visible-p nil)) + +(setq scroll-bar-mode nil) +; show-paren-style 'expression) + +; Highlight matching/nonmatching parens +;(if (not xemacsp) +; (show-paren-mode t)) ; show-paren-mode takes too much cpu +(if (not xemacsp) + (global-font-lock-mode t) + (font-lock-mode 1)) +(if (not xemacsp) + (server-start)) + +;; Multiple mode + + +(require 'mmm-auto) +(setq mmm-global-mode 'maybe) +(custom-set-faces + '(w3-style-face-00003 ((t (:foreground "#000000" :background "black"))) t) + '(w3-style-face-00002 ((t (:background "black"))) t) + '(w3-style-face-00001 ((t (:background "black"))) t) + '(font-lock-string-face ((t (:foreground "Blue")))) + '(custom-set-face ((((class color)) (:foreground "blue" :background "black")))) + '(font-lock-keyword-face ((t (:foreground "DarkBlue")))) + '(show-paren-mismatch-face ((((class color)) (:bold t :foreground "Red")))) + '(gnus-cite-face-3 ((t (:foreground "DarkGreen")))) + '(gnus-cite-face-2 ((t (:foreground "DarkRed")))) + '(gnus-cite-face-1 ((t (:foreground "DarkBlue")))) + '(mmm-default-submode-face ((t (:background "White")))) + '(show-paren-match-face ((((class color)) (:bold t :foreground "White")))) + '(font-lock-builtin-face ((((class color) (background dark)) (:foreground "BlueViolet"))))) +(setq mc-passwd-timeout 600) + +(if (not xemacsp) + (require 'tramp)) + + +(if (and (not xemacsp) (= emacs-major-version 21)) + (progn + (blink-cursor-mode 0) + (tooltip-mode 0) + (tool-bar-mode 0) + (global-set-key [home] 'beginning-of-buffer) + (global-set-key [end] 'end-of-buffer) + (setq cursor-in-non-selected-windows nil))) + +(global-set-key [C-tab] 'dabbrev-expand) +(setq mail-open-quote "«") +(setq mail-close-quote "»") + +(defun mail-insert-quote (arg) + "Insert the appropriate quote marks for Norwegian mail. +Inserts the value of `mail-open-quote' (normally «) or `mail-close-quote' +\(normally ») depending on the context. With prefix argument, always +inserts \" characters." + (interactive "*P") + (if arg + (self-insert-command (prefix-numeric-value arg)) + (insert + (cond ((or (bobp) + (save-excursion + (forward-char -1) + (looking-at "\\s(\\|\\s \\|\\s>"))) + mail-open-quote) + ((= (preceding-char) ?\\) + ?\") + (t + mail-close-quote))))) + +(add-hook 'diary-hook 'appt-make-list) +(display-time) +(add-hook 'diary-hook 'appt-make-list) +(diary 0) +(display-battery) +(setq show-trailing-whitespace t) +(setq-default indent-tabs-mode nil) +(define-coding-system-alias 'iso885915 'iso-8859-15) diff --git a/gnus b/gnus new file mode 100644 index 0000000..3c1b40b --- /dev/null +++ b/gnus @@ -0,0 +1,587 @@ +;; -*- lisp -*- + +(defun tfheen-random-from-list (list) + (let ((r (random (list-length list)))) + (while (> r 0) + (setq r (- r 1)) + (setq list (cdr list))) + (car list))) + +(setq gnus-select-method '(nntp "localhost") + gnus-secondary-select-methods '((nnml "")) +; (nntp "news.sunsite.dk")) +; gnus-summary-limit-to-unread nil + nnml-crosspost nil + nnmail-crosspost nil + debug-on-error t + gnus-novice-user nil + gnus-interactive-exit nil + message-default-charset 'iso-8859-1 + message-default-headers "Mail-Copies-To: never" + message-send-mail-partially-limit nil) + +(add-to-list 'gnus-secondary-select-methods '(nntp "news.hardware.no")) + +(add-hook 'nntp-server-opened-hook 'nntp-send-authinfo) +(add-hook 'nntp-server-opened-hook 'nntp-send-mode-reader) + +(setq nnmail-split-methods + (list '("junk.2002" "^From:.*Cron") + '("spam" "^From:.*lifeminders.com") + '("spam" "^Subject: =\\?ks_c_5601-1987") + '("spam" "^Subject:.*Boost Your Windows Reliability!") + '("spam" "^Subject:.*Xsamplesampledesktopdesktopsamplesampledesktopsamplesamplesamplesamplesampledesktopsamplesamplesamplesampledesktopsamplesampledesktopdesktopsamplesamplesampledesktopsampledesktopdesktopdesktopdesktopdesktopsamplesampledesktopdesktopsampledesktopsampledesktadd.nodesktop") + '("spam" "^From: spam_filter@linuxfreemail.com") + '("spam" "^Content-Type: text/html; charset=KS_C_5601-1987") + '("spam" "^Subject:.*±¤°í\\") + ; Hand-moderated lists over automatic spam detection + '("bugtraq.2002" "^Delivered-To:.*bugtraq@securityfocus.com") + '("maybe-spam" "^X-Spam-Status: Yes") + '("infobeat" "^From:.*InfoBeat") + '("in-2002-news" "^Delivered-To:.*tollef-news") + '("www.zope.div" "^\\(To\\|Cc\\):.*zope@\\(zope\\|egroups.com\\)") + '("drift.fagerborg" "^\\(To\\|Cc\\):.*drift@.*fagerborg") + '("drift.fagerborg" "^\\(To\\|Cc\\):.*fa-drift") + '("drift.pvv" "^\\(Delivered-To\\|\\):.*drift@pvv") + '("drift.pvv.tk" "^\\(Delivered-To\\|\\):.*tk@pvv") + '("drift.pvv.cert" "^\\(Delivered-To\\|\\):.*cert@pvv") + '("drift.pvv.root" "^\\(Delivered-To\\|\\):.*root@pvv") + '("drift.pvv.sherlock" "^\\(Delivered-To\\|\\):.*sherlock@pvv") + '("drift.pvv.nerds" "^\\(Delivered-To\\|\\):.*nerds@pvv") + '("drift.pvv.abuse" "^\\(Delivered-To\\|\\):.*abuse@pvv") + '("drift.opera.diverse" "^\\(X-BeenThere\\|To\\|Cc\\):.*server@opera") + '("drift.opera.www.opera.com" "^From:.*root@opera.com") + '("drift.opera.security" "^\\(To\\|Cc\\):.*\\(security\\|security-issues\\)@opera") + '("jobb.opera.elektra" "^List-Id:.*elektra.opera") + '("drift.uio" "^\\(To\\|Cc\\):.*linux-drift@uio") + '("drift.egroups" "^\\(To\\|Cc\\):.*egroups-managers") + '("drift.opera.news" "\\(To\\|From\\):.*\\(usenet@\\|news@\\).*opera") + '("drift.opera.news" "\\(To\\|From\\):.*\\(usenet@\\|news@\\).*pvv") + '("drift.opera.epost" "^To:.*\\(postmaster\\|root\\)@opera") + '("drift.opera.backup" "^To:.*tollef-opera-backup") + '("drift.opera.staff" "^\\(To\\|Cc\\):.*staff@.*opera") + '("drift.opera.oslo" "^\\(To\\|Cc\\):.*oslo@.*opera") + '("drift.opera.linux" "^\\(To\\|Cc\\):.*opera-linux@opera") + '("drift.opera.panic" "^\\(To\\|Cc\\):.*panic@opera") + '("drift.opera.mac-developer" "^List-Id:.*mac-developer.opera.no") + '("drift.opera.epostlister" "^\\(To\\|Cc\\):.*admin@opera") + '("drift.opera.epostlister" "^\\(To\\|Cc\\):.*owner@opera") + '("drift.opera.emergency" "^\\(To\\|Cc\\):.*tfheen-netsaint@opera") + '("drift.hardware.sherlock" "^\\(To\\|Delivered-To\\|Envelope-to\\):.*sherlock@hardware") + '("drift.hardware.emergency" "^From:.*netsaint@.*hardware") + '("drift.hardware.news" "^\\(To\\|Cc\\|Delivered-To\\):.*usenet@.*hardware.no") + '("drift.hardware.drift" "^\\(To\\|Cc\\|Delivered-To\\):.*drift@hardware.no") + '("drift.samfundet.gsf" "^\\(To\\|Cc\\):.*gsf@.*\\(samfundet\\|stud\\)") + '("drift.samfundet.gsk" "^\\(To\\|Cc\\):.*gsk@.*\\(samfundet\\|stud\\)") + '("drift.isfit.it-admin" "Delivered-To:.*it-admin@isfit.org") + '("drift.isfit.mail" "Subject: bayer.isfit.org Daily Mail Report") + '("drift.isfit.logwatch" "Subject: LogWatch for bayer.isfit.org") + '("drift.lis.drift" "^\\(To\\|Cc\\|Delivered-To\\):.*drift@sk[ou]lelinux.no") + '("drift.itk.arpwatch" "From:.*arpwatch@samfundet.no") + '("drift.itk.kort" "^\\(To\\|Cc\\):.*kort@.*\\(samfundet\\|stud\\)") + '("drift.itk.itk" "^\\(To\\|Cc\\):.*itk@.*\\(samfundet\\|stud\\)") + '("drift.itk.uka" "^\\(To\\|Cc\\):.*itk@.*uka") + '("drift.itk.unix" "^\\(To\\|Cc\\):.*unix@.*samfundet") + '("drift.itk.leder" "^\\(To\\|Cc\\):.*itk-leder@.*samfundet") + '("drift.itk.lister" "^From: mailman-owner@lists.samfundet.no") + '("drift.itk.news" "\\(To\\|From\\):.*\\(usenet@\\|news@\\).*samfundet.no") + '("drift.itk.uka-gjengsjefer" "^\\(To\\|Cc\\):.*gjengsjefer@.*uka") + + '("drift.news.nag.intern" "^\\(To\\|Cc\\):.*gullkorn@usenet.no") + '("drift.news.nag.submissions" "^\\(To\\|Cc\\):.*no-alt-gullkorn@moderators") + '("drift.news.localhost" "^\\(To\\|Cc\\):.*usenet@manon") + '("drift.snort.localhost" "^Subject:.*snort daily report") + '("anchordesk" "^From:.*AnchorDesk") + '("postgres" "^\\(To\\|Cc\\):.*announce@postgresql.org") +; '("firma.netscape" "^From:.*@netscape.com") + '("firma.java" "^To:.*JDC.*@Sun.com") + '("firma.java" "^To:.*devflash@eng.sun.com") + '("firma.borland" "To:.*INPR04@BORLAND.COM") + '("firma.div_tilbud" "^From:.*clubpdalist@list.pacbus.com") + '("firma.div_tilbud" "list.cc-inc.com") + '("firma.div_tilbud" "^To:.*Announce@linuxmall.com") + '("firma.div_tilbud" "^From:.*salg@infolink.no") + '("firma.java" "JDCTechTips@sun.com") + '("div.keysign.nuccc-2002" "\\(To\\|Cc\\):.*nuccc\\+keysign@acc.umu.se") + '("div.hemsedal" "^\\(To:.*vaermottakere@skiinfo.no\\|From:.*vaer@skiinfo.no\\)") + '("div.samfundet.diskusjon" "^\\(To\\|Cc\\):.*diskusjon@samfundet.no") + '("div.samfundet.info" "^\\(To\\|Cc\\):.*info@samfundet.no") + '("div.samfundet.gjenger" "^\\(To\\|Cc\\):.*gjenger@samfundet.no") + '("div.ntnu.klatring" "^\\(To\\|Cc\\):.*tindegruppa@stud.ntnu.no") + '("programmering.banal" "^\\(To\\|Cc\\):.*banal@starnix.com") + '("programmering.together" "^To:.*@lists.oi.com") + '("programmering.qt.snapshot" "^\\(To\\|Cc:\\).*snapshot-users@troll") + '("div.hn" "^To:.*hn@coollist.com") + '("div.hn" "^To:.*hw-intern") + '("div.linux-i-skolen" "^\\(To\\|Cc\\|Reply-To\\):.*linuxisk[ou]len") + '("linux.linux-i-skolen.info" "^List-Id:.*info.skolelinux.no") + '("div.registrar" "\\(To\\|Cc\\):.*registrar@norid.no") + '("div.tut" "\\(To\\|Cc\\):.*tut@nvg") + '("firma.ibm" "^To:.*techconnect") + '("div.tipworld" "^To:.*tollef-tipworld") + '("freesoftware.cofsino" "List-Id.*cofsino.lists.raw.no") + '("freesoftware.nafs" "List-Id.*nafs.mail.nafs.org") + '("freesoftware.cvs.info" "List-Id.*info-cvs.gnu.org") + '("freesoftware.cvs.bug" "List-Id.*bug-cvs.gnu.org") + '("freesoftware.efn.listen" "List-Id.*efn-listen.ifi.uio.no") + '("linux.spi.private.2002" "^List.*spi-private.lists.spi-inc.org") + '("linux.progeny.pgi-workers" "^List-Id.*pgi-workers.lists.progeny.com") + '("linux.debian.hurd-testdrive" "List-Id.*hurd-testdrive.moneybags.cs.uml.edu") + '("linux.debian.dwn.2002" "^Delivered-To.*dwn@debian.org") + '("linux.debian.cd.2002" "^X-Mailing-List.*debian-cd") + '("linux.debian.www.2002" "^X-Mailing-List.*debian-www") + '("linux.debian.debbugs.2002" "^X-Mailing-List.*debian-debbugs") + '("linux.debian.laptop.2002" "^X-Mailing-List.*debian-laptop") + '("linux.debian.ctte.2002" "^X-Mailing-List.*debian-ctte") + '("linux.debian.devel-changes.2002" "^X-Mailing-List.*debian-devel-changes") + '("linux.debian.emacsen.2002" "^X-Mailing-List.*debian-emacsen") + '("linux.debian.policy.2002" "^X-Mailing-List.*debian-policy") + '("linux.debian.project.2002" "^X-Mailing-List.*debian-project") + '("linux.debian.python.2002" "^X-Mailing-List.*debian-python") + '("linux.debian.qa.2002" "^X-Mailing-List.*debian-qa") + '("linux.debian.bsd.2002" "^X-Mailing-List.*debian-bsd") + '("linux.debian.curiosa.2002" "^X-Mailing-List.*debian-curiosa") + '("linux.debian.www-cvs.2002" "^To.*joey-www-cvs@master.debian.org") + '("linux.debian.java.2002" "^X-Mailing-List.*debian-java") + '("linux.debian.events-eu.2002" "^X-Mailing-List.*debian-events-eu") + '("linux.debian.boot.2002" "^X-Mailing-List.*debian-boot") + '("linux.debian.devel.2002" "^X-Mailing-List.*debian-devel") + '("linux.debian.private.2002" "^X-Mailing-List.*debian-private") + '("linux.debian.mentors.2002" "^X-Mailing-List.*debian-mentors") + '("linux.debian.vote.2002" "^X-Mailing-List.*debian-vote") + '("linux.debian.newmaint.2002" "^X-Mailing-List.*debian-newmaint") + '("linux.debian.changes" "^X-Mailing-List.*debian-changes") + '("linux.debian.news" "^X-Mailing-List.*debian-news") + '("linux.debian.security" "^X-Mailing-List.*debian-security") + '("linux.debian.announce" "^X-Mailing-List.*debian-announce") + '("linux.debian.deb-pgsql" "^\\(To\\|Cc\\|Resent-To\\):.*\\(deb-pgsql\\|debian-postgresql\\)") + '("linux.debian.deb-pgsql" "^List-Id:.*debian-postgresql") + '("linux.helix.updates" "^\\(To\\|Cc\\|Resent-From\\):.*updates@\\(helixcode.com\\|ximian.com\\)") + '("linux.helix.announce" "^\\(To\\|Cc\\|Resent-From\\):.*announce@\\(helixcode.com\\|ximian.com\\)") + '("linux.tuug" "\\(To\\|Cc\\):.*tuug@nvg") + '("linux.rh.security" "^\\(To\\|Cc\\|Resent-From\\):.*linux-security") + '("linux.rh.alert" "^\\(To\\|Cc\\|Resent-From\\):.*tollef-rh-alert") + '("linux.rh.announce" "^X-BeenThere: redhat-announce-list@redhat.com") + '("linux.rh.watch" "^\\(To\\|Cc\\|Resent-From\\):.*redhat-watch") + '("linux.limacute" "List-Id:.*limacute-list.limacute.org") + '("programmering.koffice" "^\\(To\\|Cc\\|Resent-From\\):.*koffice") + '("programmering.mailman.developer" "^List-Id:.*mailman-developers.python.org") + '("programmering.mailman.user" "^List-Id:.*mailman-users.python.org") + '("programmering.xml-sig" "^List-Id:.*xml-sig.python.org") + '("programmering.ntnu.mugge" "^Delivered-To:.*mugge@samfundet.no") + '("drift.opera.mailer-daemon" "To:.*[Mm]ailer-[Dd]aemon@opera") + '("drift.opera.bounce" "From:.*[Mm]ailer-[Dd]aemon") + '("drift.opera.bounce" "Subject:.*\\([Rr]eturned\\|[Uu]ndeliverable\\) *\\([Mm]ail\\|[Mm]essage\\)") + '("drift.opera.bounce" "Subject: *Mail System Error - Returned Mail") + '("drift.opera.bounce" "Subject: *Delivery failure") + (list (format-time-string "in-%Y-%m") ""))) +(setq gnus-split-methods (reverse-nnml-list-in-list nnmail-split-methods)) +(setq gnus-move-split-methods (reverse-nnml-list-in-list nnmail-split-methods)) + +(defun tfheen-maybe-sign () + "Sign if appropiate. Only news. Selects correct sender." + (load-library "mc-toplev") + (if (message-news-p) (let ((newsgroups (cadr (mail-extract-address-components + (save-excursion + (save-restriction + (message-narrow-to-head) + (message-fetch-field "newsgroups"))))))) + (if (string-match "^opera" newsgroups) (mc-sign-message "tfheen@opera.no"))))) + +(setq gnus-message-archive-group + '((if (message-news-p) + "misc-news" + (format-time-string "nnml:out-%Y-%m")))) + +(setq schizo-default-mail-from "tollef@add.no") +(setq schizo-default-news-from "tollef-news@add.no") + +(setq schizo-select-list '(("t.f.heen@jus.uio.no" + "Tollef Fog Heen" + "University of Oslo, Norway" + "http://www.uio.no/~tfheen/") + ("tollef-news@add.no" + "Tollef Fog Heen" + "Private" + "http://www.add.no/~tollef/") + ("tollef@add.no" + "Tollef Fog Heen" + "Private" + "http://www.add.no/~tollef/") + ("tfheen@pvv.ntnu.no" + "Tollef Fog Heen" + "PVV" + "http://www.pvv.org/") + ("tfheen@idi.ntnu.no" + "Tollef Fog Heen" + "Institutt for Datateknikk, FIM, NTNU" + "http://www.idi.ntnu.no/") + ("tfheen@debian.org" + "Tollef Fog Heen" + "Debian" + "http://www.debian.org/") + ("hostmaster@hardware.no" + "Hostmaster" + "Hardware.no" + "http://www.hardware.no/") + ("tfheen@fa002.fagerborg.vgs.no" + "Tollef Fog Heen" + "Fagerborg driftsgruppe" + "http://www.fagerborg.vgs.no/" + ) + ("tfheen@fagerborg.net" + "Tollef Fog Heen" + "Fagerborg driftsgruppe" + "http://www.fagerborg.net/" + ) + ("drift@fa002.fagerborg.vgs.no" + "Tollef Fog Heen" + "Fagerborg driftsgruppe" + "http://www.fagerborg.vgs.no/" + ) + ("tfheen@hardware.no" + "Tollef Fog Heen" + "Hardware.no" + "http://www.hardware.no/") + ("tfheen@opera.no" + "Tollef Fog Heen" + "Opera Software" + "http://www.opera.no/") + ("tfheen@opera.com" + "Tollef Fog Heen" + "Opera Software" + "http://www.opera.no/") + ("tfheen@stud.ntnu.no" + "Tollef Fog Heen" + "Private" + "") + ("tfheen@samfundet.no" + "Tollef Fog Heen" + "IT-komiteen - Samfundet" + "http://www.samfundet.no/itk/") + ("tfheen@uka.no" + "Tollef Fog Heen" + "IT-komiteen - UKA" + "http://www.uka.no/") + ("tfheen@isfit.org" + "Tollef Fog Heen" + "ISFiT" + "http://www.isfit.org/"))) + +(require 'schizo) + +(defun tfheen-de-arntify () + (interactive) + (save-excursion + (if (string= (message-fetch-field "From") "Arnt Karlsen ") + (let ((inhibit-point-motion-hooks t) + buffer-read-only) + (set-buffer gnus-article-buffer) + (goto-char (point-min)) + (replace-regexp "^\\.\\." "") + (goto-char (point-min)) + (replace-regexp " ? ?;-)$" ""))))) + +(defun tfheen-right-quotify () + (interactive) + (save-excursion + (let ((inhibit-point-motion-hooks t) + buffer-read-only) + (set-buffer gnus-article-buffer) + (goto-char (point-min)) + (while (re-search-forward "^>+" nil t) + (let ((i 0) + (str "") + (tmp (length (match-string 0)))) + (while (< i tmp) + (setq str (concat str "|")) + (setq i (+ i 1))) + (setq str (concat str " ")) + (replace-match str nil nil))) + (while (re-search-forward "| |+" nil t) + (replace-match "||" nil nil))))) + + +(add-hook 'gnus-article-prepare-hook 'tfheen-de-arntify) +;(add-hook 'gnus-article-prepare-hook 'tfheen-right-quotify) +(add-hook 'gnus-article-display-hook 'gnus-article-highlight-citation) + +;; Don't _reply_ in news, dimwit! +(defadvice gnus-summary-reply (around reply-in-news activate) + (interactive) + (when (or (not (gnus-news-group-p gnus-newsgroup-name)) + (y-or-n-p "Really reply? ")) + ad-do-it)) + +(setq gnus-home-score-file + '(("\\(biz\\|marked\\|annonser\\)" "marked.SCORE") + ("^nnml:jobb.opera.elektra" "opera.SCORE"))) + +(setq gnus-use-cache t + message-kill-buffer-on-exit t + nnvirtual-always-rescan t + rmail-dont-reply-to-names "tfheen\\|tollef\\|nobody\\|never\\|none" + message-dont-reply-to-names rmail-dont-reply-to-names +) + +(defun tfheen-escape-url () "Puts around URLs." +(interactive) +(save-excursion + (goto-char (point-min)) + (replace-regexp "]*\\)>" "\\1") + (goto-char (point-min)) + (replace-regexp gnus-button-url-regexp ""))) + +(add-hook 'message-send-hook 'schizo-select) +(add-hook 'message-mode-hook '(lambda()(local-set-key "\M-c" 'bbdb-complete-name))) +(add-hook 'message-mode-hook '(lambda()(local-set-key "\M-\S-F" 'tfheen-insert-footnote))) +(add-hook 'message-mode-hook '(lambda()(local-set-key "\"" 'mail-insert-quote))) + +(add-hook 'gnus-article-display-hook 'gnus-article-hide-pgp) +;(add-hook 'message-send-hook 'tfheen-escape-url) +(add-hook 'message-send-hook 'tfheen-maybe-sign) +(add-hook 'message-send-hook 'tfheen-check-mail-followup-to) +;(add-hook 'mc-pre-encryption-hook 'tfheen-escape-url) +;(add-hook 'mc-pre-signature-hook 'tfheen-escape-url) + +(defun tfh-insert-citation-line () + "My own function to insert citation. Inserts a line similar to \"* Tollef Fog Heen\n\n\"" + (if (string-equal gnus-newsgroup-name "nnml:drift.news.nag.submissions") + " " + (when message-reply-headers + (let ((author (mail-header-from message-reply-headers))) + (string-match "[^@ ]+@[^@ ]+" author) + (insert "* "(replace-match "" nil nil author) "\n\n"))))) + +(setq gnus-summary-gather-subject-limit 'fuzzy + gnus-simplify-subject-fuzzy-regexp "^\\([Aa][Dd]: \\|[Ss][Vv]: \\|[Rr][Ee]: \\)+" + mc-gpg-comment "Please see my GPG key at http://www.opera.com/~tfheen/gpgkey.asc" + gnus-simplify-ignored-prefixes "^\\([Aa][Dd]: \\|[Ss][Vv]: \\|[Rr][Ee]: \\)+" + message-yank-prefix "| " + message-citation-line-function 'tfh-insert-citation-line + message-cite-function 'tfheen-cite-function + gnus-simplify-subject-functions '(gnus-simplify-subject gnus-simplify-subject-fuzzy) + gnus-summary-mode-line-format "Gnus: %G [%A] %Z") + +(setq gnus-uncacheable-groups "^nnml") +; (add-to-list 'mm-discouraged-alternatives "text/html") + +;; text processing definitions + +(setq-default sentence-end "[.?!][]\"')}]*[ \n]+") +(setq-default paragraph-start "^[|:> \t]*$") +(setq-default paragraph-separate (default-value 'paragraph-start)) +(setq adaptive-fill-regexp (substring (default-value 'paragraph-start) 1 -1)) + +(setq gnus-posting-styles + '(;; Du vil sikkert ha mer her enn det følgende: + ("drift.news.nag.submissions" ;; Antar at man får + ;; moderator-mail hit + (From + ;; settes til bidragsyters adresse ved posting + (save-excursion + (set-buffer gnus-article-buffer) + (message-fetch-field "from" t))) + (To nil) + (Cc nil) + (in-reply-to nil) + (references + (save-excursion + (set-buffer gnus-article-buffer) + (gnus-narrow-to-body) + (tfheen-get-header-fuzzy "message-id") + (widen))) + (newsgroups "no.alt.gullkorn") + (approved "no-alt-gullkorn@moderators.usenet.no") + (message-id + (concat ""))) + ((and (message-mail-p) (stringp gnus-newsgroup-name)) + ("Mail-Followup-To" (gnus-group-get-parameter gnus-newsgroup-name 'to-address))))) + + +; (".*" +; ("X-No-Archive" (tfheen-random-from-list '("Maybe" "Sometimes" "What!?" "That might be an idea")))))) + + +(defun tfheen-set-fill-prefix () + "Hook to run when entering no.alt.gullkorn.submissions" + (setq message-yank-prefix + (if (string-equal gnus-newsgroup-name "nnml:drift.news.nag.submissions") + " " "| "))) + +(defun tfheen-cite-function () + "Which cite function to use -- depend on which you are in" + (if (string-equal gnus-newsgroup-name "nnml:drift.news.nag.submissions") + (message-cite-original) + (message-cite-original-without-signature))) + + +(add-hook 'gnus-select-group-hook 'tfheen-set-fill-prefix) +(add-hook 'gnus-exit-group-hook 'tfheen-set-fill-prefix) + +(defun tfheen-send-approved-mail () + "Sends email to gullkorn@usenet.no when approving an article" + (if (string-equal gnus-newsgroup-name "nnml:drift.news.nag.submissions") + (save-excursion + (setq tmp-gnus-message-setup-hook gnus-message-setup-hook + gnus-message-setup-hook nil + tmp-gnus-posting-styles gnus-posting-styles + gnus-posting-styles nil) +; (message (concat "gnus-article-buffer: " gnus-article-buffer)) +; (message (concat "gnus-message-buffer: " gnus-message-buffer)) + (set-buffer gnus-article-buffer) +; (gnus-summary-verbose-headers 1) + (gnus-narrow-to-body) + (let ((newsgroups (or (tfheen-get-header-fuzzy "newsgroups") "FIXME")) + (subject (or (tfheen-get-header-fuzzy "subject") "FIXME")) + (from (or (tfheen-get-header-fuzzy "from") "FIXME")) + (date (or (tfheen-get-header-fuzzy "date") "FIXME")) + (msgid (or (tfheen-get-header-fuzzy "message-id") "FIXME"))) + + (gnus-summary-mail-other-window) + (gnus-narrow-to-body) + (insert "Newsgroups: " newsgroups "\n") + (insert "Subject: " subject "\n") + (insert "From: " from "\n") + (insert "Date: " date "\n") + (insert "Message-ID: " msgid "\n\n") + (message-narrow-to-head) + (goto-char (point-min)) + (search-forward "Subject: " (point-max) t) + (insert (format-time-string "Postet %Y%m%d %H:%M")) + (goto-char (point-min)) + (search-forward "To: " (point-max) t) + (insert "gullkorn@usenet.no") + (widen)) + (setq gnus-message-setup-hook tmp-gnus-message-setup-hook + tmp-gnus-message-setup-hook nil + gnus-posting-styles tmp-gnus-posting-styles + tmp-gnus-posting-styles nil) + (gnus-summary-verbose-headers -1)))) + +(defun tfheen-fixup-subject () + "Fix subject for no.alt.gullkorn" + (if (string-equal gnus-newsgroup-name "nnml:drift.news.nag.submissions") + (save-excursion + (message (concat "gnus-article-buffer: " gnus-article-buffer)) + (set-buffer gnus-article-buffer) + (gnus-narrow-to-body) + (let ((newsgroups (or (tfheen-get-header-fuzzy "newsgroups") "FIXME")) + (subject (or (tfheen-get-header-fuzzy "subject") "FIXME"))) + (message (concat "gnus-message-buffer: " gnus-message-buffer)) + (set-buffer gnus-message-buffer) + (message-narrow-to-head) + (goto-char (point-min)) + (search-forward "Subject: " (point-max) t) + (replace-regexp "\\(Fwd\\|Re\\):? \\(\\[[A-Za-z,.]+\\]\\)? ?\\(.*\\)" + (concat "[" newsgroups "] " "\\3")))))) + +; Order is important here! +;(add-hook 'gnus-message-setup-hook 'tfheen-fixup-subject) +(add-hook 'gnus-message-setup-hook 'tfheen-send-approved-mail) + +(defun tfheen-get-header-fuzzy (field) + "Searches the current buffer for a match to the regexp specified as +field." + (save-excursion + (goto-char (point-min)) + (search-forward-regexp (concat field ":[ \t]*\\(.*\\)") (point-max) t) + (match-string 1))) + +(defun tfheen-check-mail-followup-to () + "Checks that mail-followup-to is set to one of the recipients. Breaks +on multiple mail-followup-to headers" + (goto-char (point-min)) + (let ((headers (mail-header-extract)) + (to-list "") + (mail-followup-to "")) + (while headers + (if (string= (car (car headers)) "to") + (setq to-list (concat to-list (cdr (car headers))))) + (if (string= (car (car headers)) "cc") + (setq to-list (concat to-list (cdr (car headers))))) + (if (string= (car (car headers)) "bcc") + (setq to-list (concat to-list (cdr (car headers))))) + (if (string= (car (car headers)) "mail-followup-to") + (setq mail-followup-to (cdr (car headers)))) + (setq headers (cdr headers))) + (if (not (string-match mail-followup-to to-list)) + (if (not (y-or-n-p "Mail-Followup-To not in recipient list. Really post?")) + (keyboard-quit))))) + +(defun tfheen-insert-footnote () + "Insert footnote and set mark to where you were in the text." + (interactive) + (make-variable-buffer-local 'tfheen-footnotes) + (setq tfheen-footnotes (+ 1 (or tfheen-footnotes 0))) + (insert (format "[%d]" tfheen-footnotes)) + (push-mark (point) t nil) + (goto-char (point-max)) + (re-search-backward "^-- $") + (backward-char) + (insert (format "\n[%d] " tfheen-footnotes))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Drittlei av Re: Sv: Re: i subject... +;; +;; fra Lars Clausen paa gnu.emacs.gnus +;; 27. juli 2000 -- tilpasset norske forhold. + +(defvar message-subject-re-re + "^\\(\\(\\([Rr][Ee]?\\|[Ss][Vv]\\): *\\)*\\(\\(R\\|[Ss][Vv]\\): *\\)+\\)" + "Regexp that matches any number of \"Re: \"'s and at least a \"Sv: \" at the end") + +(defvar message-re-string + "Re: " + "The string added to indicate an answer") + +(defun strip-any-re (subject) + "Remove \"Re:\" from subject lines, internationalizably" + (message subject) + (if (string-match message-subject-re-re subject) + (progn + (message (int-to-string (match-end 1))) + (substring subject (match-end 1)) + ) + subject)) + +(defun message-subject-strip-any-re () + (save-excursion + ;; Would have used + ;; (message-goto-subject) + ;; but it fails :( + (beginning-of-buffer) + (let ((subject (mail-fetch-field "Subject"))) + ;; Stripper Subject: for SV:- graps hvis + ;; - det er et gyldig Subject-felt + ;; - Subject-feltet starter med noe som inneholder minst 1 [Ss][Vv] + ;; - jeg vil at det skal strippes + (if (and subject + (not (equal subject "")) + (string-match message-subject-re-re subject) + (y-or-n-p "Stripp vekk SV: i Subject? ")) + (let ((replacement (strip-any-re subject))) + (message-remove-header "Subject") + (message-add-header + (concat "Subject: " message-re-string replacement))))))) + +(add-hook 'message-header-setup-hook 'message-subject-strip-any-re) +(setq gnus-treat-display-smileys nil) diff --git a/zshenv b/zshenv new file mode 100644 index 0000000..b50dbe0 --- /dev/null +++ b/zshenv @@ -0,0 +1,19 @@ +export LS_OPTIONS="$LS_OPTIONS -B" +export CVSROOT=~/data/cvs +export EDITOR=/usr/bin/emacs +export TZ=CET +export WWW_HOME=http://localhost/~tfheen/services.html +export LESSOPEN="|$HOME/bin/lesspipe.sh '%s'" +export LESS="-m" +export RSYNC_RSH="/usr/bin/ssh" +export CVS_RSH="/usr/bin/ssh" +export PILOTRATE=115200 +export PILOTPORT=/dev/tts/0 +[ -z "$LANG" ] && export LANG=no_NO +export MAIL=/var/spool/mail/tfheen +export DEBEMAIL=tfheen@debian.org +export HISTSIZE=1000000000 +export HISTFILE=~/.zsh_history +export SAVEHIST=30000000 +export CVSEDITOR=vi +export ldlib=ld-linux.so.2 diff --git a/zshrc b/zshrc new file mode 100644 index 0000000..cd127af --- /dev/null +++ b/zshrc @@ -0,0 +1,52 @@ + +PATH=$HOME/bin:$HOME/usr/bin:$PATH:/usr/local/sbin:/sbin:/usr/sbin +export PATH + +alias mv='nocorrect mv' # no spelling correction on mv +alias cp='nocorrect cp' # no spelling correction on cp +alias mkdir='nocorrect mkdir' # no spelling correction on mkdir + +alias sbeta='ssh beta.hardware.no' +alias salfa='ssh alfa.hardware.no' + +bindkey -e # Emacs-style commandline editing + +PROMPT=': %U%n@%m%u %B%30<..<%~%b %(!.#.>) ' +case "$TERM" in + linux|xterm|ansi|linux-lat|screen) + alias ls="ls --color=tty -FN $LS_OPTIONS" +;; + *) + alias ls="ls -FN $LS_OPTIONS" +;; +esac +alias mirror="wget --mirror --no-parent --convert-links -P $HOME/data/www-mirror " +# The following lines were added by compinstall + +zstyle ':completion:*' completer _list _expand _complete _ignored _match _prefix +zstyle ':completion:*' condition 'NUMERIC != 1' +zstyle ':completion:*' matcher-list '' 'r:|[._-]=* r:|=*' 'm:{a-z}={A-Z} l:|=* r:|=*' +zstyle ':completion:*' match-original both +zstyle ':completion:*' max-errors 1 +zstyle :compinstall filename '/home/tfheen/.zshrc' + +if [ -f ~/.ssh/known_hosts ]; then + hosts=(`awk -F "[, ]" '{print $1}' ~/.ssh/known_hosts`) +fi +if [ -f ~/.ssh/known_hosts2 ]; then + hosts=($hosts `awk -F "[, ]" '{print $1}' ~/.ssh/known_hosts2`) +fi +if [ -f ~/.ssh/config ]; then + hosts=($hosts `grep ^Host ~/.ssh/config | sed s/Host\ // | egrep -v '^\*$'`) +fi +if [ "$hosts" ]; then +zstyle ':completion:*:hosts' hosts $hosts +fi + +autoload -U compinit +compinit +# End of lines added by compinstall + +if [ -x /usr/games/fortune ]; then + /usr/games/fortune +fi