This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+email/gnus/packages.el
John Practicalli Stevenson 92c010a207 [applications] refactor key bindings to layer categories
refactor key bindings for applications to provide additional room for
applications and use lower case characters.

Move calc-dispatch to `SPC a *`

Relates to #13503
2020-07-02 23:43:19 +02:00

126 lines
4.8 KiB
EmacsLisp
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;;; packages.el --- gnus Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
(defconst gnus-packages
'(
gnus
window-purpose
persp-mode))
(defun gnus/pre-init-persp-mode ()
(spacemacs|use-package-add-hook persp-mode
:post-config
(progn
(spacemacs|define-custom-layout gnus-spacemacs-layout-name
:binding gnus-spacemacs-layout-binding
:body
(call-interactively 'gnus)))))
(defun gnus/init-gnus ()
"Initialize my package"
(use-package gnus
:defer t
:commands gnus
:init
(progn
(spacemacs/declare-prefix "aeg" "gnus" "Gnus newsreader")
(spacemacs/set-leader-keys
"aegg" 'gnus
"aegs" 'gnus-slave
"aegu" 'gnus-unplugged
"aego" 'gnus-slave-unplugged)
(spacemacs/declare-prefix-for-mode 'message-mode "mi" "insert")
(spacemacs/set-leader-keys-for-major-mode 'message-mode
;; RFC 1855
"miF" 'flame-on)
;; NOTE: If any of the following variables are modified,
;; also update their values in: `gnus/README.org'
(setq-default
gnus-summary-line-format "%U%R%z %(%&user-date; %-15,15f %B (%c) %s%)\n"
gnus-user-date-format-alist '((t . "%Y-%m-%d %H:%M"))
gnus-group-line-format "%M%S%p%P%5y:%B %G\n";;"%B%(%g%)"
gnus-summary-thread-gathering-function 'gnus-gather-threads-by-references
gnus-thread-sort-functions '(gnus-thread-sort-by-most-recent-date)
gnus-ignored-newsgroups "^to\\.\\|^[0-9. ]+\\( \\|$\\)\\|^[\”]\”[#()]"
gnus-sum-thread-tree-false-root ""
gnus-sum-thread-tree-indent " "
gnus-sum-thread-tree-leaf-with-other "├► "
gnus-sum-thread-tree-root ""
gnus-sum-thread-tree-single-leaf "╰► "
gnus-sum-thread-tree-vertical ""
gnus-article-browse-delete-temp t
gnus-treat-strip-trailing-blank-lines 'last
gnus-keep-backlog 'nil
gnus-summary-display-arrow nil ; Don't show that annoying arrow:
gnus-mime-display-multipart-related-as-mixed t ; Show more MIME-stuff:
gnus-auto-select-first nil ; Don't get the first article automatically:
smiley-style 'medium
gnus-keep-backlog '0))
:config
(progn
;; No primary server
(setq gnus-select-method '(nnnil ""))
;; Use topics per default
(add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
(setq gnus-visible-headers
"^From:\\|^Reply-To\\|^Organization:\\|^To:\\|^Cc:\\|^Newsgroups:\\|^Subject:\\|^Date:\\|^Gnus")
;; Show the article headers in this order.
(setq gnus-sorted-header-list
'("^From:" "^Reply-To" "^Organization:" "^To:" "^Cc:" "^Newsgroups:"
"^Subject:" "^Date:" "^Gnus"))
(require 'browse-url)
(require 'nnrss)
(defun spacemacs/gnus-flame-on ()
"Most important email function, for RFC1855 compliance."
;; https://tools.ietf.org/html/rfc1855
(interactive)
(insert "FLAME ON:\n")
(insert "FLAME OFF\n")
(forward-line -2)
(end-of-line))
(defun spacemacs/browse-nnrss-url (arg)
"Open RSS Article directy in the browser"
(interactive "p")
(let ((url (assq nnrss-url-field
(mail-header-extra
(gnus-data-header
(assq (gnus-summary-article-number)
gnus-newsgroup-data))))))
(if url
(progn
(browse-url (cdr url))
(gnus-summary-mark-as-read-forward 1))
(gnus-summary-scroll-up arg))))
(add-to-list 'nnmail-extra-headers nnrss-url-field)
(evilified-state-evilify gnus-group-mode gnus-group-mode-map
(kbd "g r") 'gnus-group-get-new-news
(kbd "O") 'gnus-group-group-map)
(evilified-state-evilify gnus-server-mode gnus-server-mode-map)
(evilified-state-evilify gnus-browse-mode gnus-browse-mode-map)
(evilified-state-evilify gnus-article-mode gnus-article-mode-map)
(evilified-state-evilify gnus-summary-mode gnus-summary-mode-map
(kbd "J") 'gnus-summary-next-article
(kbd "K") 'gnus-summary-prev-article
(kbd "<RET>") 'spacemacs/browse-nnrss-url))))
(defun gnus/post-init-window-purpose ()
(purpose-set-extension-configuration
:gnus-layer
(purpose-conf :mode-purposes '((gnus-group-mode . mail)
(gnus-server-mode . mail)
(gnus-browse-mode . mail)
(gnus-article-mode . mail)
(gnus-summary-mode . mail)))))