a57972f124ecb69eec21614337e54edbe9e45d86
[dotfiles.git] / emacs / gnus.el
1 ;; -*- emacs-lisp -*-
2
3 ;; Author: Olivier Tetard <olivier.tetard@miskin.fr>
4 ;; URL : http://toutoune25.miskin.fr/
5
6 ;; This file is free software; you can redistribute it and/or modify it
7 ;; under the terms of the GNU General Public License as published by the
8 ;; Free Software Foundation; either version 2, or (at your option) any
9 ;; later version.
10
11 ;; This file is distributed in the hope that it will be useful, but
12 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 ;; General Public License for more details.
15
16 ;; You should have received a copy of the GNU General Public License
17 ;; along with GNU Emacs; see the file COPYING. If not, write to the Free
18 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19 ;; 02111-1307, USA.
20
21 ;; ,----[ *** Copyright et sources *** ]
22 ;; | Ecrit par Olivier Tétard
23 ;; |
24 ;; | Il s'agit surtout d'un piochage dans differents .gnus
25 ;; |
26 ;; | A aller voir :
27 ;; |    o http://etudiant.epita.fr/~eole/emacs.html#gnus
28 ;; |    o http://gnusfr.apinc.org/
29 ;; |    o http://mouarf.org/config/gnus/gnus
30 ;; |    o http://my.gnus.org
31 ;; |    o http://www.linux-france.org/article/appli/cfg/index.html
32 ;; |    o http://www.teaser.fr/~nchuche/gnus/index.html
33 ;; `----
34
35
36 (require 'bbdb)
37 (require 'bbdb-gnus)
38 (require 'boxquote)
39 (require 'gnus-cite)
40 (require 'gnus-pers)
41 ;;(require 'pgg)
42 (require 'epa-setup)
43 ;; (require 'epa-mail)
44 (require 'spam)
45 (require 'spam-report)
46
47
48 ;; ,----
49 ;; | Repertoires
50 ;; `----
51
52
53 (setq gnus-agent-directory "~/.gnus.d/agent")
54 (setq gnus-article-save-directory "~/.gnus.d/archives")
55 (setq gnus-cache-active-file "~/.gnus.d/news/active")
56 (setq gnus-cache-directory "~/.gnus.d/cache")
57 (setq gnus-default-directory "~")
58 (setq gnus-directory       "~/.gnus.d/news")
59 (setq nntp-marks-directory "~/.gnus.d/news/marks")
60 (setq gnus-home-directory  "~/.gnus.d")
61 (setq gnus-kill-files-directory "~/.gnus.d/score")
62 (setq message-directory    "~/.gnus.d/mail")
63 (setq spam-directory "~/.gnus.d/spam/")
64
65
66 ;; ,----
67 ;; | Parametres Personnels + Backends
68 ;; `----
69
70
71 ;; Utilisation d'identités mutliples
72 (gnus-personality-init)
73
74 (setq gnus-personalities
75       (quote (
76               ("default"
77                "Olivier Tétard <olivier.tetard@miskin.fr>"
78                ""
79                "~/.gnus.d/signature")
80
81               ("tetaro"
82                "Olivier Tétard <tetaro@free.fr>"
83                ""
84                "~/.gnus.d/signature_tetaro")
85
86               ("otetard"
87                "Olivier Tétard <olivier.tetard@etudiant.univ-rennes1.fr>"
88                ""
89                "~/.gnus.d/signature_otetard"))))
90
91 (setq user-full-name "Olivier Tétard")
92 (setq user-mail-address "olivier.tetard@miskin.fr")
93 (setq gnus-ignored-from-addresses '("toutoune25@.*"
94                                     "olivier.tetard@miskin.fr"
95                                     "tetaro@free.fr"))
96
97 ;; Configuration du SMTP / AUTH TLS
98 ;; Penser à installer le paquet starttls !!
99 (setq send-mail-function 'smtpmail-send-it
100       message-send-mail-function 'smtpmail-send-it)
101 (setq smtpmail-smtp-server "mail.miskin.fr")
102 (setq smtpmail-starttls-credentials '(("mail.miskin.fr" 25 nil nil)))
103 (setq smtpmail-auth-credentials "~/.authinfo")
104 (load-library "smtpmail")
105
106 ;; Les backendz
107 (setq gnus-select-method '(nnnil))
108
109 (setq gnus-secondary-select-methods '((nnimap "miskin"
110                                               (nnimap-address "mail.miskin.fr")
111                                               (nnimap-stream ssl)
112                                               (remove-prefix "INBOX.")
113                                               (nnimap-authinfo-file "~/.authinfo"))
114                                       (nnml "localbox")
115                                       (nntp "news.gmane.org")))
116 ;;                                    (nnmaildir "localmaildir" (directory "~/.mail/helium.miskin.fr"))))
117
118 ;; On ne cherche pas les nouveaux newsgroups
119 (setq gnus-check-new-newsgroups nil)
120
121 ;; On balance tout dans nnml:local
122 (setq nnmail-split-methods
123       '(("local" "")))
124
125 ;; On sauvegarde les mails dans Sent et on les marque comme lus
126 (setq gnus-message-archive-group "nnimap+miskin:Sent")
127 (setq gnus-gcc-mark-as-read t)
128
129 ;; Face, stolen from:
130 ;; http://www.mwolson.org/projects/emacs-config/dot_gnus.el.html
131
132 ;; Specify headers that I want in every message
133 (defun my-message-insert-extra-headers ()
134   (goto-char (point-min))
135   (insert "Face: " (gnus-convert-png-to-face "~/.gnus.d/fouine.png") "\n"))
136
137 (add-hook 'message-header-setup-hook 'my-message-insert-extra-headers)
138
139
140 ;; ,----[ *** Comportement de Gnus *** ]
141 ;; | Lancement/Fermeture de Gnus
142 ;; `----
143
144 ;; On ouvre automatiquement le fichier 'newsrc-dribble'
145 (setq gnus-always-read-dribble-file t)
146
147 ;; On lance GNUS en mode topic
148 (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
149
150 ;; On desactive l'abonnement automatique
151 (setq gnus-default-subscribed-newsgroups nil)
152
153 ;; On ne verifie pas les nouveaux groupes à chaque fois
154 (setq gnus-check-new-newsgroups t)
155
156 ;; On marche en mode 24H
157 (custom-set-variables '(display-time-24hr-format t))
158
159 ;; On active le cache
160 (setq gnus-use-cache t)
161
162 ;; On desactive l'impression couleur
163 (setq ps-print-color-p nil)
164
165 ;; On veux quitter gnus proprement
166 (defun clean-exit-emacs-with-gnus ()
167   "Save and exit Gnus before exiting Emacs"
168   (interactive)
169   (if (fboundp 'gnus-group-exit)
170       (gnus-group-exit))
171   (save-buffers-kill-emacs t))
172
173 (global-set-key [(control x) (control c)]
174                 'clean-exit-emacs-with-gnus)
175
176
177 ;; ,----[ *** Comportement de Gnus *** ]
178 ;; | Lecture d'un mail (*Group* et *Summary*)
179 ;; `----
180
181
182 ;; On ne sauvegarde pas la liste des groupes tués
183 (setq gnus-save-killed-list nil)
184
185 ;; On affiche les groupes vides
186 (setq gnus-permanently-visible-groups ".*")
187
188 ;; On ne thread que sur les références (et non pas sur les sujets)
189 ;; (setq gnus-summary-thread-gathering-function
190 ;;       'gnus-gather-threads-by-references)
191
192 ; Scorage des groupes les plus lus
193 (add-hook 'gnus-summary-exit-hook 'gnus-summary-bubble-group)
194
195 ; Classer les groupes en fonction de leur hits
196 (setq gnus-group-sort-function '(gnus-group-sort-by-unread
197                                  gnus-group-sort-by-rank))
198
199 ;; Format des folders dans *Group*
200 ;; On affiche l'heure de derniere lecture de la boite
201 (add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)
202 (setq gnus-group-line-format
203       "%M%S%p%P%5y: %(%G%) %l %O [%2,2~(cut 6)d/%2,2~(cut 4)d à %2,2~(cut 9)dh%2,2~(cut 11)d]\n")
204
205 ;; On surligne la ligne courante dans *Group* et *Summary*
206 (if window-system
207     (progn
208       (add-hook 'gnus-group-mode-hook 'highlight-current-line-minor-mode)
209       (add-hook 'gnus-summary-mode-hook 'highlight-current-line-minor-mode)
210       (custom-set-faces '(highlight-current-line-face ((t (:background "#6699cc")))))))
211
212 ;; Format des messages dans *Summary*
213 ;; (setq gnus-sum-thread-tree-single-indent "  ")
214 (setq gnus-summary-line-format ":%U%R %B %s %-60= | %4L | %-20,20uB | %&user-date; \n")
215
216 ; Quel article lire le premier lorsqu'on sélectionne le groupe
217 ; avec <SPACE> ?
218 ;                  - nil  : N'affiche aucun message
219 ;                  - best : L'article le mieux scoré
220 ;                  - t    : Le premier article non-lu.
221 (setq gnus-auto-select-first 'nil)
222
223 ;; nice summary threading from http://my.gnus.org/node/view/121
224 (if window-system
225     (progn
226       (setq gnus-sum-thread-tree-root "● ")
227       (setq gnus-sum-thread-tree-false-root "◯ ")
228       (setq gnus-sum-thread-tree-single-indent "◎ ")
229       (setq gnus-sum-thread-tree-leaf-with-other "├─► ")
230       (setq gnus-sum-thread-tree-vertical "│")
231       (setq gnus-sum-thread-tree-single-leaf "╰─► ")) 
232 ;;;       (setq gnus-sum-thread-tree-false-root "~ ")
233 ;;;       (setq gnus-sum-thread-tree-root "\x4912f ")
234 ;;;       (setq gnus-sum-thread-tree-single-indent "\x4912b ")
235 ;;;       (setq gnus-sum-thread-tree-leaf-with-other "\x4903c\x49020\x490fa ")
236 ;;;       (setq gnus-sum-thread-tree-vertical "\x49022")
237 ;;;       (setq gnus-sum-thread-tree-single-leaf "\x490b0\x49020\x490fa "))
238
239   (setq gnus-sum-thread-tree-root " >"
240         gnus-sum-thread-tree-single-indent "  "
241         gnus-sum-thread-tree-vertical "|"
242         gnus-sum-thread-tree-indent " "
243         gnus-sum-thread-tree-leaf-with-other "+-> "
244         gnus-sum-thread-tree-single-leaf "`-> "))
245
246 ;; On ne marque pas 36 fois les topics
247 (setq gnus-summary-same-subject "")
248
249 ;; Parametres des groupes
250 (setq gnus-parameters
251       '(("^nnimap\\+miskin:Sent.*"
252          (gnus-summary-line-format ":%U%R %B %s %-60= | %4L | %-20,20f | %&user-date; \n"))
253         ("^nnimap\\+miskin:MailingLists\\.*"
254          (auto-expire . t)
255          (total-expire . t))
256         ("^nnimap\\+miskin:MailingLists\\.ATTAC.*"
257          (total-expire . DISABLE)
258          (auto-expire . DISABLE)
259          (expiry-wait . never))
260         ("^nnimap\\+miskin:Junk\\.*"
261          (auto-expire . t)
262          (total-expire . t))))
263
264 ;; Temps avant expiration
265 (setq nnmail-expiry-wait 15)
266
267 ;; On supprime les messages cross postés
268 (setq gnus-suppress-duplicates t)
269
270 ; Lorsqu'on 'kill' un thread, celui-ci est caché
271 (setq gnus-thread-hide-killed t)
272
273 ; Trier les threads en fonctions du score, puis par date
274 (setq gnus-thread-sort-functions
275       '(gnus-thread-sort-by-date
276         gnus-thread-sort-by-total-score))
277
278 ;; sauter le reste d'un article si c'est : citation + Signature
279 (setq gnus-article-skip-boring t)
280
281 ;; Replie les threads par défaut
282 (setq gnus-thread-hide-subtree t)
283
284 ;; permet de développer, respectivement réduire les threads en appuyant
285 ;; sur la touche "flèche gauche", respectivement "flèche droite"
286 ;; Sur une idée de Ingo Ruhnke <grumbel@gmx.de>
287 (defun my-gnus-summary-show-thread ()
288   "Show thread without changing cursor positon."
289   (interactive)
290   (gnus-summary-show-thread)
291   (beginning-of-line)
292   (forward-char 1))
293
294 (define-key gnus-summary-mode-map [(right)] 'my-gnus-summary-show-thread)
295 (define-key gnus-summary-mode-map [(left)]  'gnus-summary-hide-thread)
296
297
298 ;; ,----[ *** Comportement de Gnus *** ]
299 ;; | Lecture d'un mail (*Article*)
300 ;; `----
301
302
303 ;; On n'affiche pas l'emetteur
304 (add-to-list 'message-syntax-checks '(sender . disabled))
305
306 ;; Selection des headers à afficher
307 (setq gnus-visible-headers
308       "^\\(From:\\|Subject:\\|Date:\\|Followup-To:\\|Newsgroups:\\|To:\\|Cc:\\|X-Newsreader:\\|User-Agent:\\|X-Mailer:\\|Archived-At:\\)")
309
310 ;; L'affichage des messages
311 (setq gnus-article-display-hook '(gnus-article-hide-headers-if-wanted
312                                   gnus-article-date-lapsed
313                                   gnus-article-hide-pgp
314                                   gnus-article-treat-overstrike
315                                   gnus-article-de-quoted-unreadable
316                                   gnus-article-strip-leading-blank-lines
317                                   gnus-article-remove-trailing-blank-lines
318                                   gnus-article-strip-multiple-blank-lines
319                                   gnus-article-highlight
320                                   gnus-article-highlight-signature
321                                   gnus-article-emphasize
322                                   gnus-article-fill-cited-article))
323
324 ;; Definition d'une signature
325 ; Provient du manuel Gnus (Node 3.16.7)
326 (setq gnus-signature-separator
327       '("^-- $"         ; The standard
328         "^-- *$"        ; A common mangling
329         "----8<----"
330         "^________*$"   ; Underscores are also popular
331         "^========*$"
332         "^----- Original Message -----$"
333         ))
334
335 ; Ne pas inclure la signature lors d'une réponse
336 (setq message-cite-function 'message-cite-original-without-signature)
337
338 ;; On prefere le texte au HTML/RTF
339 (eval-after-load "mm-decode"
340   '(progn
341      (add-to-list 'mm-discouraged-alternatives "text/html")
342      (add-to-list 'mm-discouraged-alternatives "text/richtext")))
343
344 ;; On utilise W3M pour le rendu HTML
345 ;;(setq mm-inline-text-html-renderer 'mm-inline-text-html-render-with-w3m)
346
347 ;; On code les messages en latin-1 prioritairement
348 (setq mm-coding-system-priorities
349       '(iso-latin-1 iso-latin-9 mule-utf-8))
350
351 ;; Rendre un message plus propre (Outlook tu pues !)
352 ;; http://my.gnus.org/node/view/94
353 (defun bhaak-wash-this-article ()
354   (interactive)
355   (gnus-article-outlook-deuglify-article)
356   (gnus-article-fill-cited-article nil '70)
357   (gnus-article-capitalize-sentences))
358 (define-key gnus-summary-mode-map "w" 'bhaak-wash-this-article)
359
360 ;; On active les smileys
361 (add-hook 'gnus-article-display-hook 'gnus-smiley-display t)
362
363 ;; On utilise Mozilla Firefox
364 (defun browse-url-firefox-new-tab (url &optional new-window)
365   "Open URL in a new tab in Firefox."
366   ;; (interactive (browse-url-interactive-arg "URL: "))
367   (let ((cmd (shell-command-to-string
368               (concat "mozilla-firefox -a firefox -remote 'openURL("
369                       url ",new-tab)' > /dev/null"))))
370     (unless (string= "" cmd)
371       (message "Starting Firefox...")
372       (start-process (concat "firefox " url) nil "/bin/sh" "-c"
373                      (concat "mozilla-firefox " url "|| true"))
374       (message "Starting Firefox...done"))))
375
376 (setq browse-url-browser-function 'browse-url-firefox-new-tab)
377
378 ;; On ignore les types v-card
379 (setq gnus-ignored-mime-types '("text/x-vcard"))
380
381 ;; la coloration des articles
382 (add-hook 'gnus-article-display-hook 'gnus-article-highlight)
383
384 ;; vire le QP
385 (add-hook 'gnus-article-display-hook 'gnus-article-de-quoted-unreadable)
386
387 ;; cache les headers indésirables
388 (add-hook 'gnus-article-display-hook 'gnus-article-hide-headers-if-wanted)
389
390 ;; vire certains headers s'ils sont vides
391 (add-hook 'gnus-article-display-hook 'gnus-article-hide-boring-headers)
392
393 ;; vire les lignes blanches en tête
394 (add-hook 'gnus-article-display-hook 'gnus-article-strip-leading-blank-lines)
395
396 ;; vire les lignes blanches en queue
397 (add-hook 'gnus-article-display-hook 'gnus-article-remove-trailing-blank-lines)
398
399 ;; vire les lignes blanches en doubles
400 (add-hook 'gnus-article-display-hook 'gnus-article-strip-multiple-blank-lines)
401
402 ;; met en valeur les *machins* et autres _trucs_
403 (add-hook 'gnus-article-display-hook 'gnus-article-emphasize)
404
405
406 ;; ,----[ *** Comportement de Gnus *** ]
407 ;; | Scoring
408 ;; `----
409
410
411 ;; Non, mais oh ! on va se laisser faire :o)
412 (setq gnus-use-scoring t)
413
414 ;; Suffixe employé pour les fichiers
415 (setq gnus-score-file-suffix "Score")
416
417 ;; Score par défault
418 (setq gnus-summary-default-score 0)
419
420 ;; Ne pas afficher le message, si le score < 500
421 (setq gnus-summary-expunge-below -499)
422
423 ;; Méthode pour trouver le fichier Scorefile
424 (setq gnus-score-find-score-files-function 'gnus-score-find-bnews)
425
426 ;; Global score (http://www.xsteve.at/prg/gnus/)
427 (setq gnus-global-score-files
428        '("~/.gnus.d/score/all.Score"))
429
430
431 ;; ,----[ *** Comportement de Gnus *** ]
432 ;; | Ecriture d'un mail
433 ;; `----
434
435
436 ;; Charset
437 (setq gnus-default-charset (quote iso-8859-15))
438 (setq gnus-default-posting-charset (quote iso-8859-15))
439
440 ;; Dans les newsgroup, repondre à l'auteur ?
441 (defadvice gnus-summary-reply (around reply-in-news activate)
442   (interactive)
443   (when (or (not (gnus-news-group-p gnus-newsgroup-name))
444             (y-or-n-p "Vraiment répondre à l'auteur ? "))
445     ad-do-it))
446
447 ;; On cite les mails avec '>'
448 (custom-set-variables '(mail-yank-prefix "> "))
449
450 ;; On ecrit sur 72 cols automatiquement
451 (add-hook 'message-mode-hook 'turn-on-auto-fill)
452
453 ;; On ne veux pas de la signature en reponse
454 (setq message-cite-function 'message-cite-original-without-signature)
455
456 ;; On n'utilise que Gnus => pas de .newsrc : Utile ?
457 (setq gnus-save-newsrc-file nil)
458 (setq gnus-read-newsrc-file nil)
459
460 ;; Dit le nom de la personne quand on cite
461 (defun message-insert-citation-line ()
462   "La fonction qui insere une ligne aux reponses"
463   (when message-reply-headers
464     (insert (mail-header-from message-reply-headers) " a tapoté :\n\n")))
465
466 ;; colorisation syntaxique lorsqu'on repond a un mail.
467 (add-hook 'message-mode-hook 'turn-on-font-lock)
468
469 ;; colorier le buffer de réponse
470 (add-hook 'gnus-message-setup-hook 'font-lock-fontify-buffer)
471
472
473 ;; Configuration des plugins
474 ;; ----------------------------------------------------------------------
475
476
477 ;; ,----[ *** BBDB *** ]
478 ;; | Parametres
479 ;; `----
480
481
482 (bbdb-initialize 'gnus 'message)
483
484 (add-hook 'gnus-startup-hook 'bbdb-insinuate-gnus)
485 (bbdb-insinuate-message)
486
487 ;; Ne pas utiliser la notation téléphonique US
488 (setq bbdb-north-american-phone-numbers-p nil)
489
490 ;; Pas de codes de localisations pour le telephone
491 (setq bbdb-default-area-code nil)
492
493 ;; On aide le scoring
494 (setq gnus-score-find-score-files-function
495       '(gnus-score-find-bnews bbdb/gnus-score))
496
497 ;; Pas de popups
498 (setq bbdb-use-pop-up nil)
499
500 ;; afficher les noms de bbdb plutot que celui du From:
501 ;; (dans le summary)
502 (setq bbdb/gnus-summary-prefer-real-names t)
503 (setq bbdb/gnus-summary-prefer-bbdb-data t)
504
505 ;; permet d'empecher a bbdb de creer une nouvelle entree a chaque fois
506 ;; (setq bbdb/mail-auto-create-p t)
507
508 ;; on déplace le fichier bbdb
509 (setq bbdb-file "~/.gnus.d/bbdb")
510
511 ;; Nombre de lignes dans la popup
512 (setq bbdb-pop-up-target-lines 5)
513
514 ;; Sauvegarder automatiquement la base
515 (setq bbdb-offer-save nil)
516
517 ;; On complete sur le nom
518 (setq bbdb-completion-type 'primary-or-name)
519
520 ;; permet de faire défiler les différentes adresses
521 (setq bbdb-complete-name-allow-cycling t)
522
523 ;; La completion des alias se fait avec TAB
524 (define-key message-minibuffer-local-map (kbd "TAB") 'bbdb-complete-name)
525
526
527 ;; ,----[ *** PGG ***]
528 ;; | Configuration générale
529 ;; `----
530
531 (setq mml2015-use 'epg)
532
533 ;; Tells Gnus to inline the part
534 (eval-after-load "mm-decode"
535   '(add-to-list 'mm-inlined-types "application/pgp$"))
536
537 ;; Tells Gnus how to display the part when it is requested
538 (eval-after-load "mm-decode"
539   '(add-to-list 'mm-inline-media-tests '("application/pgp$"
540                                          mm-inline-text identity)))
541
542 ;; Tell Gnus not to wait for a request, just display the thing
543 ;; straight away.
544 (eval-after-load "mm-decode"
545   '(add-to-list 'mm-automatic-display "application/pgp$"))
546
547 (setq gnus-buttonized-mime-types (quote ("multipart/encrypted" "multipart/signed")))
548 (setq message-setup-hook (quote (mml-secure-message-sign)))
549 (setq mm-decrypt-option (quote known))
550 (setq mm-verify-option (quote known))
551
552 ;; ;; Récuperer les clés inconnues (à partir d'un serveur de clé)
553 ;; (setq pgg-query-keyserver t)
554 ;; (setq pgg-default-keyserver-address "pgp.mit.edu")
555
556 ;; ;; On verifie/decripte seulement pour les protocoles connus
557 ;; (setq mm-verify-option 'known)
558 ;; (setq mm-decrypt-option 'known)
559
560 ;; ;; On crée un bouton pour le "multipart/encrypted" (??)
561 ;; (setq gnus-buttonized-mime-types '("multipart/encrypted" "multipart/signed"))
562
563 ;; ;; On signe automatiquement les messages sortant
564 ;; (add-hook 'message-send-hook 'mml-secure-message-sign-pgpmime)
565
566 ;; ;; On sauvegarde le passphease 300 secs
567 ;; (setq pgg-passphrase-cache-expiry 2000)
568
569 ;; ;; Tells Gnus to inline the part
570 ;; (eval-after-load "mm-decode"
571 ;;   '(add-to-list 'mm-inlined-types "application/pgp$"))
572
573 ;; ;; Tells Gnus how to display the part when it is requested
574 ;; (eval-after-load "mm-decode"
575 ;;   '(add-to-list 'mm-inline-media-tests '("application/pgp$"
576 ;;                                          mm-inline-text identity)))
577
578 ;; ;; Tell Gnus not to wait for a request, just display the thing
579 ;; ;; straight away.
580 ;; (eval-after-load "mm-decode"
581 ;;   '(add-to-list 'mm-automatic-display "application/pgp$"))
582
583 ;; ;; On n'affiche pas les signatures
584 ;; (eval-after-load "mm-decode"
585 ;;   (quote (setq mm-automatic-display (remove "application/pgp-signature"
586 ;;                                             mm-automatic-display))))
587 ;; ;; cache les cles PGP
588 ;; (add-hook 'gnus-article-display-hook 'gnus-article-hide-pgp)
589
590
591 ;; ,----[ *** Spam ***]
592 ;; | Configuration générale
593 ;; `----
594
595 (spam-initialize)
596
597 ;; On utilise gmane pour rapporter les spams
598 (setq gnus-spam-process-newsgroups
599       '(("^nntp\\+news\\.gmane\\.org:"
600          ((spam spam-use-gmane)))))
601
602 ;; Et on copie les mails dans le dossier de spam
603 (setq gnus-spam-process-destinations
604       '(;; ("^nntp\\+news\\.gmane\\.org:" "nnimap+miskin:Junk")
605         ("^nnimap\\+miskin:*" "nnimap+miskin:Junk")))
606
607 ;; A trier et nouveautés
608 ;; ----------------------------------------------------------------------
609
610 ;; Recherche rapide
611 ;; http://my.gnus.org/book/view/217
612 (setq nbc-nnir t)
613
614 ;; On cache tout !
615 ;; -> http://lists.gnu.org/archive/html/info-gnus-english/2005-01/msg00198.html
616 (add-hook 'gnus-select-article-hook
617           'gnus-agent-fetch-selected-article)