💾 Archived View for g.nubecita.online › emacs › gnus.gmi captured on 2023-07-22 at 16:22:13. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-01-29)

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

Gnus

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

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).

Summary buffer

Mark reference.

 !  Important      
 ?  Dormant        
 R  Read           
 r  Marked as read 
 O  Old            
 E  Expirable      
Table 1: Mark reference table.

Group buffer

Keyboard in 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                  
Table 2: Key bindings for the Group buffer.

Keyboard in Summary view:

 D/d  mark as read        
 C-w  mark region as read 
Table 3: Key binding sfor the Summary view.

Browse server for groups

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:

,----

| 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

`----

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.

 Suscription keys  Meaning                           
-----------------------------------------------------
 Empty             Suscribed                         
 K                 No suscription/nothing setted yet 
 U                 Unsuscribed by user               
Table 4: Reference of suscription key of the Gnus Browse Server
buffer.

Hydras

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

my/hydra-toggle-verbosity - Function to toggle verbosity

(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)))

Gnus

(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))
(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))