;;Muster gnus von Tadamek ;;* Den Start beschleunigen ! ;;============================================================================= (setq gnus-read-active-file nil) (setq gnus-verbose 10) ;(setq gnus-read-active-file t) (setq gnus-check-new-newsgroups nil) (setq gnus-check-bogus-newsgroups 'ask-server) (setq gnus-newsgroup-adaptive-score-file nil ;;* Mails automatisch aus dem Spool holen ;;============================================================================= (setq nnml-get-new-mail t) ;;* News-Holen-Methode setzen. Hier 'nntp' ;;============================================================================= ;;(setq gnus-select-method '(nntp "localhost")) ;; default method for selecting a newsgroup (setq gnus-select-method '(nntp "") ;; preferred method for fetching an article by Message-ID gnus-refer-article-method '(nntp "news,urbanet.ch") ;; program to post news nnspool-inews-program '"/usr/lib/news/inews" ;; list of secondary methods that will be used for reading news gnus-secondary-select-methods '((nnml "Pieter" ;; spool directory for the nnml mail backend (nnml-directory "~/Mail/") ;; mail active file (nnml-active-file "~/Mail/active") ;; mail newsgroups description file (nnml-newsgroups-file "~/Mail/newsgroups"))) ;; name of the directory articles will be saved in gnus-article-save-directory "~/news/" ;; directory variable from which all other Gnus file variables are derived gnus-directory "~/news/" ;; variable to control where interactive score entries are to go gnus-home-score-file ;; return the score file of the top-level hierarchy of GROUP 'gnus-hierarchial-home-score-file ;; directory where kill files will be stored gnus-kill-files-directory (concat gnus-directory "score/") ) ;;* ;;* Diese Verzeichnisse möchten wir immer angezeigt bekommen, auch leer ;;* oder wenn der Inhalt gelesen wurde ;;============================================================================= ;;(setq gnus-permanently-visible-groups "^\\|^nnml\\|^nnfolder") (setq gnus-permanently-visible-groups "") ;;Larger printing-fonts ;:*====================== ;:* describe-face-at-point, a function to find out which face is which (defun describe-face-at-point () "Return face used at point." (interactive) (hyper-describe-face (get-char-property (point) 'face))) ;;* Alle verfassten News-Artikel automatisch speichern und Mails einmal ;;* im Monat in eine Datei mit Datum verfassen ;;============================================================================= (setq gnus-message-archive-group '((if (message-news-p) "archive-news" (concat "mail." (format-time-string "%Y-%m" (current-time)))))) ;;* Kein quoted-printable mehr als transfer-encoding ;;============================================================================= ;;(add-hook 'message-setup-hook ;; '(lambda () ;; (mime-editor/toggle-transfer-level ;; (if (message-news-p) 8 7)))) ;;* 3 Frames werden hiermit angezeigt, oben die summary, ;;* unten den gewählten Artikel und rechts oben eine permanente ;;* grafische und praktische Threadanzeige ;;============================================================================= (progn (setq gnus-build-sparse-threads 'some gnus-use-trees t gnus-generate-tree-function 'gnus-generate-horizontal-tree gnus-tree-minimize-window nil) (gnus-add-configuration '(article (vertical 1.0 (horizontal 0.25 (summary 0.75 point) (tree 1.0)) (article 1.0))))) ;;* Diverse mögliche Anzeigevariablen ARTICLES ;;============================================================================= ;;* highlighting quotes ;; Quotes (citations) sollen farblich hervorgehoben werden (add-hook 'gnus-article-display-hook 'gnus-article-highlight-citation t) (add-hook 'message-mode-hook 'gnus-article-highlight-citation t) (add-hook 'mail-mode-hook 'gnus-article-highlight-citation t) )) (setq gnus-article-display-hook ;; Header-Teile verstecken, wenn `gnus-have-all-headers' is nil '(gnus-article-hide-headers-if-wanted ;; Alle leeren Zeilen vom Artikel-Anfang an werden gelöscht gnus-article-strip-leading-blank-lines ;; Und restliche leere Zeilen ebenso gnus-article-remove-trailing-blank-lines ;; Hebt den gerade gewählten Artikel hervor gnus-article-highlight ;; Sucht im Header nach einem xface gnus-article-display-x-face ;; Zeigt smileys :-) ;-) als kleine icons an gnus-smiley-display ;; Fügt Buttons in den Header ein gnus-article-add-buttons-to-head ;; Blendet den PGP-Kram im Header und Artikel aus gnus-article-hide-pgp) (setq ;; Highlight cited text gnus-treat-highlight-citation 'last ;; Highlight the signature gnus-treat-highlight-signature 'last) ;;* mark threads ;; Threads sollen markiert werden (setq gnus-summary-same-subject "->") ;; resize summary window to 30% of the screen (gnus-add-configuration '(article (vertical 1.0 (summary .30 point) (article 1.0) ) ) ) ;; Summary-Anzeige angenehmer.;;;; ;* nicer summary-line format ;; So gefällt mir das Summary besser (setq gnus-summary-line-format "%U%R%z%(%I%-55,55s %[%n%]%)\n") ;;Smileys: (cond ((and (string-match "XEmacs\\|Lucid" emacs-version) (or (and (= emacs-major-version 19) (>= emacs-minor-version 15)) (and (= emacs-major-version 20) (>= emacs-minor-version 3)))) (load-library "smiley") (add-hook 'gnus-article-display-hook 'smiley-buffer))) ;;* Den Topic-Mode einschalten ;;============================================================================= (add-hook 'gnus-group-mode-hook 'gnus-topic-mode) ;;* Den Mail- und News-Header konfigurieren ;;============================================================================= (setq message-from-style 'angles user-mail-address "pwenk@urbanet.ch" mail-host-address "mail.urbanet.ch" user-full-name "Pieter Wenk" message-default-headers (concat "Organization: P.Wenk \n") message-syntax-checks '((sender . disabled)) ) ;;* Den Header schon bei der Erstellung erzeugen ;;============================================================================= (setq message-generate-headers-first t) >;;*=========================================================== >;;* Super-Cite Settings: >;;*=========================================================== >;;* >;;* >;;* Start of Super-Cite Settings: >;;*================================ >;;* >;; Set some functions >;;*================================ >;;; citing function which performs the initial citation. (autoload 'sc-cite-original "supercite" "Supercite 3.1" t) ;;; submit a bug report on Supercite via mail (autoload 'sc-submit-bug-report "supercite" "Supercite 3.1" t) ;;; modifying a citation just inserted in the mail buffer (add-hook 'mail-citation-hook 'sc-cite-original) ;;; hook which gets run once after Supercite loads. (add-hook 'sc-load-hook 'sc-setup-filladapt) ;;; function for citing an original message (setq message-cite-function 'sc-cite-original) ;; variable not documented (setq sc-message-cite-original-without-signature t) ;; variable not documented (setq news-reply-header-hook nil) (require 'sc-alist) ;; custom function for German citations (defun sc-header-attributed-schrieb-am () "\"\" == schrieb am : ;; Treats these fields in a similar manner to `sc-header-on-said'." (let ((sc-mumble "") (whofrom (sc-whofrom))) (if whofrom (insert sc-reference-tag-string (sc-hdr "\"" (sc-mail-field "sc-attribution") "\" == ") (sc-hdr "" (sc-mail-field "sc-author") " ") "schrieb am " (sc-mail-field "date") ":\n")))) ;;* ;;* List of reference header rewrite functions ;;*================================ (defvar sc-rewrite-header-list '((sc-no-header) (sc-no-blank-line-or-header) ;; (sc-header-inarticle-wrote) (sc-header-inarticle-writes (sc-header-verbose) (sc-header-on-said) (sc-header-regarding-adds) (sc-header-attributed-wrote) (sc-header-schrieb-am) (sc-header-author-wrote) (sc-header-attributed-schrieb-am) ) ;; "*List of reference header rewrite functions. The variable ;; `sc-preferred-header-style' controls which function in this list is ;; chosen for automatic reference header insertions. Electric reference ;; mode will cycle through this list of functions.") ;;; (setq sc-preferred-attribution-list (list '"sc-header-schrieb-am" "sc-header-author-wrote" "sc-header-regarding-adds" "sc-header-on-said" "firstname" "emailname" "sc-header-attributed-schrieb-am" "lastname")) ;; ;; ;; Number of blank lines to leave after mail headers have been nuked. (setq sc-blank-lines-after-headers 0 ) ;; always confirm attribution string before citing text body (setq sc-confirm-always-p nil ) ;; index into `sc-rewrite-header-list' specifying preferred header style (setq sc-preferred-header-style 8 ) ;; if non-nil, automatically fill each paragraph after it has been cited (setq sc-auto-fill-region-p t ) ;; if non-nil, delete all leading white space before citing (setq sc-fixup-whitespace-p t ) ;; use electric references if non-nil (setq sc-electric-references-p t ) ;; if non-nil, put a citation on blank lines (setq sc-cite-blank-lines-p nil ) ;; whether to use nested or non-nested citation style (setq sc-nested-citation-p t ) ;; The "citation leader". The citation leader is contained in the ;; variable `sc-citation-leader', and has the default value of a ;; string containing four spaces. (setq sc-citation-leader "" ) ;; The "citation separator". The citation separator is contained in ;; the variable `sc-citation-separator', and has the default value of ;; a string containing a single space. (setq sc-citation-separator " " ) ;; string used at the beginning of built-in reference headers (setq sc-reference-tag-string "* " ) ;; The "citation delimiter". This string, contained in the variable ;; `sc-citation-delimiter' visually separates the citation from the ;; text of the line. This variable has a default value of `">"' and ;; for best results, the string should consist of only a single ;; character. (setq sc-citation-delimiter "> " ) ;;* Das Gnus-Mail-System konfigurieren ;;============================================================================= (setq gnus-secondary-select-methods '((nnml "private"))) (setq user-mail-address "pwenk@urbanet.ch") ;;* ;;* Eingehende Mails aufteilen ;;============================================================================ ;;(setq nnmail-split-methods ;; '( ;; ("xemacs-beta" ;;"^\\(To:\\|Cc:\\|CC:\\|Resent\\|Sender:\\).*xemacs-beta") ("robin" ;;"^\\(To:\\|Cc:\\).*robin") ("Intern" "^\\(To:\\).thomas@*") ;; ("Unsort" "") ;; ) ;; ) ;;* ;;* Delete duplicate Mails ;;*============================================================================ (setq nnmail-treat-duplicates 'delete) ;;* No crossposting in Mails ;;*============================================================================ ;;(setq nnmail-crosspost nil) ;;* automatischer Zeilenumbruch ;;*============================================================================ (add-hook 'message-mode-hook 'turn-on-auto-fill) (setq-default fill-column 70) ;;* MIME-Support einschalten ;;*============================================================================ (load "mime-setup") (setq mime-editor/transfer-level 8) (setq mime-editor/split-message nil) ;;NETSCAPE launching *======================= ;:* make netscape use a new window when clicking a URL ; by Karl Kleinpaste (setq browse-url-new-window-p t) (defun karl-browse (a) "Wrapper, for new window use." (browse-url-netscape a t)) (setq browse-url-browser-function (function karl-browse)) ;;* Signature-Datei ;;*============================================================================ (setq gnus-signature-file "~/.signature") ;;* Domaineintrag setzen (keine Ahnung ob's funktioniert) ;;*============================================================================ ;;(concat "<"(message-unique-id)"-pwenk@urbanet.ch>)) ;; And here something in order to get rid of borrowing messages. ;; A nice SCORE DEfinition. ;;* SCORE ;;*================================ ;;* Scoring away stuff I find boring (setq gnus-use-adaptive-scoring t) (defvar gnus-default-adaptive-score-alist '((gnus-unread-mark) (gnus-ticked-mark (from 4)) (gnus-dormant-mark (from 5)) (gnus-del-mark (from -4) (subject -1)) (gnus-read-mark (from 1) (subject 1)) (gnus-expirable-mark (from -1) (subject -1)) (gnus-killed-mark (from -1) (subject -3)) (gnus-kill-file-mark) (gnus-ancient-mark) (gnus-low-score-mark) (gnus-catchup-mark (subject -4) (from -1)) ) ) ;; You may find that your scores have a tendency to grow without bounds, ;; especially if you're using adaptive scoring. If scores get too big, ;; they lose all meaning--they simply max out and it's difficult to use ;; them in any sensible way. (setq gnus-decay-scores t) (defun gnus-decay-score (score) "Decay SCORE. This is done according to `gnus-score-decay-constant' and `gnus-score-decay-scale'." (floor (- score (* (if (< score 0) 1 -1) (min (abs score) (max gnus-score-decay-constant (* (abs score) gnus-score-decay-scale))))))) ;; If not enough, a nice nuke possibility: ;;*================================ ;;* quick nuke people :-) (global-set-key "\C-cx" 'gnus-scum-expunge) ;;* This function should be called from the summary buffer with point ;;* on the article to nuke. It puts a rule in ~/News/SPAMMERS to lower ;;* scores of author ;;* It needs an entry in all.SCORE of (files "~/News/SPAMMERS"). ;; I changed it to only add the from line. (defun gnus-scum-expunge () ;; "Remove this spammer from existance as much as possible." (interactive) (let* ((hdr (gnus-summary-article-header)) (subj (aref hdr 1)) (auth (aref hdr 2)) (artid (aref hdr 4)) (atsign (string-match "@" artid)) (host (substring artid (+ atsign 1) (- (length artid) 1))) (oldscfile gnus-current-score-file)) ;; Change to our spammer score file (gnus-score-change-score-file "SPAMMERS") ;; Add our horrible spammer scores (gnus-summary-score-entry "Subject" subj 'S' -1000 nil) (gnus-summary-score-entry "From" auth 'S' -9999 nil) (gnus-summary-score-entry "Message-ID" host 'S' -5 nil) ; mild ;; Change back to old current score file (gnus-score-change-score-file oldscfile) (gnus-score-save))) ;; Signature limite ;; This one takes care of fucked-up signatures ;; much enhanced version from the example in the docs by Torsten ;; Hilbrich (setq gnus-signature-separator "^\\(-- \\|^-- *\\|________\\========*\\)$") ;; BBDB, das Adressbuch laden ;;============================================================================= ;;etq load-path (cons "/usr2/opt/bbdb-2.00.06/lisp" load-path)) ;;equire 'bbdb) ;;bdb-initialize 'gnus 'message 'sc 'w3) ;;dd-hook 'gnus-startup-hook 'bbdb-insinuate-gnus) ;;dd-hook 'mail-setup-hook 'bbdb-insinuate-sendmail) ;; Wo EMACS sonst noch nach Info-Files suchen soll ;;================================================ ;;etq Info-directory-list '("/usr2/opt/bbdb-2.00.06/texinfo/" ;;home/thomas/pgnus-0.97/texi/")) ;;* BBDB konfigurieren ;;============================================================================= ;;etq bbdb/news-auto-create-p 'bbdb-ignore-most-messages-hook ;;bbdb-ignore-most-messages-alist '(("To" . "wenk*\\|pieter*\\|*@urbanet.ch"))) ;;etq bbdb-notice-hook 'bbdb-auto-notes-hook) ;;etq bbdb-auto-notes-alist '(("Organization" (".*" company 0)) ;; ("X-Newsreader" (".*" mailer 0)) ;; ("X-Mailer" (".*" mailer 0)) ;; ("X-URL" (".*" url 0)) ;; ("Subject" (".*" last-subj 0 t)) ;; )) ;;("Newsgroup ("[^,]+" newsgroups 0)))) ;; ("Subject" (".*" last-subj 0 t)) ;; ("User-Agent" (".*" mailer 0)) ;; ("X-Newsreader" (".*" mailer 0)) ;; ("X-Mailer" (".*" mailer 0)) ;; ("X-URL" (".*" url 0)) ;; )) ;;*So geben wir der BBDB einen Datumsstempel mit auf den Weg ;;dd-hook 'bbdb-change-hook 'bbdb-creation-date-hook) ;;dd-hook 'bbdb-change-hook 'bbdb-timestamp-hook) ;;* und die BBDB-Erweiterung BBDB-Frame laden ;;(load "/usr2/opt/bbdb-frame/bbdb-frame") ;;(define-key bbdb-mode-map "T" 'bbdb-toggle-separate-frame) ;;(define-key bbdb-mode-map "i" 'bbdb-iconify) ;;(define-key bbdb-mode-map "q" 'bbdb-quit-frame) ;;* noch einige Einstellungen für BBDB ;;============================================================================= ;;dd-hook 'gnus-save-newsrc-hook 'bbdb-offer-save) ;;dd-hook 'gnus-exit-group-hook 'bbdb-offer-save) ;;etq bbdb-offer-save 'auto) ;just save, don't ask ;;* noch einige Tasten für BBDB ;;============================================================================= ;;lobal-set-key '(control f10) 'bbdb-create)