3.1.1 Summary Buffer Lines

You can change the format of the lines in the summary buffer by changing
the gnus-summary-line-format variable. It works along the same
lines as a normal format string, with some extensions
(see Formatting Variables).

There should always be a colon or a point position marker on the line;
the cursor always moves to the point position marker or the colon after
performing an operation. (Of course, Gnus wouldn't be Gnus if it wasn't
possible to change this. Just write a new function
gnus-goto-colon which does whatever you like with the cursor.)
See Positioning Point.

The default string is ‘%U%R%z%I%(%[%4L: %-23,23f%]%) %s\n’.

The following format specification characters and extended format
specification(s) are understood:

A complex trn-style thread tree, showing response-connecting trace
lines. A thread could be drawn like this:

>
+->
| +->
| | \->
| | \->
| \->
+->
\->

You can customize the appearance with the following options. Note
that it is possible to make the thread display look really neat by
replacing the default ASCII characters with graphic
line-drawing glyphs.

gnus-sum-thread-tree-root

Used for the root of a thread. If nil, use subject
instead. The default is ‘> ’.

gnus-sum-thread-tree-false-root

Used for the false root of a thread (see Loose Threads). If
nil, use subject instead. The default is ‘> ’.

gnus-sum-thread-tree-single-indent

Used for a thread with just one message. If nil, use subject
instead. The default is ‘’.

gnus-sum-thread-tree-vertical

Used for drawing a vertical line. The default is ‘| ’.

gnus-sum-thread-tree-indent

Used for indenting. The default is ‘’.

gnus-sum-thread-tree-leaf-with-other

Used for a leaf with brothers. The default is ‘+-> ’.

gnus-sum-thread-tree-single-leaf

Used for a leaf without brothers. The default is ‘\-> ’

‘T’

Nothing if the article is a root and lots of spaces if it isn't (it
pushes everything after it off the screen).

‘[’

Opening bracket, which is normally ‘[’, but can also be ‘<’
for adopted articles (see Customizing Threading).

‘]’

Closing bracket, which is normally ‘]’, but can also be ‘>’
for adopted articles.

Zcore, ‘+’ if above the default level and ‘-’ if below the
default level. If the difference between
gnus-summary-default-score and the score is less than
gnus-summary-zcore-fuzz, this spec will not be used.

‘V’

Total thread score.

‘x’

Xref.

‘D’

Date.

‘d’

The Date in DD-MMM format.

‘o’

The Date in YYYYMMDDTHHMMSS format.

‘M’

Message-ID.

‘r’

References.

‘t’

Number of articles in the current sub-thread. Using this spec will slow
down summary buffer generation somewhat.

‘e’

An ‘=’ (gnus-not-empty-thread-mark) will be displayed if the
article has any children.

‘P’

The line number.

‘O’

Download mark.

‘*’

Desired cursor position (instead of after first colon).

‘&user-date;’

Age sensitive date format. Various date format is defined in
gnus-user-date-format-alist.

‘u’

User defined specifier. The next character in the format string should
be a letter. Gnus will call the function
gnus-user-format-function-x, where x is the letter
following ‘%u’. The function will be passed the current header as
argument. The function should return a string, which will be inserted
into the summary just like information from any other summary specifier.

Text between ‘%(’ and ‘%)’ will be highlighted with
gnus-mouse-face when the mouse point is placed inside the area.
There can only be one such area.

The ‘%U’ (status), ‘%R’ (replied) and ‘%z’ (zcore) specs
have to be handled with care. For reasons of efficiency, Gnus will
compute what column these characters will end up in, and “hard-code”
that. This means that it is invalid to have these specs after a
variable-length spec. Well, you might not be arrested, but your summary
buffer will look strange, which is bad enough.

The smart choice is to have these specs as far to the left as possible.
(Isn't that the case with everything, though? But I digress.)