Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
AERC-STYLESETS(7)      Miscellaneous Information Manual	     AERC-STYLESETS(7)

NAME
       aerc-stylesets -	styleset file specification for	aerc(1)

SYNOPSIS
       aerc  uses  a simple configuration syntax to configure the styleset for
       its ui.

STYLESET CONFIGURATION
       The styleset is described as <object>.<attribute> = <value> pairs.

       For example, in the line	below, the foreground color of the  style  ob-
       ject msglist_unread is set to cornflowerblue

	   msglist_unread.fg = cornflowerblue

       The  configuration also allows wildcard matching	of the keys to config-
       ure multiple style objects at a time.

ATTRIBUTES
       The following options are available to be  modified  for	 each  of  the
       style objects.

       <object>.fg = <color>
	   The foreground color	of the style object is set.

       <object>.bg = <color>
	   The background color	of the style object is set.

       <object>.bold = true|false|toggle
	   The bold attribute of the style object is set/unset.

       <object>.blink =	true|false|toggle
	   The	blink attribute	of the style object is set/unset. The terminal
	   needs to support blinking text.

       <object>.underline = true|false|toggle
	   The underline attribute of the style	object is set/unset. The  ter-
	   minal needs to support underline text.

       <object>.italic = true|false|toggle
	   The italic attribute	of the style object is set/unset. The terminal
	   needs to support italic text.

       <object>.dim = true|false|toggle
	   The	dim  attribute	of the style object is set/unset. The terminal
	   needs to support half-bright	text.

       <object>.reverse	= true|false|toggle
	   Reverses the	color of the style object.  Exchanges  the  foreground
	   and background colors.

	   If the value	is false, it doesn't change anything.

       <object>.normal = true
	   All the attributes of the style object are unset.

	   The value doesn't matter.

       <object>.default	= true
	   Set	the  style object to the default style of the context. Usually
	   based on the	terminal.

	   The value doesn't matter.

STYLE OBJECTS
       The style objects represent the various ui elements or ui instances for
       styling.

       +------------------------+----------------------------+
       | Style Object		| Description		     |
       +------------------------+----------------------------+
       | default		| The default  style  object |
       |			| used	for  normal  ui	ele- |
       |			| ments	while not using	spe- |
       |			| cialized configuration.    |
       +------------------------+----------------------------+
       | error			| The style used to show er- |
       |			| rors.			     |
       +------------------------+----------------------------+
       | warning		| The style used when  show- |
       |			| ing warnings.		     |
       +------------------------+----------------------------+
       | success		| The style used for success |
       |			| messages.		     |
       +------------------------+----------------------------+
       | title			| The  style  object used to |
       |			| style	titles	in  ui	ele- |
       |			| ments.		     |
       +------------------------+----------------------------+
       | header			| The  style  object used to |
       |			| style	headers	in  ui	ele- |
       |			| ments.		     |
       +------------------------+----------------------------+
       | statusline_default	| The  default style applied |
       |			| to the statusline.	     |
       +------------------------+----------------------------+
       | statusline_error	| The style used  for  error |
       |			| messages in statusline.    |
       +------------------------+----------------------------+
       | statusline_success	| The style used for success |
       |			| messages in statusline.    |
       +------------------------+----------------------------+
       | msglist_default	| The default style for	mes- |
       |			| sages	in a message list.   |
       +------------------------+----------------------------+
       | msglist_unread		| Unread  messages in a	mes- |
       |			| sage list.		     |
       +------------------------+----------------------------+
       | msglist_read		| Read messages	in a message |
       |			| list.			     |
       +------------------------+----------------------------+
       | msglist_flagged	| The  messages	  with	 the |
       |			| flagged flag.		     |
       +------------------------+----------------------------+
       | msglist_deleted	| The	messages  marked  as |
       |			| deleted.		     |
       +------------------------+----------------------------+
       | msglist_marked		| The  messages	  with	 the |
       |			| marked flag.		     |
       +------------------------+----------------------------+
       | msglist_result		| The  messages	 which match |
       |			| the current search.	     |
       +------------------------+----------------------------+
       | msglist_answered	| The messages marked as an- |
       |			| swered.		     |
       +------------------------+----------------------------+
       | msglist_forwarded	| The  messages	 marked	  as |
       |			| forwarded.		     |
       +------------------------+----------------------------+
       | msglist_gutter		| The message list gutter.   |
       +------------------------+----------------------------+
       | msglist_pill		| The  message	list scroll- |
       |			| bar.			     |
       +------------------------+----------------------------+
       | msglist_thread_folded	| Visible messages that	have |
       |			| folded thread	children.    |
       +------------------------+----------------------------+
       | msglist_thread_context	| The messages not  matching |
       |			| the  mailbox / query,	dis- |
       |			| played for context.	     |
       +------------------------+----------------------------+
       | msglist_thread_orphan	| Threaded   messages	that |
       |			| have a missing parent	mes- |
       |			| sage.			     |
       +------------------------+----------------------------+
       | dirlist_default	| The  default style for di- |
       |			| rectories in the directory |
       |			| list.			     |
       +------------------------+----------------------------+
       | dirlist_unread		| The style used for  direc- |
       |			| tories  with	unread	mes- |
       |			| sages			     |
       +------------------------+----------------------------+
       | dirlist_recent		| The style used for  direc- |
       |			| tories  with	recent	mes- |
       |			| sages			     |
       +------------------------+----------------------------+
       | part_switcher		| Background  for  the	part |
       |			| switcher  in	the  message |
       |			| viewer.		     |
       +------------------------+----------------------------+
       | part_filename		| Attachment  file  name  in |
       |			| the part switcher.	     |
       +------------------------+----------------------------+
       | part_mimetype		| Attachment/part  MIME	type |
       |			| in the part switcher.	     |
       +------------------------+----------------------------+
       | completion_default	| The default style for	 the |
       |			| completion engine.	     |
       +------------------------+----------------------------+
       | completion_description	| Completion  item  descrip- |
       |			| tions.		     |
       +------------------------+----------------------------+
       | completion_gutter	| The completion gutter.     |
       +------------------------+----------------------------+
       | completion_pill	| The completion pill.	     |
       +------------------------+----------------------------+
       | tab			| The style for	the tab	bar. |
       +------------------------+----------------------------+
       | stack			| The style for	ui stack el- |
       |			| ement.		     |
       +------------------------+----------------------------+
       | spinner		| The style for	the  loading |
       |			| spinner.		     |
       +------------------------+----------------------------+
       | border			| The  style  used  to	draw |
       |			| borders (only	the bg color |
       |			| is used  unless  you	cus- |
       |			| tomize  border-char-verti- |
       |			| cal  and/or	border-char- |
       |			| horizontal in	aerc.conf).  |
       +------------------------+----------------------------+
       | selector_default	| The  default style for the |
       |			| selector ui element.	     |
       +------------------------+----------------------------+
       | selector_focused	| The focused item in a	 se- |
       |			| lector ui element.	     |
       +------------------------+----------------------------+
       | selector_chooser	| The  item chooser in a se- |
       |			| lector ui element.	     |
       +------------------------+----------------------------+

       These next style	objects	only affect the	built-in colorize  filter  and
       must be declared	under a	[viewer] section of the	styleset file.

       +-----------------+----------------------------+
       | Style Object	 | Description		      |
       +-----------------+----------------------------+
       | url		 | URLs.		      |
       +-----------------+----------------------------+
       | header		 | RFC-822-like	header names. |
       +-----------------+----------------------------+
       | signature	 | Email signatures.	      |
       +-----------------+----------------------------+
       | diff_meta	 | Patch diff meta lines.     |
       +-----------------+----------------------------+
       | diff_chunk	 | Patch diff chunks.	      |
       +-----------------+----------------------------+
       | diff_chunk_func | Patch  diff chunk function |
       |		 | names.		      |
       +-----------------+----------------------------+
       | diff_add	 | Patch diff added lines.    |
       +-----------------+----------------------------+
       | diff_del	 | Patch diff deleted lines.  |
       +-----------------+----------------------------+
       | quote_1	 | First level quoted text.   |
       +-----------------+----------------------------+
       | quote_2	 | Second level	quoted text.  |
       +-----------------+----------------------------+
       | quote_3	 | Third level quoted text.   |
       +-----------------+----------------------------+
       | quote_4	 | Fourth level	quoted text.  |
       +-----------------+----------------------------+
       | quote_x	 | Above fourth	level  quoted |
       |		 | text.		      |
       +-----------------+----------------------------+

       User  defined  styles can be used to style arbitrary strings in go-tem-
       plates (see .Style in aerc-templates(7)). User styles must  be  defined
       in the [user] ini section. Styles can be	referenced by their name (e.g.
       red.fg is named "red").

       Example:

	   [user]
	   red.fg=red

       User  styles  are  layered  with	other styles applied to	the context in
       which they are rendered.	The user style colors (fg and/or bg) will only
       be effective if the context style does not define  any.	Other  boolean
       attributes will be merged with the underlying style boolean attributes.

       For example, if the context style is:

	   fg=red bold

       And the inline style is:

	   fg=yellow italic underline

       The effective style will	be:

	   fg=red bold italic underline

FNMATCH	STYLE WILDCARD MATCHING
       The  styleset  configuration  can  be made simpler by using the fnmatch
       style wildcard matching for the style object.

       The special characters used in the fnmatch wildcards are:

       +---------+----------------------------+
       | Pattern | Meaning		      |
       +---------+----------------------------+
       | *	 | Matches everything	      |
       +---------+----------------------------+
       | ?	 | Matches any single charac- |
       |	 | ter			      |
       +---------+----------------------------+

       For example, the	following wildcards can	be made	using this syntax.

       +--------------------+----------------------------+
       | Example	    | Description		 |
       +--------------------+----------------------------+
       | *.fg =	blue	    | Set the  foreground  color |
       |		    | of  all  style  objects to |
       |		    | blue.			 |
       +--------------------+----------------------------+
       | *list.bg = hotpink | Set the  background  color |
       |		    | of  all style objects that |
       |		    | end in list to hotpink.	 |
       +--------------------+----------------------------+

       Note that the statements	in a given styleset are	parsed in the order in
       which they are written. That means that with the	following styleset:

	   msglist_marked.fg = pink
	   msglist_*.fg	= white

       The msglist_marked.fg attribute will be set to white.

SELECTED MODIFIER
       The selected modifier can be applied to any  style  object.  The	 style
       provided	 for  the selected modifier is applied on top of the style ob-
       ject it corresponds to.

       If you would like to make sure message that are flagged as read in  the
       msglist appear in yellow	foreground and black background. You can spec-
       ify that	with this:

	   msglist_default.selected.fg = yellow

	   msglist_default.selected.bg = black

       If  we  specify the global style	selected modifier using	fnmatch	as be-
       low:

	   *.selected.reverse =	toggle

       This toggles the	reverse	switch for selected version of all  the	 style
       objects.

       selected	 objects  inherit  from	 all  attributes of their non-selected
       counterparts. selected statements are parsed  after  non-selected  ones
       and  effectively	 override the attributes of the	non-selected style ob-
       ject.

LAYERED	STYLES
       Some styles, (currently the msglist_* and dirlist_* ones)  are  applied
       in  layers.  If	a  style differs from the base (in this	case *list_de-
       fault) then that	style applies, unless overridden by a higher layer. If
       fg and bg colors	are not	defined	explicitly (or defined to the  default
       color) they will	be considered as "transparent" and the colors from the
       lower layer will	be used	instead.

       The order that msglist_*	styles are applied in is, from first to	last:

       1.  msglist_default
       2.  msglist_unread
       3.  msglist_read
       4.  msglist_answered
       5.  msglist_forwarded
       6.  msglist_flagged
       7.  msglist_deleted
       8.  msglist_result
       9.  msglist_thread_folded
       10. msglist_thread_context
       11. msglist_thread_orphan
       12. msglist_marked

       So, the marked style will override all other msglist styles.

       The order for dirlist_* styles is:

       1.  dirlist_default
       2.  dirlist_unread
       3.  dirlist_recent

DYNAMIC	MESSAGE	LIST STYLES
       All  msglist_*  styles can be defined for specific email	header values.
       The syntax is as	follows:

	   msglist_<name>.<header>,<header_value>.<attribute> =	<attr_value>

       If <header_value> starts	with a tilde character ~, it  will  be	inter-
       preted  as a regular expression.	If you are writing regular expressions
       that try	to match with .	or . you need to  wrap	like  this  ~/<expres-
       sion>/.

       <header>,<header_value>	can be specified multiple times	to narrow down
       matches to more than one	email header value. In that  case,  all	 given
       headers must match for the dynamic style	to apply.

       Examples:

	   msglist*.X-Sourcehut-Patchset-Update,APPROVED.fg = green
	   msglist*.X-Sourcehut-Patchset-Update,NEEDS_REVISION.fg = yellow
	   msglist*.X-Sourcehut-Patchset-Update,REJECTED.fg = red
	   "msglist_*.Subject,~^(\[[w-]+]\s*)?\[(RFC )?PATCH.fg" = #ffffaf
	   "msglist_*.Subject,~^(\[[w-]+]\s*)?\[(RFC )?PATCH.selected.fg" = #ffffaf
	   "msglist_*.From,~^Bob.Subject,~^(\[[w-]+]\s*)?\[(RFC	)?PATCH.selected.fg" = #ffffaf
	   "msglist_*.List-ID,~/lists.sr.ht/selected.fg" = blue

       When  a dynamic style is	matched	to an email header, it will be used in
       priority	compared to its	non-dynamic counterpart. Provided the  follow-
       ing styleset:

	   msglist_marked.fg = blue
	   msglist_*.Subject,~foobar.fg	= red

       An  email  with	foobar	in  its	subject	will be	colored	in red all the
       time, since msglist_* also applies to msglist_marked.

       When multiple <header>,<header_value> pairs are given, the  last	 style
       which  matches all given	patterns will be applied. Provided the follow-
       ing styleset:

	   msglist_*.From,~^Bob.Subject,~foobar.fg = red
	   msglist_*.From,~^Bob.fg = blue

       An email	from Bob with foobar in	its subject will be colored  in	 blue,
       since the second	style is a full	match too.

COLORS
       The color values	are set	using any of the following methods:

       default
	   The color is	set as per the system or terminal default.

       <Color name>
	   Any w3c approved color name is used to set colors for the style.

       <Hex code>
	   Hexcode for a color can be used. The	format must be #XXXXXX.

       <Dec number>
	   Color  based	 on  the terminal palette index. Valid numbers are be-
	   tween 0 and 255.

DEFAULTS
       Before parsing a	styleset, it is	first initialized with	the  following
       defaults:

	   *.selected.bg = 12
	   *.selected.fg = 15
	   *.selected.bold = true
	   statusline_*.dim = true
	   *warning.dim	= false
	   *warning.bold = true
	   *warning.fg = 11
	   *success.dim	= false
	   *success.bold = true
	   *success.fg = 10
	   *error.dim =	false
	   *error.bold = true
	   *error.fg = 9
	   border.bg = 12
	   border.fg = 15
	   title.bg = 12
	   title.fg = 15
	   title.bold =	true
	   header.fg = 4
	   header.bold = true
	   msglist_unread.bold = true
	   msglist_deleted.dim = true
	   msglist_marked.bg = 6
	   msglist_marked.fg = 15
	   msglist_pill.bg = 12
	   msglist_pill.fg = 15
	   part_mimetype.fg = 12
	   selector_chooser.bold = true
	   selector_focused.bold = true
	   selector_focused.bg = 12
	   selector_focused.fg = 15
	   completion_*.bg = 8
	   completion_pill.bg =	12
	   completion_default.fg = 15
	   completion_description.fg = 15
	   completion_description.dim =	true

	   [viewer]
	   url.underline = true
	   url.fg = 3
	   header.bold = true
	   header.fg = 4
	   signature.dim = true
	   signature.fg	= 4
	   diff_meta.bold = true
	   diff_chunk.fg = 6
	   diff_chunk_func.fg =	6
	   diff_chunk_func.dim = true
	   diff_add.fg = 2
	   diff_del.fg = 1
	   quote_1.fg =	6
	   quote_2.fg =	4
	   quote_3.fg =	6
	   quote_3.dim = true
	   quote_4.fg =	4
	   quote_4.dim = true
	   quote_x.fg =	5
	   quote_x.dim = true

       You  can	choose either to reset everything (except in the [viewer] sec-
       tion) by	starting your styleset with these two lines:

	   *.default=true
	   *.normal=true

       Or selectively override style object attributes.

       If you want to also reset the [viewer] section, you need	to insert  the
       same two	lines:

	   [viewer]
	   *.default=true
	   *.normal=true

SEE ALSO
       aerc(1) aerc-config(5)

AUTHORS
       Originally created by Drew DeVault and maintained by Robin Jarry	who is
       assisted	 by other open source contributors. For	more information about
       aerc development, see https://sr.ht/~rjarry/aerc/.

				  2025-11-07		     AERC-STYLESETS(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=aerc-stylesets&sektion=7&manpath=FreeBSD+Ports+15.0>

home | help