;; Set up external browser ;;(setq browse-url-generic-program "mozilla") ;;(setq browse-url-netscape-program "mozilla") ;; ######################### User-Data and FROM ######################### (setq message-from-style 'angles) (setq user-mail-address "martin.carpella@gmx.net") (setq user-full-name "Martin Carpella") (setq mail-host-address "gmx.net") (setq message-syntax-checks '((sender . disabled))) (setq gnus-posting-styles '( ("nntp\\+news\\.fh-hagenberg\\.at:" ;; Hagenberg-Intern (name "Martin Carpella") (address "martin.carpella@fh-hagenberg.at") (signature "ICQ: 14886274\nBlog: http://www.dont-panic.cc/capi/") ) ) ) ;; ### Define the FQDN of this machine. ### (defun message-make-fqdn () "My special hacked version." "msgid.invalid.invalid") ;; ### Setting up SMTP-Server for Windows-use ### (setq smtpmail-smtp-server "localhost") (setq smtpmail-smtp-service "25") (setq send-mail-function 'smtpmail-send-it) (setq message-send-mail-function 'smtpmail-send-it) ;; ### Store all sent Messages (setq gnus-message-archive-group '((if (message-news-p) (concat "news." (format-time-string "%Y-%m" (current-time))) (concat "mail." (format-time-string "%Y-%m" (current-time)))))) ;; ### Directories (setq nndraft-directory "~/News/drafts/") ;; Generate headers immediately, not at posting (setq message-generate-headers-first t) ;; Workaround for ISO-8859-15 / should not be needed in 21.1+ anymore ;;(require 'mm-util) ;;(add-to-list 'mm-charset-synonym-alist '(iso-8859-15 . iso-8859-1)) ;;(add-to-list 'mm-charset-synonym-alist '(Latin1 . iso-8859-1)) (setq gnus-default-charset 'undecided) (defalias 'mm-decode-coding-region-safely 'mm-decode-coding-region) ;; ######################### Display Options ######################### (setq gnus-article-sort-functions (quote (gnus-article-sort-by-score))) (setq gnus-thread-sort-functions (quote (gnus-thread-sort-by-date gnus-thread-sort-by-total-score))) (setq gnus-thread-score-function (quote max)) (setq gnus-use-cache t) (setq gnus-cache-remove-articles (quote (read))) (setq gnus-article-display-hook (quote (gnus-article-add-buttons gnus-article-emphasize gnus-article-fill-cited-article gnus-article-highlight-citation gnus-article-hide-headers-if-wanted gnus-article-hide-boring-headers gnus-article-treat-overstrike gnus-article-maybe-highlight))) (define-key gnus-summary-mode-map '[tab] 'gnus-recenter) (add-hook 'gnus-summary-mode-hook (lambda () (local-set-key "Y*" (quote gnus-summary-insert-cached-articles)) (local-set-key "\t" 'gnus-recenter))) ;; ######################### Layout ######################### ;;(setq gnus-summary-line-format "%U%R%z%-6,6i%I%-2,2t%(%[%4L: %-20,20n%]%) %s\n") ;;(setq gnus-summary-line-format "%U%R%z%-6,6i%-2,2t%([%5L: %-20,20n]%) [%uy] %I%s\n") (setq gnus-summary-line-format "%O%U%R%z%-6,6i%-2,2t%([%4L: %-20,20n]%) [%uy] %I%s\n") (setq gnus-summary-dummy-line-format " | | | | %S\n") (setq gnus-summary-make-false-root 'dummy) (setq gnus-thread-indent-level 2) (setq gnus-simplify-subject-functions '(gnus-simplify-whitespace gnus-simplify-subject-fuzzy)) (setq gnus-summary-same-subject "|-->") (add-hook 'gnus-group-mode-hook 'gnus-topic-mode) (setq gnus-thread-ignore-subject t) ;; Layout for summary, special highlighting for articles >7000 score (likely replies); ;; attention: need to define custom faces in .emacs (setq gnus-summary-highlight (quote ( ((= mark gnus-canceled-mark) . gnus-summary-cancelled-face) ((and (> score 25000)) . gnus-summary-custom-direct-reply) ((and (> score 7000)) . gnus-summary-custom-followup-reply) ((and (>= score 150) (= mark gnus-read-mark)) . gnus-summary-very-interesting-read-face) ((and (>= score 75) (= mark gnus-read-mark)) . gnus-summary-interesting-read-face) ((and (>= score 30) (= mark gnus-read-mark)) . gnus-summary-raised-read-face) ((and (>= score 150) (= mark gnus-killed-mark)) . gnus-summary-very-interesting-read-face) ((and (>= score 75) (= mark gnus-killed-mark)) . gnus-summary-interesting-read-face) ((and (>= score 30) (= mark gnus-killed-mark)) . gnus-summary-raised-read-face) ((and (>= score 150)) . gnus-summary-very-interesting-face) ((and (>= score 75)) . gnus-summary-interesting-face) ((and (>= score 30)) . gnus-summary-raised-face) ((and (> score default) (or (= mark gnus-dormant-mark) (= mark gnus-ticked-mark))) . gnus-summary-high-ticked-face) ((and (< score default) (or (= mark gnus-dormant-mark) (= mark gnus-ticked-mark))) . gnus-summary-low-ticked-face) ((or (= mark gnus-dormant-mark) (= mark gnus-ticked-mark)) . gnus-summary-normal-ticked-face) ((and (> score default) (= mark gnus-ancient-mark)) . gnus-summary-high-ancient-face) ((and (< score default) (= mark gnus-ancient-mark)) . gnus-summary-low-ancient-face) ((= mark gnus-ancient-mark) . gnus-summary-normal-ancient-face) ((and (> score default) (= mark gnus-unread-mark)) . gnus-summary-high-unread-face) ((and (< score default) (= mark gnus-unread-mark)) . gnus-summary-low-unread-face) ((= mark gnus-unread-mark) . gnus-summary-normal-unread-face) ((and (> score default) (memq mark (list gnus-downloadable-mark gnus-undownloaded-mark))) . gnus-summary-high-unread-face) ((and (< score default) (memq mark (list gnus-downloadable-mark gnus-undownloaded-mark))) . gnus-summary-low-unread-face) ((memq mark (list gnus-downloadable-mark gnus-undownloaded-mark)) . gnus-summary-normal-unread-face) ((> score default) . gnus-summary-high-read-face) ((= score default) . gnus-summary-normal-read-face) ((< score default) . gnus-summary-low-read-face) )) ) ;; ######################### Misc ######################### (setq gnus-default-posting-charset (quote iso-8859-1)) (setq gnus-keep-backlog 1000) (setq message-interactive t) (setq gnus-auto-center-summary nil) (setq query-user-mail-address t) (setq gnus-cache-enter-articles (quote (ticked dormant))) (setq nntp-record-commands nil) (setq minibuffer-max-depth nil) ;;(add-hook 'nntp-server-opened-hook 'nntp-send-nosy-authinfo) ;; Definitions für gnus-junk (Zusatzmodul für GNUS) (autoload 'gnus-junk-complain "gnus-junk" "(not loaded yet)" t) ;; ######################### Server ######################### ;; (setq gnus-select-method '(nntp "news.carpella.net")) (setq gnus-select-method '(nntp "news" (nntp-address "localhost") (nntp-port-number 119))) ;; ######################### Linebreak at 72 ######################### (add-hook 'news-reply-mode-hook 'turn-on-auto-fill) (add-hook 'message-mode-hook 'turn-on-auto-fill) (setq-default fill-column 72) ;; ######################### Active File ######################### ;; Don't read active file; don't waste bandwith (setq gnus-read-active-file (quote some)) (setq gnus-use-full-window nil) (setq gnus-check-new-newsgroups nil) (setq gnus-check-bogus-newsgroups nil) (setq gnus-verbose 6) (setq gnus-asynchronous nil) ;; ######################### New Newsgroups ######################### (setq gnus-subscribe-hierarchical-interactive t) (setq gnus-subscribe-newsgroup-method (quote gnus-subscribe-interactively)) (setq query-user-mail-address nil) ;; ######################### E-Mail-Specifications ######################### (setq gnus-secondary-select-methods '( (nnimap "dont-panic" (nnimap-address "mail.coolwool.net") (nnimap-stream tls) (nnimap-expunge-on-close "ask") (nnimap-authinfo-file "/home/martin/.authinfo-gnus") (nnimap-need-unselect-to-notice-new-mail t)) (nnimap "GMX" (nnimap-address "mail.gmx.net") (nnimap-stream tls) (nnimap-expunge-on-close "ask") (nnimap-authinfo-file "/home/martin/.authinfo-gnus") (nnimap-need-unselect-to-notice-new-mail t)) ) ) ;;*================================ ;;* Workaround for quoted printable encoding of attachments ;;*================================ (setq mm-content-transfer-encoding-defaults '(("text/x-patch" 8bit) ("text/.*" qp-or-base64) ("message/rfc822" 8bit) ("application/emacs-lisp" 8bit) ("application/x-patch" 8bit) (".*" base64))) ;; ######################### Functions ######################### (defun nntp-reopen-server () (interactive) (nntp-close-server) (nntp-open-server "news.cis.dfn.de")) (defun gnus-user-format-function-y (header) "Convert the DATE to mm-dd, HH:MM." (format-time-string "%m-%d %R" (gnus-date-get-time (mail-header-date header)))) (defun my-gnus-summary-cancel-article () "Just like gnus-summary-cancel-article, except that it will cancel articles that were not posted by you." (interactive) (let ((orig-error-func (symbol-function 'error))) (fset 'error (lambda (&rest args) (if (or (not (stringp (car args))) (not (string= "This article is not yours" (car args)))) (apply orig-error-func args)))) (unwind-protect (call-interactively 'gnus-summary-cancel-article) (fset 'error orig-error-func)))) (defun my-gnus-summary-supersede-article () "Just like gnus-summary-cancel-article, except that it will cancel articles that were not posted by you." (interactive) (let ((orig-error-func (symbol-function 'error))) (fset 'error (lambda (&rest args) (if (or (not (stringp (car args))) (not (string= "This article is not yours" (car args)))) (apply orig-error-func args)))) (unwind-protect (call-interactively 'gnus-summary-supersede-article) (fset 'error orig-error-func)))) ;; ######################### Scoring ######################### ;; Adaptive-Scoring (setq gnus-use-adaptive-scoring (quote (line))) (setq gnus-score-thread-simplify t) (setq gnus-score-exact-adapt-limit 10) (defvar gnus-default-adaptive-score-alist '((gnus-unread-mark) (gnus-ticked-mark) (gnus-dormant-mark) (gnus-del-mark (followup -1000)) (gnus-read-mark (subject 3)) (gnus-expirable-mark) (gnus-killed-mark (subject -3)) (gnus-kill-file-mark) (gnus-ancient-mark) (gnus-low-score-mark) (gnus-catchup-mark (subject -1)))) ;;(setq gnus-default-adaptive-word-score-alist ;; `((,gnus-read-mark . 1) ;; (,gnus-catchup-mark . -1) ;; (,gnus-killed-mark . -2) ;; (,gnus-del-mark . -10))) ;; As the marks are not known here, replace the symbols with their values (setq gnus-default-adaptive-word-score-alist `((82 . 1) (67 . -1) (75 . -2) (114 . -10))) (setq gnus-ignored-adaptive-words '("und" "der" "die" "das" "ein" "eine" "einer" "eines" "hilfe" "kein" "keine" "suche" "biete" "ist" "bin" "bist" "sind" "war" "waren" "seid" "gewesen" "ich" "du" "er" "sie" "es" "wir" "ihr" "über")) (setq gnus-adaptive-word-minimum -2000) (setq gnus-adaptive-word-no-group-words t) (setq gnus-adaptive-word-length-limit 3) ;; automatic decay of scores (setq gnus-decay-scores t) (setq gnus-score-decay-constant 1) (setq gnus-score-decay-scale 0.05) ;; ##################### AGENT #################### ;; Store read articles in the agent cache ;; Run gnus-agent-expire frequently! (add-hook 'gnus-select-article-hook 'gnus-agent-fetch-selected-article)