[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.14 Image Enhancements

XEmacs, as well as Emacs 21(3) and up, are able to display pictures and stuff, so Gnus has taken advantage of that.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.14.1 X-Face

X-Face headers describe a 48x48 pixel black-and-white (1 bit depth) image that’s supposed to represent the author of the message. It seems to be supported by an ever-growing number of mail and news readers.

Viewing an X-Face header either requires an Emacs that has ‘compface’ support (which most XEmacs versions have), or that you have suitable conversion or display programs installed. If your Emacs has image support the default action is to display the face before the From header. If there’s no native X-Face support, Gnus will try to convert the X-Face header using external programs from the pbmplus package and friends, see below. For XEmacs it’s faster if XEmacs has been compiled with X-Face support. The default action under Emacs without image support is to fork off the display program.

On a GNU/Linux system, the display program is included in the ImageMagick package. For external conversion programs look for packages with names like netpbm, libgr-progs and compface. On Windows, you may use the packages netpbm and compface from http://gnuwin32.sourceforge.net. You need to add the bin directory to your PATH environment variable.

The variable gnus-article-x-face-command controls which programs are used to display the X-Face header. If this variable is a string, this string will be executed in a sub-shell. If it is a function, this function will be called with the face as the argument. If gnus-article-x-face-too-ugly (which is a regexp) matches the From header, the face will not be shown.

(Note: x-face is used in the variable/function names, not xface).

Face and variable:


Face to show X-Face. The colors from this face are used as the foreground and background colors of the displayed X-Faces. The default colors are black and white.


Alist of image types and properties applied to Face (see section Face) and X-Face images. The default value is ((pbm . (:face gnus-x-face)) (png . nil)) for Emacs or ((xface . (:face gnus-x-face))) for XEmacs. Here are examples:

;; Specify the altitude of Face and X-Face images in the From header.
(setq gnus-face-properties-alist
      '((pbm . (:face gnus-x-face :ascent 80))
        (png . (:ascent 80))))

;; Show Face and X-Face images as pressed buttons.
(setq gnus-face-properties-alist
      '((pbm . (:face gnus-x-face :relief -2))
        (png . (:relief -2))))

see (elisp)Image Descriptors section ‘Image Descriptors’ in The Emacs Lisp Reference Manual for the valid properties for various image types. Currently, pbm is used for X-Face images and png is used for Face images in Emacs. Only the :face property is effective on the xface image type in XEmacs if it is built with the ‘libcompface’ library.

If you use posting styles, you can use an x-face-file entry in gnus-posting-styles, See section Posting Styles. If you don’t, Gnus provides a few convenience functions and variables to allow easier insertion of X-Face headers in outgoing messages. You also need the above mentioned ImageMagick, netpbm or other image conversion packages (depending the values of the variables below) for these functions.

gnus-random-x-face goes through all the ‘pbm’ files in gnus-x-face-directory and picks one at random, and then converts it to the X-Face format by using the gnus-convert-pbm-to-x-face-command shell command. The ‘pbm’ files should be 48x48 pixels big. It returns the X-Face header data as a string.

gnus-insert-random-x-face-header calls gnus-random-x-face and inserts a ‘X-Face’ header with the randomly generated data.

gnus-x-face-from-file takes a GIF file as the parameter, and then converts the file to X-Face format by using the gnus-convert-image-to-x-face-command shell command.

Here’s how you would typically use the first function. Put something like the following in your ‘~/.gnus.el’ file:

(setq message-required-news-headers
      (nconc message-required-news-headers
             (list '(X-Face . gnus-random-x-face))))

Using the last function would be something like this:

(setq message-required-news-headers
      (nconc message-required-news-headers
             (list '(X-Face . (lambda ()

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.14.2 Face

Face headers are essentially a funkier version of X-Face ones. They describe a 48x48 pixel colored image that’s supposed to represent the author of the message.

The contents of a Face header must be a base64 encoded PNG image. See http://quimby.gnus.org/circus/face/ for the precise specifications.

The gnus-face-properties-alist variable affects the appearance of displayed Face images. See section X-Face.

Viewing a Face header requires an Emacs that is able to display PNG images.

Gnus provides a few convenience functions and variables to allow easier insertion of Face headers in outgoing messages.

gnus-convert-png-to-face takes a 48x48 PNG image, no longer than 726 bytes long, and converts it to a face.

gnus-face-from-file takes a JPEG file as the parameter, and then converts the file to Face format by using the gnus-convert-image-to-face-command shell command.

Here’s how you would typically use this function. Put something like the following in your ‘~/.gnus.el’ file:

(setq message-required-news-headers
      (nconc message-required-news-headers
             (list '(Face . (lambda ()
                              (gnus-face-from-file "~/face.jpg"))))))

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.14.3 Smileys

Smiley is a package separate from Gnus, but since Gnus is currently the only package that uses Smiley, it is documented here.

In short—to use Smiley in Gnus, put the following in your ‘~/.gnus.el’ file:

(setq gnus-treat-display-smileys t)

Smiley maps text smiley faces—‘:-)’, ‘8-)’, ‘:-(’ and the like—to pictures and displays those instead of the text smiley faces. The conversion is controlled by a list of regexps that matches text and maps that to file names.

The alist used is specified by the smiley-regexp-alist variable. The first item in each element is the regexp to be matched; the second element is the regexp match group that is to be replaced by the picture; and the third element is the name of the file to be displayed.

The following variables customize the appearance of the smileys:


Specifies the smiley style. Predefined smiley styles include low-color (small 13x14 pixel, three-color images), medium (more colorful images, 16x16 pixel), and grayscale (grayscale images, 14x14 pixel). The default depends on the height of the default face.


Where Smiley will look for smiley faces files. You shouldn’t set this variable anymore. Customize smiley-style instead.


List of suffixes on smiley file names to try.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.14.4 Picons

So… You want to slow down your news reader even more! This is a good way to do so. It’s also a great way to impress people staring over your shoulder as you read news.

What are Picons? To quote directly from the Picons Web site:

Picons is short for “personal icons”. They’re small, constrained images used to represent users and domains on the net, organized into databases so that the appropriate image for a given e-mail address can be found. Besides users and domains, there are picon databases for Usenet newsgroups and weather forecasts. The picons are in either monochrome XBM format or color XPM and GIF formats.

For instructions on obtaining and installing the picons databases, point your Web browser at http://www.cs.indiana.edu/picons/ftp/index.html.

If you are using Debian GNU/Linux, saying ‘apt-get install picons.*’ will install the picons where Gnus can find them.

To enable displaying picons, simply make sure that gnus-picon-databases points to the directory containing the Picons databases.

The variable gnus-picon-style controls how picons are displayed. If inline, the textual representation is replaced. If right, picons are added right to the textual representation.

The value of the variable gnus-picon-properties is a list of properties applied to picons.

The following variables offer control over where things are located.


The location of the picons database. This is a list of directories containing the ‘news’, ‘domains’, ‘users’ (and so on) subdirectories. Defaults to ("/usr/lib/picon" "/usr/local/faces").


List of subdirectories to search in gnus-picon-databases for newsgroups faces. ("news") is the default.


List of subdirectories to search in gnus-picon-databases for user faces. ("users" "usenix" "local" "misc") is the default.


List of subdirectories to search in gnus-picon-databases for domain name faces. Defaults to ("domains"). Some people may want to add ‘"unknown"’ to this list.


Ordered list of suffixes on picon file names to try. Defaults to ("xpm" "gif" "xbm") minus those not built-in your Emacs.


If non-nil (which is the default), don’t display picons for things like ‘.net’ and ‘.de’, which aren’t usually very interesting.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.14.5 Gravatars

A gravatar is an image registered to an e-mail address.

You can submit yours on-line at http://www.gravatar.com.

The following variables offer control over how things are displayed.


The size in pixels of gravatars. Gravatars are always square, so one number for the size is enough.


List of image properties applied to Gravatar images.


Regexp that matches mail addresses or names of people of which avatars should not be displayed, or nil. It default to the value of gnus-article-x-face-too-ugly (see section X-Face).

If you want to see them in the From field, set:

(setq gnus-treat-from-gravatar 'head)

If you want to see them in the Cc and To fields, set:

(setq gnus-treat-mail-gravatar 'head)

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.14.6 Various XEmacs Variables


This is where Gnus will look for pictures. Gnus will normally auto-detect this directory, but you may set it manually if you have an unusual directory structure.


A glyph displayed in all Gnus mode lines. It is a tiny gnu head by default.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ] Toolbar


This variable specifies the position to display the toolbar. If nil, don’t display toolbars. If it is non-nil, it should be one of the symbols default, top, bottom, right, and left. default means to use the default toolbar, the rest mean to display the toolbar on the place which those names show. The default is default.


Cons of the height and the width specifying the thickness of a toolbar. The height is used for the toolbar displayed on the top or the bottom, the width is used for the toolbar displayed on the right or the left. The default is that of the default toolbar.


The toolbar in the group buffer.


The toolbar in the summary buffer.


The toolbar in the summary buffer of mail groups.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated on January 25, 2015 using texi2html 1.82.