1 ;; Also know as the "wish list". Some are done. For the others, no
2 ;; promise when to be implemented.
4 * gnus-topic-kill-region
5 From Colin Marquardt <colin.marquardt@usa.alcatel.com>
7 I noticed that when re-arranging topics, C-k yanks a topic just fine
8 (runs gnus-topic-kill-group).
10 However, my habit is to do marking and the yanking the region, so I
11 would run C-w on the marked topic. But C-w runs
12 gnus-group-kill-region and doesn't yank the topic (for groups it
15 So could we have a gnus-topic-kill-region, or a
16 gnus-group-kill-region which handles topics as well?
18 * Speed up sorting in summary buffer if there is a limit.
20 Suggested by Daniel Ortmann <ortmann@isl.net>.
22 * Investigate the memory usage of Gnus.
24 But it does seem strange that Gnus would use some 15meg for this. I
25 think that is worth investigating. I suspect that bugs or bad
26 design are causing waste; they could be in Gnus, or in Emacs. -- RMS
30 The result of Google group search return a thread. Is it a digest
35 Implement NOV caching with Gnus Agent.
37 * Multiple charsets for topic names.
41 * Allow specification of server in Newsgroups header
45 WIBNI I could put `Newsgroups: nntp+quimby:bla' into a message and
46 Gnus would know to post this message on my server `nntp:quimby' into
47 the group bla? I think this would be way cool.
49 But Gnus would have to rewrite the Newsgroups header before actually
52 Thanks for Micha Wiedenmann for this suggestion.
54 * Understand mail-user-agent. Maybe gnus-mail-user-agent.
58 * Emphasis delimiters show when `W W c'.
62 * Parsing of the common list confirmation requests so that Gnus can
63 prepare the response with a single command. Including LISTSERV
64 periodic ping messages and the like.
66 * Parsing of the various List-* headers to enable automatic commands
67 like "send help message," "send unsubscribe message," and the like.
69 [done, see gnus-ml.el]
71 * Parsing of the subscription notice to stash away details like what
72 address you're subscribed to the list under (and automatically send
73 mail to the list using that address, when you send mail inside the list
74 group), what address to mail to unsubscribe, and the list info message
75 if available. Hitting the "get FAQ" command inside a mailing list
76 group should display that stashed copy of the info message.
78 * Some help in coming up with good split rules for mailing lists, as
79 automated as possible. Splitting on To and Cc is almost always not
80 what I want, since it can misfile messages and since if I'm cc'd on
81 list mail I want to get both copies, one in my personal mailbox and one
82 in the list mailbox. I know other people handle it other ways, but I
83 prefer it that way. Accordingly, some way to semi-automatically
84 generate split rules based on Sender, Mailing-List, Return-Path,
85 X-Loop, and all of the other random headers that often work would be
88 * Support for zipped folders for all backends this makes sense for.
89 Most likely using jka-compr. (It has been suggested that this do
90 work but I think it should be verified for all backends.)
92 * Support for RFC2015, PGP-MIME. Probably has to involve the people in
93 the Mailcrypt project.
97 * Agent (Can someone write some subtopics here? I don't use it myself
98 so I don't know what is lacking.)
100 * Support for encrypted folders. Even if the mail arrives unencrypted
101 Gnus should be able to encrypt the *folder* for added safety. This
102 should go for both Gnus' own folders and the folders Gnus reads from
103 (e.g. /var/spool/mail/${USER}). All backends this makes sense for.
105 [John Wiegley's article <200011030445.VAA08277@localhost.dynodns.net>,
106 posted on gnu.emacs.gnus does this.
107 Also, gnus-article-encrypt `K E' encrypts the article body.]
109 * The stuff on "Newest Features" in the manual should be implemented
110 and the node updated (it maybe is?).
112 * Splitting .newsrc.eld so the history is in one file and the
113 configuration is in another. To help those that reads at two
114 locations (e.g. work and home) and want to have the same
117 * gnus-uu-decode should complain if one or more parts of a series post
118 (ie, "part N of X") is missing, and optionally tick what parts are
119 there for decoding in a later session.
121 * Additional article marking, and an ability to affect marks placed
122 during e.g. mail acquisition. I want to be able to notice the
123 subject "fast money" or "web traffic", automatically mark it with a
124 `$', and score it into oblivion. (But I fear that wanting to change
125 marks with mail-source-* and nnmail-* functions will represent a
126 philosophical conflict with the rest of Gnus' management of article
127 marks. mail-source-* and nnmail-* currently hack around with files
128 under ~/Mail and leave traces in ~/Mail/active, but don't affect
129 things stored in .newsrc.eld.)
131 * A much better interface to nnmail-split-methods. I don't know how
132 I'd like this done, but I know that the current method of manually
133 hacking regexps is pretty untenable for new users. My boss, who is
134 tenured faculty at CMU and CEO & CTO at JPRC, and whose research
135 work has involved Lisp for the last 25 years, is trying to implant
136 himself in a Gnus mail environment, and this is a big sticking point
139 * PGP-supported encryption of entire nnml & nnmh groups. There are
140 people with whom I exchange mail routinely who don't send w/PGP, but
141 I'd really rather that the content not be left lying around
142 unencrypted. Hook into article acquisition the way jka-compr
143 supposedly does, to auto-decrypt every message read.
145 [See Support for encrypted folders.]
147 * Baby's First Mail In Gnus. Some set of functions that the
148 new-to-mail-in-Gnus user can invoke which will query the user
149 appropriately for the basic information required to establish mail
150 handling, leaving the appropriate traces in .gnus. Perhaps a
151 customize buffer would be appropriate.
152 - Where does your mail come from?
153 - If some server, what is your POP/IMAP protocol identity?
154 - What is your identity when sending mail, as opposed to posting to
156 - Here are some basic concepts of mail groups (list a few:
157 personal mail, company-wide mail, mailing lists, garbage dumps,
158 receptacles for outbound copies of what one sends; which ones do
159 you want to instantiate, and what mail should land in each?
160 [/viz./ problem of nnmail-split-methods interface.]
162 * Full integration of nnir into Gnus. Generic hooks for adding new
163 external nnir sources. I use a couple experimental, in-house tools
164 (JPRC is a research lab, occupied with document analysis and machine
165 learning) and adding new search engines to nnir by hacking the main
166 nnir.el module is rather clunky.
168 * Manual ordering of articles in an nnml folder.
170 That is, keystrokes to move articles (or whole threads) up or down
171 in the *Summary* buffer relative to the other articles. The order
172 would be persistent (e.g., across gnus sessions).
174 With this ability, an nnml folder would make for a good to-do list.
176 * Since many uses Gnus to store to do lists I think it is time for an
177 nntodo. (I know Kai already written one, maybe use that for a start?)
179 * nnsql backend, which would allow messages or folders to be imported
180 in a local (My|Postgre|?)SQL RDBMS.
182 * "posting profiles" ideally accessible from a popup menu; allowing
183 choice between predefined profiles of
184 from,name,organization,etc. Example: I'm at home, but need to reply
185 to a work mail; i can hit 'R', then use this command to switch to my
186 'work' profile for purposes of this one reply. (This might already
187 be possible with current Gnus, but I don't think so.)
189 * Better handling of the mail retrieving / splitting feature:
190 - the variables <backend>-get-new-mail should not exist anymore. Mail
191 retrieving should be a separate matter.
192 - we should be able to split mails to groups AND backends at the same time.
193 - meanwhile, we should still be able to associate certain mail sources with
196 * A better interface to the agent download scoring rules, like the one
197 for the other scoring rules.
199 * Editing of messages in the agents cache.
201 * More article marks (like '!' or '?').
202 Maybe user defined marks that can be displayed as any choosen charakter,
203 so one could do things like limiting on, to do whatever one likes with
206 * A possibility to add notes to messages. If thouse could include links
207 to other (stored) messages this would be very practical.
209 * A nnfolder like backend with .overview files.
210 This would not only speed up things, but also allow nnir to work on it.
214 * Allow article editing in groups which do not support it, but
215 emulating it via deleting the old article and entering the new one
216 into the group. This would be very useful to support `T ^' (say) in
219 * Allow user to specify which kinds of groups should be displayed.
220 For example, I want to display all the groups that are displayed
221 now, plus those which have cached messages in them. (Gnus does
222 display those with ticked messages but not those with
223 cached-but-unticked ones.) This would become even more important
224 when we allow labels.
226 * Go through the todo list and remove items already done.
228 * Create new data type `article identifier' and use that instead of
229 article numbers. A first implementation could offer something like
230 (num . 4711) but this could be extended. This would be useful for
231 using servers with *really* large numbers -- there we could have a
232 bignum type. It might also be useful for the nnweb and nnultimate
233 thingies where article identifiers are not really numbers.
235 * Allow use of digests to keep related articles. Normally, you use
236 groups to group together articles which are thematically related.
237 But sometimes, you have so many themes that this becomes
238 impractical. WIBNI I could have digests in a group, and there was a
239 way to add a new article to one of the digests in that group?
241 Or maybe what I really want is a way to tell Gnus that a specific
242 thread should always be hidden (as in `T h') by default, while most
243 other threads are not hidden by default. Hm.
245 * New backend between nnfolder and nnml: have more than one article
246 per file, but more than one file per group. With .overview files.
248 [done. nnfolder has .overview. Backward- and forward-compatible
249 between 1.0 and 2.0. (setq nnfolder-nov-is-evil t) disables the
252 * .overview files for nnfolder?
256 * New backend nnbabylfolder. There is also nnbabyl which is like
257 nnmbox but uses babyl format, but there is no babyl format
258 equivalent of nnfolder.
260 * Make movement commands in summary buffer independent of `move after
261 mark' behavior when marking articles. Currently, if you don't want
262 `E' to move to the next unread article, you have to set
263 gnus-summary-goto-unread to nil, and then there is no way to move to
264 the next or previous unread article.
266 This one has two sub-tasks. Providing the commands is one thing,
267 finding out useful key bindings for them is another. I think we
268 could provide the commands first while not changing the behavior of
269 the key bindings; then different people can experiment with
270 different key binding schemes until we find something which suits
273 * `Move to next/previous/first article' is a misnomer, since ticked
274 articles are also unread but not moved to by these commands. Should
275 the terminology be fixed or the documentation, or what?
277 * Allow sorting of threads by newest article rather than by root of
278 thread. Consider the following thread structure:
285 These two threads are sorted this way because root1 is older than
286 root2. I want an option to sort them the other way round because
287 leaf1 is newer than leaf2.
289 * Improve editing of MIME messages. I would like to use html-mode to
290 edit the body of a text/html message, and enriched-mode for
291 text/enriched messages, and so on. This should go for multipart
292 messages as well. This is probably a hard one since Emacs currently
293 does not allow several major modes per buffer. But maybe it would
294 be nice to hack Emacs to provide this infrastructure so that Gnus
295 can make use of it? This would also make it possible to provide
296 nifty commands for editing the headers, for example, rather than
297 relying on commands which do the same thing everywhere.
298 message-x.el is really just a half-assed attempt at doing it, and
299 while it is useful, that's not the way it should be done.
301 I think Francisco Potort
\e,Al
\e(B already did something like this?
303 * Provide commands for editing MML tags. For example, there could be
304 a command mml-add-tag-attribute which prompts me for an attribute
305 name (with completion, from the set filename, type, ...), and then
306 for a value. (This is like `C-c +' in psgml.) Or there could be a
307 command which showed me all the attributes in an MML tag and allows
308 me to use TAB to move between them, and then to edit each attribute
309 value. (This is like `C-c C-a' in psgml.)
311 * Have Gnus automagically set group parameters for mailing list
312 groups. For example, if I have a splitting rule that automatically
313 sorts ding@gnus.org into mail.ding, then Gnus should clue in, set
314 the to-list parameter to 'ding@gnus.org', and set total-expire.
315 (This is probably Hard (TM). And of course the user should be able
316 to configure what parameters exactly get set.)
318 * Along the same lines, automagically detect broken reply-to's. (But
319 don't auto-detect users legitimately setting a reply-to header that
320 points back to the list.)
322 * Make it easier to change parameters on a set of groups,
323 e.g. set/clear gcc-self on process-marked groups.
325 * Make it easier/possible to migrate between primary select-methods,
326 if that concept is going to be kept. Right now I have only one
327 group on my primary server, and I'd kind of like to change from nntp
328 to nnml, but apparently this doesn't work well.
330 * Make it possible to refer to uniquely-named groups without
331 select-method prefix (e.g. mail.misc instead of nnml:mail.misc).
333 * Allow a user-defined picons directory for personal groups.
335 * Annotations as discussed last autumn. Be able to make comments to
336 articles for all bakends. The comments amybe should go into a
337 seperate "backend", like nndraft.
339 * Catchup on a topic and all its subtopics. I.e. do "c y" when on a
340 topic line in *Group*.
342 * Better/more advanced subject washing in *Summary*, see my
343 js-gnus-simplify-subject-function I posted earlier this winter.
345 ;; From Newest Features node. Some are not done.
347 * I would like the zombie-page to contain an URL to the source of the
348 latest version of gnus or some explanation on where to find it.
350 * A way to continue editing the latest Message composition.
352 * http://www.sonicnet.com/feature/ari3/
356 * facep is not declared.
358 * Include a section in the manual on why the number of articles isn't
359 the same in the group buffer and on the SPC prompt.
361 * Interacting with rmail fcc isn't easy.
364 [N/A]<URL:http://www.falch.no/people/pepper/DSSSL-Lite/archives/>
365 [N/A]<URL:http://www.eit.com/software/hypermail/hypermail.html>
366 [N/A]<URL:http://homer.ncm.com/>
367 [N/A]<URL:http://www.yahoo.com/Computers_and_Internet/Internet/World_Wide_Web/HTML_Converters/>
368 http://www.uwsg.indiana.edu/hypermail/linux/kernel/9610/index.html
369 [N/A]<URL:http://union.ncsa.uiuc.edu/HyperNews/get/www/html/converters.html>
370 [N/A]http://www.miranova.com/gnus-list/
374 * `^-- ' is made into - in LaTeX.
376 * gnus-kill is much slower than it was in GNUS 4.1.3.
378 * when expunging articles on low score, the sparse nodes keep
381 * starting the first time seems to hang Gnus on some systems. Does
382 NEWGROUPS answer too fast?
384 * nndir doesn't read gzipped files.
386 * FAQ doesn't have an up node?
388 * when moving mail from a procmail spool to the crash-box, the
389 crash-box is only appropriate to one specific group.
391 * `t' `t' makes X-Faces disappear.
393 * nnmh-be-safe means that crossposted articles will be marked as
396 * Orphan score entries don't show on "V t" score trace
398 * when clearing out data, the cache data should also be reset.
400 * rewrite gnus-summary-limit-children to be non-recursive to avoid
401 exceeding lisp nesting on huge groups.
403 * expunged articles are counted when computing scores.
405 * implement gnus-batch-brew-soup
407 * ticked articles aren't easy to read in pick mode - `n' and stuff
408 just skips past them. Read articles are the same.
410 * topics that contain just groups with ticked articles aren't
413 * nndoc should always allocate unique Message-IDs.
415 * If there are mail groups the first time you use Gnus, Gnus'll
416 make the mail groups killed.
418 * no "no news is good news" when using topics.
420 * when doing crosspost marking, the cache has to be consulted and
421 articles have to be removed.
423 * nnweb should fetch complete articles when they are split into
426 * scoring on head immediate doesn't work.
428 * finding short score file names takes forever.
430 * canceling articles in foreign groups.
432 * nntp-open-rlogin no longer works.
434 * C-u C-x C-s (Summary) switches to the group buffer.
436 * move nnmail-split-history out to the backends.
438 * nnweb doesn't work properly.
440 * using a virtual server name as `gnus-select-method' doesn't work?
442 * when killing/yanking a group from one topic to another in a
443 slave, the master will yank it first to one topic and then add it
446 * warn user about `=' redirection of a group in the active file?
448 * take over the XEmacs menubar and offer a toggle between the XEmacs
449 bar and the Gnus bar.
451 * push active file and NOV file parsing down into C code.
452 `(canonize-message-id id)'
453 `(mail-parent-message-id references n)'
454 `(parse-news-nov-line &optional dependency-hashtb)'
455 `(parse-news-nov-region beg end &optional dependency-hashtb fullp)'
456 `(parse-news-active-region beg end hashtb)'
458 * nnml .overview directory with splits.
462 * postponed commands.
464 * the selected article show have its Subject displayed in its
467 * when entering groups, get the real number of unread articles from
470 * sort after gathering threads - make false roots have the headers
471 of the oldest orphan with a 0 article number?
473 * nndoc groups should inherit the score files of their parents?
474 Also inherit copy prompts and save files.
476 * command to start up Gnus (if not running) and enter a mail mode
479 * allow editing the group description from the group buffer for
480 backends that support that.
482 * gnus-hide,show-all-topics
484 * groups and sub-topics should be allowed to mingle inside each
485 topic, and not just list all subtopics at the end.
487 * a command to remove all read articles that are not needed to
488 connect threads - `gnus-summary-limit-to-sparse-unread'?
490 * a variable to turn off limiting/cutting of threads in the tree
493 * a variable to limit how many files are uudecoded.
495 * add zombie groups to a special "New Groups" topic.
497 * server mode command: close/open all connections
499 * put a file date in gnus-score-alist and check whether the file
500 has been changed before using it.
502 * on exit from a digest group, go to the next article in the parent
505 * hide (sub)threads with low score.
507 * when expiring, remove all marks from expired articles.
509 * gnus-summary-limit-to-body
511 * a regexp alist that says what level groups are to be subscribed
512 on. Eg. - `(("nnml:" . 1))'.
514 * easier interface to nnkiboze to create ephemeral groups that
515 contain groups that match a regexp.
517 * allow newlines in <URL:> urls, but remove them before using the
520 * If there is no From line, the mail backends should fudge one from
523 * fuzzy simplifying should strip all non-alpha-numerical info from
526 * gnus-soup-brew-soup-with-high-scores.
528 * nntp-ping-before-connect
530 * command to check whether NOV is evil. "list overview.fmt".
532 * when entering a group, Gnus should look through the score files
533 very early for `local' atoms and set those local variables.
535 * message annotations.
537 * topics are always yanked before groups, and that's not good.
539 * (set-extent-property extent 'help-echo "String to display in
540 minibuf") to display help in the minibuffer on buttons under
543 * allow group line format spec to say how many articles there are
548 * `run-with-idle-timer' in gnus-demon.
550 * stop using invisible text properties and start using overlays
553 * C-c C-f C-e to add an Expires header.
555 * go from one group to the next; everything is expunged; go to the
556 next group instead of going to the group buffer.
558 * gnus-renumber-cache - to renumber the cache using "low" numbers.
560 * record topic changes in the dribble buffer.
562 * `nnfolder-generate-active-file' should look at the folders it
563 finds and generate proper active ranges.
565 * nneething-look-in-files-for-article-heads variable to control
566 whether nneething should sniff all files in the directories.
568 * gnus-fetch-article - start Gnus, enter group, display article
570 * gnus-dont-move-articles-to-same-group variable when respooling.
572 * when messages are crossposted between several auto-expirable
573 groups, articles aren't properly marked as expirable.
575 * nneething should allow deletion/moving.
577 * TAB on the last button should go to the first button.
579 * if the car of an element in `mail-split-methods' is a function,
580 and the function returns non-nil, use that as the name of the
581 group(s) to save mail in.
583 * command for listing all score files that have been applied.
585 * a command in the article buffer to return to `summary' config.
587 * `gnus-always-post-using-current-server' - variable to override
588 `C-c C-c' when posting.
590 * nnmail-group-spool-alist - says where each group should use as a
593 * when an article is crossposted to an auto-expirable group, the
594 article should be marker as expirable.
596 * article mode command/menu for "send region as URL to browser".
598 * on errors, jump to info nodes that explain the error. For
599 instance, on invalid From headers, or on error messages from the
602 * when gathering threads, make the article that has no "Re: " the
603 parent. Also consult Date headers.
605 * a token in splits to call shrink-window-if-larger-than-buffer
607 * `1 0 A M' to do matches on the active hashtb.
609 * duplicates - command to remove Gnus-Warning header, use the read
610 Message-ID, delete the "original".
612 * when replying to several messages at once, put the "other"
613 message-ids into a See-Also header.
615 * support setext: URL:http://www.bsdi.com/setext/
618 <URL:http://proletext.clari.net/prole/proletext.html>
620 * when browsing a foreign server, the groups that are already
621 subscribed should be listed as such and not as "K".
625 * generate font names dynamically.
627 * score file mode auto-alist.
629 * allow nndoc to change/add/delete things from documents. Implement
630 methods for each format for adding an article to the document.
632 * `gnus-fetch-old-headers' `all' value to incorporate absolutely
633 all headers there is.
635 * function like `|', but concatenate all marked articles and pipe
638 * cache the list of killed (or active) groups in a separate file.
639 Update the file whenever we read the active file or the list of
640 killed groups in the .eld file reaches a certain length.
642 * function for starting to edit a file to put into the current mail
645 * score-find-trace should display the total score of the article.
647 * "ghettozie" - score on Xref header and nix it out after using it
648 to avoid marking as read in other groups it has been crossposted
651 * look at procmail splitting. The backends should create the
652 groups automatically if a spool file exists for that group.
654 * function for backends to register themselves with Gnus.
656 * when replying to several process-marked articles, have all the
657 From end up in Cc headers? Variable to toggle.
659 * command to delete a crossposted mail article from all groups it
662 * `B c' and `B m' should be crosspost aware.
664 * hide-pgp should also hide PGP public key blocks.
666 * Command in the group buffer to respool process-marked groups.
668 * `gnus-summary-find-matching' should accept pseudo-"headers" like
669 "body", "head" and "all"
671 * When buttifying <URL: > things, all white space (including
672 newlines) should be ignored.
674 * Process-marking all groups in a topic should process-mark groups
675 in subtopics as well.
677 * Add non-native groups to the list of killed groups when killing
680 * nntp-suggest-kewl-config to probe the nntp server and suggest
683 * add edit and forward secondary marks.
685 * nnml shouldn't visit its .overview files.
687 * allow customizing sorting within gathered threads.
689 * `B q' shouldn't select the current article.
691 * nnmbox should support a newsgroups file for descriptions.
693 * allow fetching mail from several pop servers.
697 * Be able to specify whether the saving commands save the original
698 or the formatted article.
700 * a command to reparent with the child process-marked (cf. `T ^'.).
702 * I think the possibility to send a password with nntp-open-rlogin
703 should be a feature in Red Gnus.
705 * The `Z n' command should be possible to execute from a mouse
708 * more limiting functions - date, etc.
710 * be able to limit on a random header; on body; using reverse
713 * a group parameter (`absofucking-total-expiry') that will make
714 Gnus expire even unread articles.
716 * a command to print the article buffer as postscript.
718 * variable to disable password fetching when opening by
721 * manual: more example servers - nntp with rlogin, telnet
723 * checking for bogus groups should clean topic alists as well.
725 * canceling articles in foreign groups.
727 * article number in folded topics isn't properly updated by Xref
730 * Movement in the group buffer to the next unread group should go
731 to the next closed topic with unread messages if no group can be
734 * Extensive info pages generated on the fly with help everywhere -
735 in the "*Gnus edit*" buffers, for instance.
737 * Topic movement commands - like thread movement. Up, down,
740 * a way to tick/mark as read Gcc'd articles.
742 [done, (setq gnus-inews-mark-gcc-as-read t)]
744 * a way to say that all groups within a specific topic comes from a
745 particular server? Hm.
747 * `gnus-article-fill-if-long-lines' - a function to fill the
748 article buffer if there are any looong lines there.