💾 Archived View for g.nubecita.online › emacs › gnus.org captured on 2023-01-29 at 02:42:49. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

It's a news (NNTP) and Feeds (RSS/Atom) downloader and reader. It is organised as follows:

- Servers are shown in the Server and Browse Serve buffers and they have:

- Groups are shown in the Group buffer (the first one) and they have:

- Articles which are shown in the Summary buffer.

The usual NNTP servers is gmane. Feed servers may require an Elisp code to be supported (Atom particulary) and can be found in any Web page.

Groups have a DNS-like name, ex.: gmane.com.emacslife.planet (the name is inverted as the original DNS were thought).

:PROPERTIES:

:ID: e1522b45-a7c2-49ef-866e-6cbe7c6d9833

:END:

Mark reference.

+caption: Mark reference table.

| ! | Important |

| ? | Dormant |

| R | Read |

| r | Marked as read |

| O | Old |

| E | Expirable |

:PROPERTIES:

:ID: 8a2fabe9-0e60-4125-b28c-3914d501ca75

:END:

Keyboard in Group buffer:

+caption: Key bindings for the Group buffer.

| L | list-all-groups |

| t | topic-mode |

| c | catchup-current |

|---+--------------------------|

| u | unsuscribe-current-group |

| g | get-new-news |

|---+--------------------------|

| ^ | enter-server-mode |

| s | save-newsrc |

| q | exit |

| R | restart |

Keyboard in Summary view:

+caption: Key binding sfor the Summary view.

| D/d | mark as read |

| C-w | mark region as read |

:PROPERTIES:

:ID: 1aea978a-078c-4537-a622-3507384d7a36

:END:

The Server buffer lists the servers already suscribed and their connection status. The user can disconnect a server making it unabailable for retrieving new updates. A group list can be retrieved from this buffer by pressing ~RET~ on any server name.

To access the Browse Server, on the Group buffer (the first one) press ~^~ key to enter the Server buffer, and the press ~RET~ on any server hostname. If you know an NNTP server hostname, press ~B~ on the Group buffer.

The Gnus Browse Server buffer lists all the groups registered on a particular server. It has the following elements in its list: A suscription key, number of messages, and the group name. The user can suscribe any group, but they can read the groups without suscribing to them at all. The following is an example of news.gmane.org server as displayed by the Gnus Browse Server buffer:

+begin_example

25628: gmane.announce

K 41: gmane.comp.accessibility.tanaguru

K 6492: gmane.comp.accessibility.vision

K 409: gmane.comp.ai.alicebot.devel

K 145: gmane.comp.ai.annevolve.devel

K 218: gmane.comp.ai.case-based-reasoning

K 3448: gmane.comp.ai.conceptual-graphs

+end_example

The first line in the example shows the group =gmane.announce=, with 25628 messages in it. The user is suscribed beacuse no suscription key is present. The second line state another group with ``K'' as suscription key, meaning no suscription by default, because the user has not set anything yet.

+caption: Reference of suscription key of the Gnus Browse Server buffer.

| Suscription keys | Meaning |

|------------------+-----------------------------------|

| Empty | Suscribed |

| K | No suscription/nothing setted yet |

| U | Unsuscribed by user |

Some hydra functions to guide and remember how to use Gnus.

+BEGIN_SRC elisp

(defun my/hydra-toggle-verbosity (hydra-name)

"Toggle verbosity of HIDRA-NAME hydra"

(hydra-set-property hydra-name :verbosity

(if (or (null (hydra-get-property hydra-name :verbosity))

(eq 0 (hydra-get-property hydra-name :verbosity)))

1

0)))

+END_SRC

+BEGIN_SRC elisp

(defhydra hydra-gnus-group (:hint nil :color pink)

"

gnus-group

╭─────────────────────────────────────────────────────────────────────────╯

_c_ Catchup current (mark all articles in current group as read)

_RET_ Read group (enter Summary buffer)

Visibility:

_L_ Show all groups

_t_ Show topics (group categories)

Server management:

_B_ Browse foreign server (when you know the host name)

_\\^_ Enter server mode (registered server host names)

Hydra:

_h_ Toggle verbose

_q_ Exit

"

("RET" (progn

(gnus-topic-select-group)

(hydra-gnus-summary/body)

(hydra-push '(hydra-gnus-group/body)))

"Read group")

("c" gnus-group-catchup-current "Catch-up all current")

("L" gnus-group-list-all-groups "List all groups")

("t" gnus-topic-mode "Toggle view topics" )

("B" gnus-group-browse-foreign-server "Browse foreign server"

:exit t)

("^" gnus-group-enter-server-mode "Enter server buffer"

:exit t)

("q" nil "Hydra, quit."

:exit t)

("h" (my/hydra-toggle-verbosity 'hydra-gnus-group)

"Hydra, toggle verbosity."

:exit nil))

+END_SRC

+BEGIN_SRC elisp :tangle no

(defhydra hydra-gnus-summary (:hint nil :color pink)

"

gnus-summary

╭─────────────────────────────────────────────────────────────────────────╯

Mark | Previous/Next ...

_d_/_D_ mark as read forward/backward | _P_/_N_ P/N article

^^_C-w_ mark region as read | _M-down_/_M-up_ P/N thread

_q_ exit gnus-summary

"

("d" gnus-summary-mark-as-read-forward)

("D" gnus-summary-mark-as-read-backward)

("C-w" gnus-summary-mark-region-as-read)

;; ("q" gnus-summary-exit)

("q" nil :exit t))

+END_SRC

+name: before-save

+BEGIN_SRC emacs-lisp :results silent

(require 'ox-gemini)

(org-export-to-file 'gemini "gnus.gmi")

+END_SRC

----------------------------------------------------------------------

+TITLE: Gnus

+SUBTITLE: The Emacs news reader

+AUTHOR: Christian Gimenez

+DATE: 08 nov 2022

+EMAIL:

+DESCRIPTION:

+KEYWORDS:

+COLUMNS: %40ITEM(Task) %17Effort(Estimated Effort){:} %CLOCKSUM

+STARTUP: inlineimages hidestars content hideblocks entitiespretty

+STARTUP: indent fninline latexpreview

+OPTIONS: H:3 num:t toc:t \n:nil @:t ::t |:t ^:{} -:t f:t *:t <:t

+OPTIONS: TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc

+OPTIONS: tex:imagemagick

+TODO: TODO(t!) CURRENT(c!) PAUSED(p!) | DONE(d!) CANCELED(C!@)

-- Export

+LANGUAGE: en

+LINK_UP:

+LINK_HOME:

+EXPORT_SELECT_TAGS: export

+EXPORT_EXCLUDE_TAGS: noexport

#+export_file_name: index

-- HTML Export

+INFOJS_OPT: view:info toc:t ftoc:t ltoc:t mouse:underline buttons:t path:libs/org-info.js

+HTML_LINK_UP: index.html

+HTML_LINK_HOME: index.html

+XSLT:

-- For ox-twbs or HTML Export

#+HTML_HEAD: <link href="libs/bootstrap.min.css" rel="stylesheet">

-- -- LaTeX-CSS

#+HTML_HEAD: <link href="css/style-org.css" rel="stylesheet">

#+HTML_HEAD: <script src="libs/jquery.min.js"></script>

#+HTML_HEAD: <script src="libs/bootstrap.min.js"></script>

-- LaTeX Export

#+LATEX_CLASS: article

+latex_compiler: xelatex

#+latex_class_options: [12pt, twoside]

+latex_header: \usepackage{csquotes}

#+latex_header: \usepackage[spanish]{babel}

#+latex_header: \usepackage[margin=2cm]{geometry}

#+latex_header: \usepackage{fontspec}

-- biblatex

+latex_header: \usepackage[backend=biber, style=alphabetic, backref=true]{biblatex}

+latex_header: \addbibresource{tangled/biblio.bib}

-- -- Tikz

#+LATEX_HEADER: \usepackage{tikz}

#+LATEX_HEADER: \usetikzlibrary{arrows.meta}

#+LATEX_HEADER: \usetikzlibrary{decorations}

#+LATEX_HEADER: \usetikzlibrary{decorations.pathmorphing}

#+LATEX_HEADER: \usetikzlibrary{shapes.geometric}

#+LATEX_HEADER: \usetikzlibrary{shapes.symbols}

#+LATEX_HEADER: \usetikzlibrary{positioning}

#+LATEX_HEADER: \usetikzlibrary{trees}

#+LATEX_HEADER_EXTRA:

-- Info Export

+TEXINFO_DIR_CATEGORY: A category

+TEXINFO_DIR_TITLE: Gnus: (gnus)

+TEXINFO_DIR_DESC: One line description.

+TEXINFO_PRINTED_TITLE: Gnus

+TEXINFO_FILENAME: gnus.info

Local Variables:

org-hide-emphasis-markers: t

org-use-sub-superscripts: "{}"

fill-column: 80

visual-line-fringe-indicators: t

ispell-local-dictionary: "british"

org-latex-default-figure-position: "tbp"

eval: (add-hook 'before-save-hook (lambda () (org-babel-ref-resolve "before-save")) nil t)

End: