Updates
authorJoerg Jaspert <joerg@debian.org>
Sun, 10 Dec 2017 14:50:51 +0000 (15:50 +0100)
committerJoerg Jaspert <joerg@debian.org>
Sun, 10 Dec 2017 14:50:51 +0000 (15:50 +0100)
.emacs.d/config/emacs.org

index 3f02b09..2aff8b7 100644 (file)
@@ -1058,8 +1058,11 @@ Now I want the buffers of it appear in sh-mode by default
 #+BEGIN_SRC emacs-lisp
 (add-auto-mode 'sh-mode "zshe.*$")
 #+END_SRC
-
-
+*** No need for lockfiles (foo~)
+[2017-12-08 Fri 09:29]
+#+BEGIN_SRC emacs-lisp
+(setq create-lockfiles nil)
+#+END_SRC
 * Customized variables
 [2013-05-02 Thu 22:14]
 The following contains a set of variables i may reasonably want to
@@ -1486,7 +1489,11 @@ Shell. zsh in my case.
      ;; Compilation command
      (add-hook 'LaTeX-mode-hook (lambda () (setq compile-command "latexmk -pdf")))))
  #+END_SRC
-** auto-complete mode
+** CANCELLED auto-complete mode                                  :CANCELLED:
+CLOSED: [2017-12-08 Fri 15:25]
+:LOGBOOK:
+- State "CANCELLED"  from              [2017-12-08 Fri 15:25]
+:END:
  [2013-04-27 Sa 16:33]
  And aren't we all lazy? I definitely am, and I like my emacs doing as
  much possible work for me as it can.
@@ -1575,6 +1582,57 @@ Shell. zsh in my case.
 
      (hook-into-modes 'auto-complete-mode '(latex-mode-hook LaTeX-mode-hook prog-mode-hook html-mode lisp-mode css-mode org-mode-hook))))
  #+END_SRC
+** company-mode
+[2017-12-08 Fri 09:42]
+Auto-completion comp any mode.
+#+BEGIN_SRC emacs-lisp
+(use-package company               
+  :ensure t
+  :defer t
+  :diminish company-mode
+  :init (global-company-mode)
+  :config
+  (progn
+    ;; Use Company for completion
+    (bind-key [remap completion-at-point] #'company-complete company-mode-map)
+    (global-company-mode)
+
+    (setq company-dabbrev-downcase nil)
+    (setq company-echo-delay 0)
+    (setq company-idle-delay 0.2)
+    (setq company-minimum-prefix-length 2)
+    (setq company-require-match nil)
+    (setq company-selection-wrap-around t)
+    (setq company-show-numbers t)
+    (setq company-tooltip-align-annotations t)
+    (setq company-tooltip-flip-when-above t)
+    (setq company-tooltip-limit 10)
+    (setq company-transformers '(company-sort-by-occurrence)) ; weight by frequency
+    ))
+
+(use-package company-quickhelp          ; Documentation popups for Company
+  :ensure t
+  :defer t
+  :init (add-hook 'global-company-mode-hook #'company-quickhelp-mode))
+
+(use-package company-statistics
+    :ensure t
+    :config
+    (add-hook 'after-init-hook 'company-statistics-mode))
+
+(use-package company-go
+  :ensure t
+  :defer t
+  :init
+  (with-eval-after-load 'company
+    (add-to-list 'company-backends 'company-go)))
+
+(use-package company-auctex
+  :ensure t)
+
+(use-package company-jedi
+  :ensure t)
+#+END_SRC
 
 ** auto-revert
  When files change outside emacs for whatever reason I want emacs to deal
@@ -2560,12 +2618,17 @@ Eww - Emacs browser (needs emacs 24.4 or higher)
      ))
  #+END_SRC
 
-** filladapt
+** CANCELLED filladapt                                           :CANCELLED:
+CLOSED: [2017-12-10 So 14:58]
+:LOGBOOK:
+- State "CANCELLED"  from              [2017-12-10 So 14:58] \\
+  Old style backquotes
+:END:
  [2013-05-02 Thu 00:04]
  Filladapt by KyleJones enhances Emacs’ fill functions by guessing a
  fill prefix, such as a comment sequence in program code, and handling
  bullet points like “1.” or “*”.
- #+BEGIN_SRC emacs-lisp
+ #+BEGIN_SRC emacs-lisp :tangle no
  (use-package filladapt
    :load-path ("elisp/local")
    :diminish filladapt-mode
@@ -2749,532 +2812,529 @@ CLOSED: [2017-08-26 Sat 15:07]
  Most of my gnus config is in an own file, [[file:gnus.org][gnus.org]], here I only have
  what I want every emacs to know.
  #+BEGIN_SRC emacs-lisp
-  (use-package gnus
-    :commands (gnus)
-    :bind (("C-c g" . gnus)
-           :map gnus-summary-mode-map
-           ("<f6>" . jj-forward-spam)
-           ("C-<f1>" . jj-move-mail-spambox)
-           ("C-<f2>" . jj-copy-mail-hambox)
-           ("C-c x" . gnus-scum-expunge)
-           :map gnus-group-mode-map
-           ("GG" . notmuch-search)
-           :map notmuch-show-mode-map
-           ("C-c C-c" . lld-notmuch-goto-message-in-gnus)
-           )
-    :init
-    (progn
-      (after 'gnus
-        (jj-init-theme))
-      )
-    :config
-    (progn
-      (bbdb-initialize)
-      ; When emacs exits, gnus does too, no need to ask me
-      (defun exit-gnus-on-exit ()
-        (if (and (fboundp 'gnus-group-exit)
-                 (gnus-alive-p))
-            (with-current-buffer (get-buffer "*Group*")
-              (gnus-group-exit))))
-      (add-hook 'kill-emacs-hook 'exit-gnus-on-exit)
-    
-      ;; prettier summary buffers
-      
-        (setq gnus-sum-thread-tree-indent " ") ;; " "
-        (setq gnus-sum-thread-tree-root "\u229e ") ;; "⊞ "
-        (setq gnus-sum-thread-tree-false-root "\u22a1 ") ;; "⊡ "
-        (setq gnus-sum-thread-tree-single-indent "  ") ;; " "
-        (setq gnus-sum-thread-tree-vertical " \u2502") ;; " │"
-        (setq gnus-sum-thread-tree-leaf-with-other " \u251c\u2500 ") ;; " ├─ "
-        (setq gnus-sum-thread-tree-single-leaf " \u2570\u2500 ") ;; " ╰─ "
-
-      (use-package gnus-cite
-        :config
-        (progn
-          (defface dwa/mail-citation '((((class color)
-                                         (background dark))
-                                        (:background "#383838"))
-                                       (((class color)
-                                         (background light))
-                                        (:background "#efefef")))
-            "Mail citation base face.")
-          (loop for x in gnus-cite-face-list do
-                (set-face-attribute x nil ':inherit 'dwa/mail-citation))))
-
-      (use-package time-date
-        :config
-        (setq message-citation-line-function 'september-citation-line))
-
-      (setq message-subscribed-address-functions
-            '(gnus-find-subscribed-addresses))
-
-      (if (string-match system-name "delenn.ganneff.de")
+    (use-package gnus
+      :commands (gnus)
+      :bind (("C-c g" . gnus)
+             :map gnus-summary-mode-map
+             ("<f6>" . jj-forward-spam)
+             ("C-<f1>" . jj-move-mail-spambox)
+             ("C-<f2>" . jj-copy-mail-hambox)
+             ("C-c x" . gnus-scum-expunge)
+             :map gnus-group-mode-map
+             ("GG" . notmuch-search)
+             :map notmuch-show-mode-map
+             ("C-c C-c" . lld-notmuch-goto-message-in-gnus)
+             )
+      :init
+      (progn
+        (after 'gnus
+          (jj-init-theme))
+        )
+      :config
+      (progn
+        (bbdb-initialize)
+        ; When emacs exits, gnus does too, no need to ask me
+        (defun exit-gnus-on-exit ()
+          (if (and (fboundp 'gnus-group-exit)
+                   (gnus-alive-p))
+              (with-current-buffer (get-buffer "*Group*")
+                (gnus-group-exit))))
+        (add-hook 'kill-emacs-hook 'exit-gnus-on-exit)
+
+        ;; prettier summary buffers
+
+          (setq gnus-sum-thread-tree-indent " ") ;; " "
+          (setq gnus-sum-thread-tree-root "\u229e ") ;; "⊞ "
+          (setq gnus-sum-thread-tree-false-root "\u22a1 ") ;; "⊡ "
+          (setq gnus-sum-thread-tree-single-indent "  ") ;; " "
+          (setq gnus-sum-thread-tree-vertical " \u2502") ;; " │"
+          (setq gnus-sum-thread-tree-leaf-with-other " \u251c\u2500 ") ;; " ├─ "
+          (setq gnus-sum-thread-tree-single-leaf " \u2570\u2500 ") ;; " ╰─ "
+
+        (use-package gnus-cite
+          :config
           (progn
-            (setq imap-ssl-program "openssl s_client -no_ssl2 -no_ssl3 -tls1 -connect %s:%p")
-
-            (use-package notmuch
-              :config
-              (setq notmuch-search-oldest-first nil))
-            (use-package org-gnus)
-          
-            (setq gnus-secondary-select-methods
-                  '((nnml "")
-
-                    (nnimap "nsb"
-                            (nnimap-address "localhost")
-                            (nnimap-user "nsb@auth")
-                            (nnimap-nov-is-evil t)
-                            (nnimap-stream network)
-                            (nnir-search-engine notmuch)
-                            )
-                    (nnimap "gmail"
-                            (nnimap-address "localhost")
-                            (nnimap-user "gmail@auth")
-                            (nnimap-stream network)
-                            (nnimap-nov-is-evil t)
-                            (nnir-search-engine notmuch)
-                            )
+            (defface dwa/mail-citation '((((class color)
+                                           (background dark))
+                                          (:background "#383838"))
+                                         (((class color)
+                                           (background light))
+                                          (:background "#efefef")))
+              "Mail citation base face.")
+            (loop for x in gnus-cite-face-list do
+                  (set-face-attribute x nil ':inherit 'dwa/mail-citation))))
+
+        (use-package time-date
+          :config
+          (setq message-citation-line-function 'september-citation-line))
+
+        (setq message-subscribed-address-functions
+              '(gnus-find-subscribed-addresses))
+
+        (if (string-match system-name "delenn.ganneff.de")
+            (progn
+              (setq imap-ssl-program "openssl s_client -no_ssl2 -no_ssl3 -tls1 -connect %s:%p")
+
+              (use-package notmuch
+                :config
+                (setq notmuch-search-oldest-first nil))
+              (use-package org-gnus)
+
+              (setq gnus-secondary-select-methods
+                    '((nnml "")
+
+                      (nnimap "nsb"
+                              (nnimap-address "localhost")
+                              (nnimap-user "nsb@auth")
+                              (nnimap-nov-is-evil t)
+                              (nnimap-stream network)
+                              (nnir-search-engine notmuch)
+                              )
+                      (nnimap "gmail"
+                              (nnimap-address "localhost")
+                              (nnimap-user "gmail@auth")
+                              (nnimap-stream network)
+                              (nnimap-nov-is-evil t)
+                              (nnir-search-engine notmuch)
+                              )
+                      ))
+              ;;** Von wo holt Gnus News
+              (setq gnus-select-method '(nnimap "ganneff"
+                                                (nnimap-address "localhost")
+                                                (nnimap-user "ganneff@auth")
+                                                (nnimap-stream network)
+                                                (nnimap-nov-is-evil t)
+                                                (nnir-search-engine notmuch)
+                                                ))
+              ;;** Kopien aller Mails/News speichern
+              (setq gnus-message-archive-group
+                    '((if (message-news-p)
+                          "nnfolder+archive:Sentnews"
+                        "nnimap+ganneff:Sentmail")))
+              )
+          )
+        (setq nnir-mail-backend (nth 1 gnus-secondary-select-methods))
+
+        ;;** dont always read the active file.
+        (setq gnus-read-active-file 'some)
+
+        ;;** nnimap nich cachen, ebenso nnml
+        (setq gnus-uncacheable-groups "^\\(nnml\\|nnimap\\)")
+
+        ;;** Bei langsamer Anbindung dies auf t setzen
+        (setq gnus-asynchronous t)
+
+        ;;** Mein Gnus soll regelmaessig nach neuen Mails/News schauen.
+        (gnus-demon-add-handler 'us-get-only-mail 20 10)
+        (gnus-demon-init)
+
+        ;; Set the default value of `mm-discouraged-alternatives'.
+        (eval-after-load "gnus-sum"
+          '(add-to-list
+            'gnus-newsgroup-variables
+            '(mm-discouraged-alternatives
+              . '("text/html" "text/richtext"))))
+
+        ;; Display `text/html' parts in `nnrss' groups only.
+        (add-to-list
+         'gnus-parameters
+         '("\\`nnrss:" (mm-discouraged-alternatives nil)))
+
+        ;;** Message Size Limit
+        (setq message-send-mail-partially-limit 5000000)
+
+        (setq message-send-mail-function 'message-send-mail-with-sendmail)
+        (setq smtpmail-default-smtp-server "localhost")
+        (setq message-sendmail-envelope-from 'header)
+
+        ;;** Keinen Sender Header zufuegen !
+        (add-to-list 'message-syntax-checks '(sender . disabled))
+
+        ;;** Auto-Subscribe
+        (setq gnus-auto-subscribed-groups
+              (concat gnus-auto-subscribed-groups
+                      "\\|^nnimap*"))
+
+        ;;** Kaputte Subjects Aw: Statt Re: fixen:
+        (setq message-subject-re-regexp "^[     ]*\\([RrAaFf][EeWw]:[   ]*\\)*[         ]*")
+
+        ;;** Immer Gruppen nach Topics anzeigen
+        (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
+
+        ;;** Summary Anzeige umdefinieren.
+        (setq gnus-summary-line-format "%U%R%z (%4k) %uy%* %B%(%[ %-22,22f %]%) %s\n")
+        (setq gnus-summary-gather-subject-limit 'fuzzy)
+
+        ;;** Und die Gruppenanzeige will ich auch anders. Will sehen wann ich zuletzt da reingesehen hab.
+        (setq gnus-group-line-format
+              "%M%S%p%P %4ux/%4i/%6R: %(%-55,55ug%3O%)%l <%2,2~(cut 6)d.%2,2~(cut 4)d.%2,2~(cut 2)d>\n")
+
+        ;;** Different topic lines
+        (setq gnus-topic-line-format "%i[ %u&topic-line; ] %v\n")
+
+        ;;** Für die umdefinierte Gruppenanzeige muss Gnus aber einen Timestamp in der Gruppe speichern.
+        (add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)
+
+        ;;** Ich will manchmal den Empfänger statt des Absenders sehen
+        (setq gnus-extra-headers '(To Newsgroups Newsgroup Cc))
+        (setq nnmail-extra-headers gnus-extra-headers)
+        (setq gnus-ignored-from-addresses '("\\(\\(\\(joerg\\)\\(\\.jaspert\\)?\\)\\|root\\|gf\\)@\\(debian\\.org\\|ganneff\\.de\\|debconf\\.org\\|spi-inc\\.org\\|nsb-software\\.de\\|dlh\\.de\\)"))
+
+        ;; Don't send to these address in wide reply.
+        (setq message-dont-reply-to-names  (append '("notifications@github\\.com"
+                                                     ".*@noreply\\.github\\.com"
+                                                     )
+                                            gnus-ignored-from-addresses))
+
+        ;;** Threads um 2 Zeichen einruecken.
+        (setq gnus-thread-indent-level 1)
+
+        ;;** Posting Styles. Nettes Feature
+        (setq gnus-posting-styles
+              '(
+                (".*"
+                 (from "Joerg Jaspert <joerg@ganneff.de>")) ; Globale Einstellung
+                ("Allgemein.Sabrina"
+                 (from "Joerg (悠軻) Jaspert <joerg@debian.org>"))
+                ("Debian.Private"
+                 (from "Joerg Jaspert <joerg@debian.org>")
+                 (signature-file "~/.signature.private"))
+                ("dlh"
+                 (from "Joerg Jaspert <joerg@nsb-software.de>")
+                 (signature-file "~/.signature.nsb")
+                 (organization "NSB Nguyen Softwareentwicklung & beratung GmbH")
+                 (gcc "nnimap+nsb:Sent"))
+                ("nnimap\\+nsb:.*"
+                 (from "Joerg Jaspert <joerg@nsb-software.de>")
+                 (signature-file "~/.signature.nsb")
+                 (organization "NSB Nguyen Softwareentwicklung & beratung GmbH")
+                 (gcc "nnimap+nsb:Sent"))
+                ("nnimap\\+nsb:shared.gf.*"
+                 (from "Joerg Jaspert <gf@nsb-software.de>"))
+                ("Debian"
+                 (from "Joerg Jaspert <joerg@debian.org>"))
+                ("Debian.AM"
+                 (Gcc "nnimap+ganneff:Debian.AM"))
+                ("Debian.DAM"
+                 (reply-to "Debian Account Managers <da-manager@debian.org>"))
+                ("Debconf"
+                 (from "Joerg Jaspert <joerg@debconf.org>"))
+                ("Bugs"
+                 (from "Joerg Jaspert <joerg@debian.org>"))
+                ("SPI"
+                 (from "Joerg Jaspert <joerg@debian.org>"))
+                ))
+
+
+        ;;** Ich will die Header in den Nachrichten sehen die ich schreibe.
+        (setq message-generate-headers-first t)
+
+        ;;** Und immer schoen Header zufuegen.
+        (setq message-default-headers (concat "Organization: Ganneff\n"))
+        (add-hook 'message-send-hook 'my-message-add-content)
+
+        ;;** Und Courtesy-Mails wollen wir schon mal grad gar nicht
+        (add-hook 'message-header-setup-hook 'my-message-header-setup-hook)
+
+        ;;** Antworten auf meine Nachrichten hervorheben, hochscoren
+        (add-hook 'message-sent-hook 'gnus-score-followup-article)
+        (add-hook 'message-sent-hook 'gnus-score-followup-thread)
+
+        ;;** In Forwards bitte das Subject aufraeumen
+        (setq message-wash-forwarded-subjects t)
+
+        ;;** Zitieren ohne Sig. Ausser Idioten sind zu doof die korrekt abzutrennen.
+        (setq message-cite-function 'message-cite-original-without-signature)
+
+        ;;** Grosse Newsgroups. Gnus fragt da laestigerweise immer nach.
+        ;;** Aber da ich viele grosse Gruppen und nen schnellen Rechner habe
+        ;;** soll der erst recht spaet nachfragen. Erst wenns wirklich fies wird. 
+        (setq gnus-large-newsgroup "15000")
+
+        ;;** Beim Betreten einer Gruppe keinen Artikel auswählen. Gegen Adaptive Scoring iss des !
+        (setq gnus-auto-select-first nil)
+
+        ;;** Wenn ich in einer Gruppe fertig bin soll Gnus nich fragen ob ich in
+        ;;** die naechste will. Es soll einfach tun.
+        (setq gnus-auto-select-next 'quietly)
+
+        ;;** Hervorhebungen (Unterstrichen und Fett bei "_X_" und "*X*")
+        (add-hook 'gnus-article-display-hook 'gnus-article-emphasize t)
+
+        ;;** Gnus Visible Headers
+        (setq gnus-visible-headers
+              '("^From:"
+                "^Newsgroups:"
+                "^Subject:"
+                "^Date:"
+                "^Followup-To:"
+                "^Reply-To:"
+                "^Organization:"
+                "^Summary:"
+                "^Keywords:"
+                "^To:"
+                "^[BGF]?Cc:"
+                "^Posted-To:"
+                "^Mail-Copies-To:"
+                "^Apparently-To:"
+                "^X-Gnus-Warning:"
+                "^Resent-From:"
+                "^Xref:"
+                "^X-Spam-Status:"
+                "^X-Sent:"
+                "^X-Mailer:"
+                "^X-Newsreader:"
+                "^X-User-Agent:"
+                "^User-Agent:"))
+
+        ;;; Order of headers
+        (setq gnus-sorted-header-list '("^From:"
+                                        "^Subject:"
+                                        "^Summary:"
+                                        "^Keywords:"
+                                        "^Newsgroups:"
+                                        "^Followup-To:"
+                                        "^To:"
+                                        "^Cc:"
+                                        "^Date:"
+                                        "^Organization:"
+                                        "^User-Agent:"
+                                        "^X-Mailer:"
+                                        "^X-Newsreader:"))
+
+        ;;** Automagischen Zeilenumbruch bei News/Mailangabe nach 72 Zeichen. SO wies sein soll.
+        (add-hook 'message-mode-hook
+                  (lambda ()
+                    (setq fill-column 72)
+                    (turn-on-auto-fill)
+                    (epa-mail-mode 1)
                     ))
-            ;;** Von wo holt Gnus News
-            (setq gnus-select-method '(nnimap "ganneff"
-                                              (nnimap-address "localhost")
-                                              (nnimap-user "ganneff@auth")
-                                              (nnimap-stream network)
-                                              (nnimap-nov-is-evil t)
-                                              (nnir-search-engine notmuch)
-                                              ))
-            ;;** Kopien aller Mails/News speichern
-            (setq gnus-message-archive-group
-                  '((if (message-news-p)
-                        "nnfolder+archive:Sentnews"
-                      "nnimap+ganneff:Sentmail")))
-            )
+
+        ;;** Save gnus score files. Ziemlich doof wenn nicht
+        (setq gnus-save-score t)
+
+        ;;** Score Einstellungen. Welches Global File und woher die Scores holen.
+        (setq gnus-global-score-files '("~/News/all.SCORE"))
+        (setq gnus-score-find-score-files-function '(gnus-score-find-bnews bbdb/gnus-score))
+
+        ;;** Adaptives Scoring
+        (setq gnus-use-adaptive-scoring t)
+        (defvar gnus-default-adaptive-score-alist
+          '((gnus-unread-mark)
+            (gnus-ticked-mark (from 5))
+            (gnus-dormant-mark (from 6))
+            (gnus-del-mark (subject -5))
+            (gnus-read-mark (from 5) (subject 3))
+            (gnus-expirable-mark (from -2) (subject -2))
+            (gnus-killed-mark (from -2) (subject -4))
+            (gnus-kill-file-mark)
+            (gnus-ancient-mark)
+            (gnus-low-score-mark)
+            (gnus-catchup-mark (subject -3))
+            ))
+
+        ;;** Damit ich nicht mit Megabytegrossen Scorefiles rummachen muss, muss bei Adaptive-Scoring
+        ;;** der Kram automagisch gelöscht werden. Sonst hats keinen Sinn ! 
+        (setq gnus-decay-scores t)
+
+        ;;** Artikel mit weniger Score werden nicht angezeigt
+        (setq gnus-summary-expunge-below -1000)
+
+        ;;** work around unimplemented handling of multiple similar attachments
+        ;;** (recommended by ShengHuo Zhu Fri 20 Jul 2001 13:14)
+        (setq gnus-mime-display-multipart-related-as-mixed t)
+
+        ;;** Bilderchen direkt anzeigen.
+        (setq mm-inline-large-images t)
+
+        ;;** ueberfluessige Leerzeilen loeschen
+        (setq gnus-treat-strip-trailing-blank-lines t)
+        (setq gnus-treat-strip-leading-blank-lines t)
+
+        ;;** Falsch gebaute Attachments ? Nich mit mir. Nuja, UUE wech. Was solls. Will ich eh nich haben
+        (setq mm-uu-configure-list '((uu . disabled)))
+
+        ;; (use-package message-utils
+        ;;   :commands (message-mark-inserted-region message-mark-insert-file message-strip-subject-was message-change-subject message-xpost-fup2 message-add-archive-header message-reduce-to-to-cc)
+        ;;   :bind ((:map message-mode-map
+        ;;                ("C-c m" . message-mark-inserted-region)
+        ;;                ("C-c f" . message-mark-insert-file)
+        ;;                ("C-c x" . message-xpost-fup2)
+        ;;                ("C-c s" . message-change-subject)
+        ;;                ("C-c a" . message-add-archive-header)
+        ;;                ("C-c t" . message-reduce-to-to-cc)
+        ;;                )))
+        (add-hook 'message-header-setup-hook 'message-strip-subject-was)
+        ;(add-hook 'message-setup-hook 'message-utils-setup)
+
+        ;;** Nun das Paket um einfachst Fussnoten eingeben zu können.
+        (use-package footnote
+          :commands (footnote-mode)
+          :config
+          (setq footnote-body-tag-spacing 1
+                footnote-spaced-footnotes nil
+                footnote-style 'numeric-latin
+                footnote-section-tag "Fussnoten: "))
+        (add-hook 'message-mode-hook 'footnote-mode)
+
+        ;;** Meine Smileys mag ich gelb
+        (use-package smiley
+          :init
+          (progn
+            (setq gnus-treat-display-smileys t)
+            (setq smiley-flesh-color "Yellow")
+            (setq smiley-data-directory "~/emacs/etc/smilies/")))
+
+        (use-package mml-sec
+          :commands (sign-or-crypt)
+          :config
+          (progn
+            (setq mm-verify-option 'always)
+            ;; Keine extra Signatur erzeugen.
+            (mml-signencrypt-style "pgpmime" 'combined)
+            (setq mml-secure-openpgp-sign-with-sender 't)
+            (setq gpg-unabbrev-trust-alist
+                  '(("TRUST_UNDEFINED" . trust-undefined)
+                    ("TRUST_NEVER"     . trust-none)
+                    ("TRUST_MARGINAL"  . trust-marginal)
+                    ("TRUST_FULLY"     . trust-full)
+                    ("TRUST_ULTIMATE"  . trust-ultimate)))
+            ))
+        (add-hook 'gnus-message-setup-hook 'sign-or-crypt)
+
+        ;;** utf-8, coding systems
+        (setq mm-coding-system-priorities
+              '(iso-latin-1 iso-latin-9 utf-8))
+
+        (unify-8859-on-encoding-mode 1)
+        (unify-8859-on-decoding-mode 1)
+        (prefer-coding-system 'latin-9)
+        (prefer-coding-system 'latin-1)
+        (prefer-coding-system 'utf-8)
+
+        ;;** org-mode
+        (add-hook 'message-mode-hook 'orgstruct++-mode 'append)
+        (add-hook 'message-mode-hook 'orgtbl-mode 'append)
+
+        (use-package message-x
+          :ensure t)
+
+        (use-package randomsig
+          :bind (:map message-mode-map
+                 ("C-c s" . randomsig-replace-sig)
+                 ("C-c S" . randomsig-select-sig))
+          :config
+          (progn
+            (setq randomsig-dir "/home/joerg/sigs")
+            (setq message-signature 'randomsig-signature)))
+
+        (use-package sieve
+          :mode ("\\.siv\\'" . sieve-mode)
+          :config
+          (require 'gnus-sieve)
         )
-      (setq nnir-mail-backend (nth 1 gnus-secondary-select-methods))
-
-      ;;** dont always read the active file.
-      (setq gnus-read-active-file 'some)
-
-      ;;** nnimap nich cachen, ebenso nnml
-      (setq gnus-uncacheable-groups "^\\(nnml\\|nnimap\\)")
-
-      ;;** Bei langsamer Anbindung dies auf t setzen
-      (setq gnus-asynchronous t)
-
-      ;;** Mein Gnus soll regelmaessig nach neuen Mails/News schauen.
-      (gnus-demon-add-handler 'us-get-only-mail 20 10)
-      (gnus-demon-init)
-
-      ;; Set the default value of `mm-discouraged-alternatives'.
-      (eval-after-load "gnus-sum"
-        '(add-to-list
-          'gnus-newsgroup-variables
-          '(mm-discouraged-alternatives
-            . '("text/html" "text/richtext"))))
-
-      ;; Display `text/html' parts in `nnrss' groups only.
-      (add-to-list
-       'gnus-parameters
-       '("\\`nnrss:" (mm-discouraged-alternatives nil)))
-
-      ;;** Message Size Limit
-      (setq message-send-mail-partially-limit 5000000)
-
-      (setq message-send-mail-function 'message-send-mail-with-sendmail)
-      (setq smtpmail-default-smtp-server "localhost")
-      (setq message-sendmail-envelope-from 'header)
-
-      ;;** Keinen Sender Header zufuegen !
-      (add-to-list 'message-syntax-checks '(sender . disabled))
-
-      ;;** Auto-Subscribe
-      (setq gnus-auto-subscribed-groups
-            (concat gnus-auto-subscribed-groups
-                    "\\|^nnimap*"))
-
-      ;;** Kaputte Subjects Aw: Statt Re: fixen:
-      (setq message-subject-re-regexp "^[     ]*\\([RrAaFf][EeWw]:[   ]*\\)*[         ]*")
-
-      ;;** Immer Gruppen nach Topics anzeigen
-      (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
-
-      ;;** Summary Anzeige umdefinieren.
-      (setq gnus-summary-line-format "%U%R%z (%4k) %uy%* %B%(%[ %-22,22f %]%) %s\n")
-      (setq gnus-summary-gather-subject-limit 'fuzzy)
-
-      ;;** Und die Gruppenanzeige will ich auch anders. Will sehen wann ich zuletzt da reingesehen hab.
-      (setq gnus-group-line-format
-            "%M%S%p%P %4ux/%4i/%6R: %(%-55,55ug%3O%)%l <%2,2~(cut 6)d.%2,2~(cut 4)d.%2,2~(cut 2)d>\n")
-
-      ;;** Different topic lines
-      (setq gnus-topic-line-format "%i[ %u&topic-line; ] %v\n")
-
-      ;;** Für die umdefinierte Gruppenanzeige muss Gnus aber einen Timestamp in der Gruppe speichern.
-      (add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)
-
-      ;;** Ich will manchmal den Empfänger statt des Absenders sehen
-      (setq gnus-extra-headers '(To Newsgroups Newsgroup Cc))
-      (setq nnmail-extra-headers gnus-extra-headers)
-      (setq gnus-ignored-from-addresses '("\\(\\(\\(joerg\\)\\(\\.jaspert\\)?\\)\\|root\\|gf\\)@\\(debian\\.org\\|ganneff\\.de\\|debconf\\.org\\|spi-inc\\.org\\|nsb-software\\.de\\|dlh\\.de\\)"))
-
-      ;; Don't send to these address in wide reply.
-      (setq message-dont-reply-to-names  (append '("notifications@github\\.com"
-                                                   ".*@noreply\\.github\\.com"
-                                                   )
-                                          gnus-ignored-from-addresses))
-
-      ;;** Threads um 2 Zeichen einruecken.
-      (setq gnus-thread-indent-level 1)
-
-      ;;** Posting Styles. Nettes Feature
-      (setq gnus-posting-styles
-            '(
-              (".*"
-               (from "Joerg Jaspert <joerg@ganneff.de>")) ; Globale Einstellung
-              ("Allgemein.Sabrina"
-               (from "Joerg (悠軻) Jaspert <joerg@debian.org>"))
-              ("Debian.Private"
-               (from "Joerg Jaspert <joerg@debian.org>")
-               (signature-file "~/.signature.private"))
-              ("dlh"
-               (from "Joerg Jaspert <joerg@nsb-software.de>")
-               (signature-file "~/.signature.nsb")
-               (organization "NSB Nguyen Softwareentwicklung & beratung GmbH")
-               (gcc "nnimap+nsb:Sent"))
-              ("nnimap\\+nsb:.*"
-               (from "Joerg Jaspert <joerg@nsb-software.de>")
-               (signature-file "~/.signature.nsb")
-               (organization "NSB Nguyen Softwareentwicklung & beratung GmbH")
-               (gcc "nnimap+nsb:Sent"))
-              ("nnimap\\+nsb:shared.gf.*"
-               (from "Joerg Jaspert <gf@nsb-software.de>"))
-              ("Debian"
-               (from "Joerg Jaspert <joerg@debian.org>"))
-              ("Debian.AM"
-               (Gcc "nnimap+ganneff:Debian.AM"))
-              ("Debian.DAM"
-               (reply-to "Debian Account Managers <da-manager@debian.org>"))
-              ("Debconf"
-               (from "Joerg Jaspert <joerg@debconf.org>"))
-              ("Bugs"
-               (from "Joerg Jaspert <joerg@debian.org>"))
-              ("SPI"
-               (from "Joerg Jaspert <joerg@debian.org>"))
-              ))
-
-
-      ;;** Ich will die Header in den Nachrichten sehen die ich schreibe.
-      (setq message-generate-headers-first t)
-
-      ;;** Und immer schoen Header zufuegen.
-      (setq message-default-headers (concat "Organization: Ganneff\n"))
-      (add-hook 'message-send-hook 'my-message-add-content)
-
-      ;;** Und Courtesy-Mails wollen wir schon mal grad gar nicht
-      (add-hook 'message-header-setup-hook 'my-message-header-setup-hook)
-
-      ;;** Antworten auf meine Nachrichten hervorheben, hochscoren
-      (add-hook 'message-sent-hook 'gnus-score-followup-article)
-      (add-hook 'message-sent-hook 'gnus-score-followup-thread)
-
-      ;;** In Forwards bitte das Subject aufraeumen
-      (setq message-wash-forwarded-subjects t)
-
-      ;;** Zitieren ohne Sig. Ausser Idioten sind zu doof die korrekt abzutrennen.
-      (setq message-cite-function 'message-cite-original-without-signature)
-
-      ;;** Grosse Newsgroups. Gnus fragt da laestigerweise immer nach.
-      ;;** Aber da ich viele grosse Gruppen und nen schnellen Rechner habe
-      ;;** soll der erst recht spaet nachfragen. Erst wenns wirklich fies wird. 
-      (setq gnus-large-newsgroup "15000")
-
-      ;;** Beim Betreten einer Gruppe keinen Artikel auswählen. Gegen Adaptive Scoring iss des !
-      (setq gnus-auto-select-first nil)
-
-      ;;** Wenn ich in einer Gruppe fertig bin soll Gnus nich fragen ob ich in
-      ;;** die naechste will. Es soll einfach tun.
-      (setq gnus-auto-select-next 'quietly)
-
-      ;;** Hervorhebungen (Unterstrichen und Fett bei "_X_" und "*X*")
-      (add-hook 'gnus-article-display-hook 'gnus-article-emphasize t)
-
-      ;;** Gnus Visible Headers
-      (setq gnus-visible-headers
-            '("^From:"
-              "^Newsgroups:"
-              "^Subject:"
-              "^Date:"
-              "^Followup-To:"
-              "^Reply-To:"
-              "^Organization:"
-              "^Summary:"
-              "^Keywords:"
-              "^To:"
-              "^[BGF]?Cc:"
-              "^Posted-To:"
-              "^Mail-Copies-To:"
-              "^Apparently-To:"
-              "^X-Gnus-Warning:"
-              "^Resent-From:"
-              "^Xref:"
-              "^X-Spam-Status:"
-              "^X-Sent:"
-              "^X-Mailer:"
-              "^X-Newsreader:"
-              "^X-User-Agent:"
-              "^User-Agent:"))
-
-      ;;; Order of headers
-      (setq gnus-sorted-header-list '("^From:"
-                                      "^Subject:"
-                                      "^Summary:"
-                                      "^Keywords:"
-                                      "^Newsgroups:"
-                                      "^Followup-To:"
-                                      "^To:"
-                                      "^Cc:"
-                                      "^Date:"
-                                      "^Organization:"
-                                      "^User-Agent:"
-                                      "^X-Mailer:"
-                                      "^X-Newsreader:"))
-
-      ;;** Automagischen Zeilenumbruch bei News/Mailangabe nach 72 Zeichen. SO wies sein soll.
-      (add-hook 'message-mode-hook
-                (lambda ()
-                  (setq fill-column 72)
-                  (turn-on-auto-fill)
-                  (epa-mail-mode 1)
-                  ))
-
-      ;;** Save gnus score files. Ziemlich doof wenn nicht
-      (setq gnus-save-score t)
-
-      ;;** Score Einstellungen. Welches Global File und woher die Scores holen.
-      (setq gnus-global-score-files '("~/News/all.SCORE"))
-      (setq gnus-score-find-score-files-function '(gnus-score-find-bnews bbdb/gnus-score))
-
-      ;;** Adaptives Scoring
-      (setq gnus-use-adaptive-scoring t)
-      (defvar gnus-default-adaptive-score-alist
-        '((gnus-unread-mark)
-          (gnus-ticked-mark (from 5))
-          (gnus-dormant-mark (from 6))
-          (gnus-del-mark (subject -5))
-          (gnus-read-mark (from 5) (subject 3))
-          (gnus-expirable-mark (from -2) (subject -2))
-          (gnus-killed-mark (from -2) (subject -4))
-          (gnus-kill-file-mark)
-          (gnus-ancient-mark)
-          (gnus-low-score-mark)
-          (gnus-catchup-mark (subject -3))
-          ))
-
-      ;;** Damit ich nicht mit Megabytegrossen Scorefiles rummachen muss, muss bei Adaptive-Scoring
-      ;;** der Kram automagisch gelöscht werden. Sonst hats keinen Sinn ! 
-      (setq gnus-decay-scores t)
-
-      ;;** Artikel mit weniger Score werden nicht angezeigt
-      (setq gnus-summary-expunge-below -1000)
-
-      ;;** work around unimplemented handling of multiple similar attachments
-      ;;** (recommended by ShengHuo Zhu Fri 20 Jul 2001 13:14)
-      (setq gnus-mime-display-multipart-related-as-mixed t)
-
-      ;;** Bilderchen direkt anzeigen.
-      (setq mm-inline-large-images t)
-
-      ;;** ueberfluessige Leerzeilen loeschen
-      (setq gnus-treat-strip-trailing-blank-lines t)
-      (setq gnus-treat-strip-leading-blank-lines t)
-
-      ;;** Falsch gebaute Attachments ? Nich mit mir. Nuja, UUE wech. Was solls. Will ich eh nich haben
-      (setq mm-uu-configure-list '((uu . disabled)))
-
-      (use-package message-utils
-        :commands (message-mark-inserted-region message-mark-insert-file message-strip-subject-was message-change-subject message-xpost-fup2 message-add-archive-header message-reduce-to-to-cc)
-        :bind ((:map message-mode-map
-                     ("C-c m" . message-mark-inserted-region)
-                     ("C-c f" . message-mark-insert-file)
-                     ("C-c x" . message-xpost-fup2)
-                     ("C-c s" . message-change-subject)
-                     ("C-c a" . message-add-archive-header)
-                     ("C-c t" . message-reduce-to-to-cc)
-                     )))
-      (add-hook 'message-header-setup-hook 'message-strip-subject-was)
-      (add-hook 'message-setup-hook 'message-utils-setup)
-
-      ;;** Nun das Paket um einfachst Fussnoten eingeben zu können.
-      (use-package footnote
-        :commands (footnote-mode)
-        :config
-        (setq footnote-body-tag-spacing 1
-              footnote-spaced-footnotes nil
-              footnote-style 'numeric-latin
-              footnote-section-tag "Fussnoten: "))
-      (add-hook 'message-mode-hook 'footnote-mode)
-
-      ;;** Meine Smileys mag ich gelb
-      (use-package smiley
-        :init
-        (progn
-          (setq gnus-treat-display-smileys t)
-          (setq smiley-flesh-color "Yellow")
-          (setq smiley-data-directory "~/emacs/etc/smilies/")))
-
-      (use-package mml-sec
-        :commands (sign-or-crypt)
-        :config
-        (progn
-          (setq mm-verify-option 'always)
-          ;; Keine extra Signatur erzeugen.
-          (mml-signencrypt-style "pgpmime" 'combined)
-          (setq mml-secure-openpgp-sign-with-sender 't)
-          (setq gpg-unabbrev-trust-alist
-                '(("TRUST_UNDEFINED" . trust-undefined)
-                  ("TRUST_NEVER"     . trust-none)
-                  ("TRUST_MARGINAL"  . trust-marginal)
-                  ("TRUST_FULLY"     . trust-full)
-                  ("TRUST_ULTIMATE"  . trust-ultimate)))
-          ))
-      (add-hook 'gnus-message-setup-hook 'sign-or-crypt)
-
-      ;;** utf-8, coding systems
-      (setq mm-coding-system-priorities
-            '(iso-latin-1 iso-latin-9 utf-8))
-
-      (unify-8859-on-encoding-mode 1)
-      (unify-8859-on-decoding-mode 1)
-      (prefer-coding-system 'latin-9)
-      (prefer-coding-system 'latin-1)
-      (prefer-coding-system 'utf-8)
-
-      ;;** org-mode
-      (add-hook 'message-mode-hook 'orgstruct++-mode 'append)
-      (add-hook 'message-mode-hook 'orgtbl-mode 'append)
-
-      (use-package message-x
-        :ensure t)
-
-      (use-package randomsig
-        :bind ((:map message-mode-map
-                ("C-c s" . randomsig-replace-sig)
-                ("C-c S" . randomsig-select-sig)
-                :map gnus-summary-save-map
-                ("-" 'gnus/randomsig-summary-read-sig)
-                ))
-        :config
-        (progn
-          (setq randomsig-dir "/home/joerg/sigs")
-          (setq message-signature 'randomsig-signature)))
-    
-      (use-package sieve
-        :mode ("\\.siv\\'" . sieve-mode)
-        :config
-        (require 'gnus-sieve)
-      )
-
-      (setq gnus-use-correct-string-widths nil)
-
-      (setq nnrss-wash-html-in-text-plain-parts t)
-      (setq canlock-password "canlockjjaspert")
-      (setq canlock-sha1-function (quote canlock-sha1-with-openssl))
-      (setq canlock-sha1-function-for-verify (quote canlock-sha1-with-openssl))
-      (setq gnus-agent nil)
-      (setq gnus-article-banner-alist (quote ((banner-perl . "^--.?
-  .+
-  .+
-  .+
-  .+
-  .+
-  Die Nutzung von.+html") (banner-debian . "^--.?
-  To UNSUBSCRIBE.*
-  .*@lists.debian.org$") (banner-debian-de . "^--.?
-  -+
-  Um sich aus der Liste auszutragen.+
-  .+
-  .+
-  .+
-  -+$\\|[0-9]+ eingetragene Mitglieder in dieser Liste.") (banner-sourceforge . "^_+
-  .+@lists.sourceforge.net
-  http://lists.sourceforge.net.+
-  .+
-  $") (banner-amavis . "^_+
-  .+AMaViS-.*
-  .*
-  .*
-  .*amavis-faq.php3$"))))
-      (setq gnus-article-sort-functions (quote (gnus-article-sort-by-number gnus-article-sort-by-score gnus-article-sort-by-date)))
-      (setq gnus-article-x-face-command (quote gnus-display-x-face-in-from))
-      (setq gnus-boring-article-headers (quote (empty newsgroups followup-to reply-to)))
-      (setq gnus-build-sparse-threads nil)
-      (setq gnus-buttonized-mime-types '("multipart/signed"))
-      (setq
-       ;; collaps long citations
-       ;; (w/ `gnus-treat-hide-citation t' or `W W c'):
-       gnus-cited-closed-text-button-line-format
-       "%(%{... [ %n lines (%l chars) of citation hidden, click here to expand ] ...%}%)\n"
-       gnus-cited-lines-visible '(3 . 6) ; (top . bottom)
-       ;; [...]
-       gnus-treat-hide-citation t)
-
-      (setq gnus-default-article-saver (quote gnus-summary-save-in-file))
-                                          ; (setq gnus-default-charset (quote iso-8859-1))
-      (setq gnus-generate-tree-function (quote gnus-generate-vertical-tree))
-      (setq gnus-group-charset-alist (quote (("\\(^\\|:\\)hk\\>\\|\\(^\\|:\\)tw\\>\\|\\<big5\\>" cn-big5) ("\\(^\\|:\\)cn\\>\\|\\<chinese\\>" cn-gb-2312) ("\\(^\\|:\\)fj\\>\\|\\(^\\|:\\)japan\\>" iso-2022-jp-2) ("\\(^\\|:\\)tnn\\>\\|\\(^\\|:\\)pin\\>\\|\\(^\\|:\\)sci.lang.japan" iso-2022-7bit) ("\\(^\\|:\\)relcom\\>" koi8-r) ("\\(^\\|:\\)fido7\\>" koi8-r) ("\\(^\\|:\\)\\(cz\\|hun\\|pl\\|sk\\|hr\\)\\>" iso-8859-2) ("\\(^\\|:\\)israel\\>" iso-8859-1) ("\\(^\\|:\\)han\\>" euc-kr) ("\\(^\\|:\\)alt.chinese.text.big5\\>" chinese-big5) ("\\(^\\|:\\)soc.culture.vietnamese\\>" vietnamese-viqr) ("\\(^\\|:\\)\\(comp\\|rec\\|alt\\|sci\\|soc\\|news\\|gnu\\|bofh\\)\\>" iso-8859-1))))
-      (setq gnus-group-name-charset-group-alist (quote ((".*" . iso-8859-1))))
-      (setq gnus-group-name-charset-method-alist (quote ((nntp . iso-8859-1))))
-      (setq gnus-group-posting-charset-alist (quote (("^\\(no\\|fr\\)\\.[^,]*\\(,[
-  ]*\\(no\\|fr\\)\\.[^,]*\\)*$" iso-8859-1 (iso-8859-1)) ("^\\(fido7\\|relcom\\)\\.[^,]*\\(,[
-  ]*\\(fido7\\|relcom\\)\\.[^,]*\\)*$" koi8-r (koi8-r)) (message-this-is-mail nil nil) (message-this-is-news nil t))))(setq gnus-gcc-mark-as-read t)
-      (setq gnus-list-identifiers "\\[\\(a-zA-Z\\)+\\]")
-      (setq gnus-message-replyencrypt nil)
-      (setq gnus-message-replysign nil)
-      (setq gnus-novice-user nil)
-      (setq gnus-refer-thread-limit t)
-      (setq gnus-save-duplicate-list t)
-      (setq gnus-simplify-ignored-prefixes nil)
-      (setq gnus-summary-exit-hook (quote (gnus-summary-bubble-group)))
-      (setq gnus-summary-mode-line-format "Gnus: %g [%A] %Z - killed: %E")
-      (setq gnus-suppress-duplicates t)
-      (setq gnus-thread-indent-level 2)
-      (setq gnus-thread-sort-functions (quote (gnus-thread-sort-by-number gnus-thread-sort-by-score gnus-thread-sort-by-date)))
-      (setq gnus-treat-capitalize-sentences nil)
-      (setq gnus-treat-date-local (quote head))
-      (setq gnus-treat-display-picons nil)
-      (setq gnus-treat-display-xface (quote head))
-      (setq gnus-treat-fill-article nil)
-      (setq gnus-treat-fill-long-lines nil)
-      (setq gnus-treat-from-picon (quote head))
-      (setq gnus-treat-mail-picon (quote head))
-      (setq gnus-treat-newsgroups-picon (quote head))
-      (setq gnus-treat-strip-pgp (quote head))
-      (setq gnus-treat-unsplit-urls t)
-      (setq gnus-treat-x-pgp-sig (quote head))
-      (setq gnus-use-picons t)
-      (setq gnus-uu-post-encode-method (quote gnus-uu-post-encode-mime))
-      (setq message-archive-note "X-No-Archive: Yes")
-                                          ;(setq message-default-charset (quote iso-8859-1))
-      (setq message-make-forward-subject-function (quote message-forward-subject-fwd))
-      (setq message-max-buffers 5)
-      (setq message-send-hook (quote (my-message-add-content)))
-      (setq message-subscribed-regexps (quote (".*@lists.*" ".*@postfix.org" ".*@nongnu.org")))
-      (setq message-use-followup-to (quote use))
-      (setq mm-automatic-display (quote ("text/plain" "text/enriched" "text/richtext" "image/jpeg" "text/x-vcard" "image/pjepg" "image/.*" "message/delivery-status" "multipart/.*" "message/rfc822" "text/x-patch" "application/pgp-signature" "application/emacs-lisp" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" "application/pgp")))
-      (setq mm-body-charset-encoding-alist (quote ((iso-2022-jp . 7bit) (iso-2022-jp-2 . 7bit) (iso-8859-1 . 8bit) (iso-8859-15 . 8bit))))
-      (setq mm-decrypt-option (quote known))
-      (setq mm-inlined-types (quote ("image/jpeg" "image/.*" "text/.*" "message/delivery-status" "message/rfc822" "message/partial" "message/external-body" "application/emacs-lisp" "application/x-emacs-lisp" "application/pgp-signature" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" "application/pgp")))
-      (setq mm-verify-option (quote always))
-      (setq nnimap-authinfo-file "~/.nnimap")
-      (setq gnus-save-newsrc-file nil)
-      (setq gnus-read-newsrc-file nil)
-      (setq gnus-always-read-dribble-file t)
-
-      (setq gnus-refer-article-method
-            '(current
-              (nnweb "refer" (nnweb-type dejanews))))
 
-      ))
+        (setq gnus-use-correct-string-widths nil)
+
+        (setq nnrss-wash-html-in-text-plain-parts t)
+        (setq canlock-password "canlockjjaspert")
+        (setq canlock-sha1-function (quote canlock-sha1-with-openssl))
+        (setq canlock-sha1-function-for-verify (quote canlock-sha1-with-openssl))
+        (setq gnus-agent nil)
+        (setq gnus-article-banner-alist (quote ((banner-perl . "^--.?
+    .+
+    .+
+    .+
+    .+
+    .+
+    Die Nutzung von.+html") (banner-debian . "^--.?
+    To UNSUBSCRIBE.*
+    .*@lists.debian.org$") (banner-debian-de . "^--.?
+    -+
+    Um sich aus der Liste auszutragen.+
+    .+
+    .+
+    .+
+    -+$\\|[0-9]+ eingetragene Mitglieder in dieser Liste.") (banner-sourceforge . "^_+
+    .+@lists.sourceforge.net
+    http://lists.sourceforge.net.+
+    .+
+    $") (banner-amavis . "^_+
+    .+AMaViS-.*
+    .*
+    .*
+    .*amavis-faq.php3$"))))
+        (setq gnus-article-sort-functions (quote (gnus-article-sort-by-number gnus-article-sort-by-score gnus-article-sort-by-date)))
+        (setq gnus-article-x-face-command (quote gnus-display-x-face-in-from))
+        (setq gnus-boring-article-headers (quote (empty newsgroups followup-to reply-to)))
+        (setq gnus-build-sparse-threads nil)
+        (setq gnus-buttonized-mime-types '("multipart/signed"))
+        (setq
+         ;; collaps long citations
+         ;; (w/ `gnus-treat-hide-citation t' or `W W c'):
+         gnus-cited-closed-text-button-line-format
+         "%(%{... [ %n lines (%l chars) of citation hidden, click here to expand ] ...%}%)\n"
+         gnus-cited-lines-visible '(3 . 6) ; (top . bottom)
+         ;; [...]
+         gnus-treat-hide-citation t)
+
+        (setq gnus-default-article-saver (quote gnus-summary-save-in-file))
+                                            ; (setq gnus-default-charset (quote iso-8859-1))
+        (setq gnus-generate-tree-function (quote gnus-generate-vertical-tree))
+        (setq gnus-group-charset-alist (quote (("\\(^\\|:\\)hk\\>\\|\\(^\\|:\\)tw\\>\\|\\<big5\\>" cn-big5) ("\\(^\\|:\\)cn\\>\\|\\<chinese\\>" cn-gb-2312) ("\\(^\\|:\\)fj\\>\\|\\(^\\|:\\)japan\\>" iso-2022-jp-2) ("\\(^\\|:\\)tnn\\>\\|\\(^\\|:\\)pin\\>\\|\\(^\\|:\\)sci.lang.japan" iso-2022-7bit) ("\\(^\\|:\\)relcom\\>" koi8-r) ("\\(^\\|:\\)fido7\\>" koi8-r) ("\\(^\\|:\\)\\(cz\\|hun\\|pl\\|sk\\|hr\\)\\>" iso-8859-2) ("\\(^\\|:\\)israel\\>" iso-8859-1) ("\\(^\\|:\\)han\\>" euc-kr) ("\\(^\\|:\\)alt.chinese.text.big5\\>" chinese-big5) ("\\(^\\|:\\)soc.culture.vietnamese\\>" vietnamese-viqr) ("\\(^\\|:\\)\\(comp\\|rec\\|alt\\|sci\\|soc\\|news\\|gnu\\|bofh\\)\\>" iso-8859-1))))
+        (setq gnus-group-name-charset-group-alist (quote ((".*" . iso-8859-1))))
+        (setq gnus-group-name-charset-method-alist (quote ((nntp . iso-8859-1))))
+        (setq gnus-group-posting-charset-alist (quote (("^\\(no\\|fr\\)\\.[^,]*\\(,[
+    ]*\\(no\\|fr\\)\\.[^,]*\\)*$" iso-8859-1 (iso-8859-1)) ("^\\(fido7\\|relcom\\)\\.[^,]*\\(,[
+    ]*\\(fido7\\|relcom\\)\\.[^,]*\\)*$" koi8-r (koi8-r)) (message-this-is-mail nil nil) (message-this-is-news nil t))))(setq gnus-gcc-mark-as-read t)
+        (setq gnus-list-identifiers "\\[\\(a-zA-Z\\)+\\]")
+        (setq gnus-message-replyencrypt nil)
+        (setq gnus-message-replysign nil)
+        (setq gnus-novice-user nil)
+        (setq gnus-refer-thread-limit t)
+        (setq gnus-save-duplicate-list t)
+        (setq gnus-simplify-ignored-prefixes nil)
+        (setq gnus-summary-exit-hook (quote (gnus-summary-bubble-group)))
+        (setq gnus-summary-mode-line-format "Gnus: %g [%A] %Z - killed: %E")
+        (setq gnus-suppress-duplicates t)
+        (setq gnus-thread-indent-level 2)
+        (setq gnus-thread-sort-functions (quote (gnus-thread-sort-by-number gnus-thread-sort-by-score gnus-thread-sort-by-date)))
+        (setq gnus-treat-capitalize-sentences nil)
+        (setq gnus-treat-date-local (quote head))
+        (setq gnus-treat-display-picons nil)
+        (setq gnus-treat-display-xface (quote head))
+        (setq gnus-treat-fill-article nil)
+        (setq gnus-treat-fill-long-lines nil)
+        (setq gnus-treat-from-picon (quote head))
+        (setq gnus-treat-mail-picon (quote head))
+        (setq gnus-treat-newsgroups-picon (quote head))
+        (setq gnus-treat-strip-pgp (quote head))
+        (setq gnus-treat-unsplit-urls t)
+        (setq gnus-treat-x-pgp-sig (quote head))
+        (setq gnus-use-picons t)
+        (setq gnus-uu-post-encode-method (quote gnus-uu-post-encode-mime))
+        (setq message-archive-note "X-No-Archive: Yes")
+                                            ;(setq message-default-charset (quote iso-8859-1))
+        (setq message-make-forward-subject-function (quote message-forward-subject-fwd))
+        (setq message-max-buffers 5)
+        (setq message-send-hook (quote (my-message-add-content)))
+        (setq message-subscribed-regexps (quote (".*@lists.*" ".*@postfix.org" ".*@nongnu.org")))
+        (setq message-use-followup-to (quote use))
+        (setq mm-automatic-display (quote ("text/plain" "text/enriched" "text/richtext" "image/jpeg" "text/x-vcard" "image/pjepg" "image/.*" "message/delivery-status" "multipart/.*" "message/rfc822" "text/x-patch" "application/pgp-signature" "application/emacs-lisp" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" "application/pgp")))
+        (setq mm-body-charset-encoding-alist (quote ((iso-2022-jp . 7bit) (iso-2022-jp-2 . 7bit) (iso-8859-1 . 8bit) (iso-8859-15 . 8bit))))
+        (setq mm-decrypt-option (quote known))
+        (setq mm-inlined-types (quote ("image/jpeg" "image/.*" "text/.*" "message/delivery-status" "message/rfc822" "message/partial" "message/external-body" "application/emacs-lisp" "application/x-emacs-lisp" "application/pgp-signature" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" "application/pgp")))
+        (setq mm-verify-option (quote always))
+        (setq nnimap-authinfo-file "~/.nnimap")
+        (setq gnus-save-newsrc-file nil)
+        (setq gnus-read-newsrc-file nil)
+        (setq gnus-always-read-dribble-file t)
+
+        (setq gnus-refer-article-method
+              '(current
+                (nnweb "refer" (nnweb-type dejanews))))
+
+        ))
 
  #+END_SRC
 ** go-mode
@@ -4057,7 +4117,7 @@ CLOSED: [2017-08-26 Sat 14:44]
                          magit-git-repo-p magit-list-repos)
    :bind (("C-x g" . magit-status)
           ("C-x G" . magit-status-with-prefix)
-          :magit-status-mode-map
+          :map magit-status-mode-map
           ("q" . magit-quit-session ))
 
    :config
@@ -5572,7 +5632,8 @@ CLOSED: [2017-08-26 Sat 15:21]
 
      (defun my-python-mode-hook ()
        (validate-setq require-final-newline nil)
-       (validate-setq mode-require-final-newline))
+       (validate-setq mode-require-final-newline t)
+       (add-to-list 'company-backends 'company-jedi))
      (add-hook 'python-mode-hook 'my-python-mode-hook)
 
      ;; Flymake support using flake8, including warning faces.
@@ -5818,26 +5879,44 @@ CLOSED: [2017-08-26 Sat 15:21]
                    (run-hooks 'prog-mode-hook))))
    ))
  #+END_SRC
-** CANCELLED Rust                                                :CANCELLED:
-CLOSED: [2017-08-26 Sat 15:22]
+** Rust
 :LOGBOOK:
+- State "NEXT"       from "CANCELLED"  [2017-12-08 Fri 16:02]
+- State "CANCELLED"  from              [2017-12-08 Fri 09:38]
+- State "NEXT"       from "CANCELLED"  [2017-12-08 Fri 09:28]
 - State "CANCELLED"  from              [2017-08-26 Sat 15:22]
 :END:
  [2017-08-03 Thu 09:13]
- #+BEGIN_SRC emacs-lisp :tangle no
+ #+BEGIN_SRC emacs-lisp
  (use-package rust-mode
    :ensure t
    :config
    (progn
-     (use-package :cargo
+     (define-key rust-mode-map (kbd "TAB") #'company-indent-or-complete-common)
+     (setq company-tooltip-align-annotations t)
+     (use-package cargo
        :ensure t
        :config
        (progn
          (add-hook 'rust-mode-hook 'cargo-minor-mode)))
+     (add-hook 'rust-mode-hook
+               (lambda ()
+               (local-set-key (kbd "C-c <tab>") #'rust-format-buffer)))))
 
-    
-     )
-   )
+ (use-package racer
+   :ensure t
+   :config
+   (progn
+     (add-hook 'rust-mode-hook #'racer-mode)
+     (add-hook 'racer-mode-hook #'eldoc-mode)
+     (add-hook 'racer-mode-hook #'company-mode)
+     ))
+
+ (use-package flycheck-rust
+   :ensure t
+   :init
+   (progn
+     (add-hook 'flycheck-mode-hook #'flycheck-rust-setup)))
  #+END_SRC
 ** StarDict dictionary lookup
  [2017-01-16 Mon 18:26]
@@ -6294,7 +6373,7 @@ CLOSED: [2017-08-26 Sat 15:30]
    :defer t
    :diminish yas-minor-mode
    :commands yas-global-mode
-   :bind (:yas-minor-mode-map
+   :bind (:map yas-minor-mode-map
           ("\t" . hippie-expand))
    :config
    (progn