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

FreeBSD Manual Pages

  
 
  

home | help
mako(5) 		       File Formats Manual			 mako(5)

NAME
     mako - configuration file

DESCRIPTION
     The  config  file	is  located  at  ~/.config/mako/config	or  at $XDG_CON-
     FIG_HOME/mako/config. Option lines can be specified to configure mako  like
     so:

	 key=value

     Empty lines and lines that begin with # are ignored.

GLOBAL CONFIGURATION OPTIONS
     max-history=n
	 Set  maximum  number  of  expired  notifications to keep in the history
	 buffer to n. If the buffer is full, newly expired notifications replace
	 the oldest ones. If 0, history is disabled.

	 Default: 5

     sort=+/-time | +/-priority
	 Sorts incoming notifications by time and/or priority in ascending(+) or
	 descending(-) order.

	 Default: -time

     include=config path
	 Includes a config at the specified path. The path must be  absolute  or
	 otherwise start with ~/.

	 Default: none

BINDING OPTIONS
     Bindings allow one to perform an action when an event is triggered.

     Supported options:

     on-button-left=action
	 Performs the action when the left pointer button is pressed.

	 Default: invoke-default-action

     on-button-middle=action
	 Performs the action when the middle pointer button is pressed.

	 Default: none

     on-button-right=action
	 Performs the action when the right pointer button is pressed.

	 Default: dismiss

     on-touch=action
	 Performs the action when tapped via a touch device.

	 Default: dismiss

     on-notify=action
	 Performs the action when the notification is opened.

	 Default: none

     Supported actions:

     none
	 Do nothing.

     dismiss [--no-history]
	 Dismiss  the current notification. If --no-history is passed, the noti-
	 fication won't be added to history.

     dismiss-all
	 Dismiss all notifications.

     dismiss-group
	 Dismiss notifications in the current group.

     invoke-action <action>
	 Invoke the named action on the notification.

	 An xdg-activation token will be sent to the client, allowing the client
	 to request focus from the compositor. The compositor must  support  the
	 xdg_activation_v1  protocol and allow the focus request for the follow-
	 ing example to work correctly:

	     [app-name="some-app-id" actionable]
	     on-button-left=invoke-action mail-reply-sender

     invoke-default-action
	 Invoke the default action on the notification.

     exec <command>
	 Execute a shell command.

	 The command will be executed in a POSIX shell. The  shell  variable  id
	 will  be  set to the notification ID. For example, the following option
	 will display an interactive action menu on middle click:

	     on-button-middle=exec makoctl menu -n "$id" -- wmenu -p 'Select action: '

	 The following option will play a  sound  when	a  new	notification  is
	 opened:

	     on-notify=exec mpv /usr/local/share/sounds/freedesktop/stereo/message.oga

STYLE OPTIONS
     font=font
	 Set  font to font, as a Pango font description. For more information on
	 Pango		     font		descriptions,		    see:
	 https://docs.gtk.org/Pango/type_func.FontDescrip-
	 tion.from_string.html#description

	 Default: monospace 10

     background-color=color
	 Set background color to color. See COLORS for more information.

	 Default: #285577FF

     text-color=color
	 Set text color to color. See COLORS for more information.

	 Default: #FFFFFFFF

     width=px
	 Set width of notification popups.

	 Default: 300

     height=px
	 Set  maximum  height  of  notification popups. Notifications whose text
	 takes up less space are shrunk to fit.

	 Default: 100

     outer-margin=directional
	 Set outer-margin of each edge to the size specified by directional. See
	 DIRECTIONAL VALUES for more information. This	margin	applies  to  the
	 outside of the whole notification list.

	 Default: 0

     margin=directional
	 Set  margin  of each edge to the size specified by directional. See DI-
	 RECTIONAL VALUES for more information. This margin applies to each  in-
	 dividual  notification.  Note that it applies in addition to outer-mar-
	 gin, meaning first and last notifications will use the sum of both mar-
	 gins.

	 Default: 10

     padding=directional
	 Set padding on each side to the size specified by directional. See  DI-
	 RECTIONAL VALUES for more information.

	 Default: 5

     border-size=px
	 Set popup border size to px pixels.

	 Default: 2

     border-color=color
	 Set popup border color to color. See COLORS for more information.

	 Default: #4C7899FF

     border-radius=directional
	 Set  popup  corner  radius on each side to the size specified by direc-
	 tional. See DIRECTIONAL VALUES for more information.

	 Default: 0

     progress-color=[over|source] color
	 Set popup progress indicator color to color. See COLOR for more  infor-
	 mation.  To draw the progress indicator on top of the background color,
	 use the over attribute. To replace the background color, use the source
	 attribute (this can be useful when the notification  is  semi-transpar-
	 ent).

	 Progress  can be indicated in a notification by setting a hint, "value"
	 to an integer between 0 and 100 inclusive.

	 Default: over #5588AAFF

     icons=0|1
	 Show icons in notifications.

	 Default: 1

     max-icon-size=px
	 Set maximum icon size to px pixels.

	 Default: 64

     icon-path=path[:path...]
	 Paths to search for icons when a notification specifies a name  instead
	 of a full path. Colon-delimited. This approximates the search algorithm
	 used  by  the XDG Icon Theme Specification, but does not support any of
	 the theme metadata. Therefore, if you want  to  search  parent  themes,
	 you'll need to add them to the path manually.

	 The path should be the root of the icon theme, the categories and reso-
	 lutions will be searched for the most appropriate match.

	 /usr/local/share/icons/hicolor  and /usr/local/share/pixmaps are always
	 searched.

	 Default: ""

     icon-location=position
	 Position of the icon relative to the displayed text. Valid options  are
	 left, right, top and bottom.

	 Default: left

     icon-border-radius=px
	 Sets icon corner radius to px pixels.

	 Default: 0

     markup=0|1
	 If  1,  enable  Pango	markup.  If 0, disable Pango markup. If enabled,
	 Pango markup will be interpreted in your format specifier  and  in  the
	 body of notifications.

	 Default: 1

     actions=0|1
	 Applications  may  request an action to be associated with activating a
	 notification. Disabling this will cause mako to ignore these requests.

	 Default: 1

     history=0|1
	 If set, mako will save notifications that have  reached  their  timeout
	 into  the history buffer instead of immediately deleting them. max-his-
	 tory determines the size of the history buffer.

	 Default: 1

     format=format
	 Set notification format string to format.  See  FORMAT  SPECIFIERS  for
	 more  information.  To  change  this  for grouped notifications, set it
	 within a grouped criteria.

	 Default: <b>%s</b>\n%b
	 Default when grouped: (%g) <b>%s</b>\n%b

     text-alignment=left|center|right
	 Set notification text alignment.

	 Default: left

     default-timeout=timeout
	 Set the default timeout to timeout  in  milliseconds.	To  disable  the
	 timeout, set it to zero.

	 Default: 0

     ignore-timeout=0|1
	 If  set,  mako will ignore the expire timeout sent by notifications and
	 use the one provided by default-timeout instead.

	 Default: 0

     group-by=field[,field,...]
	 A comma-separated list of criteria fields  that  will	be  compared  to
	 other	visible  notifications	to  determine  if this one should form a
	 group with them. All listed criteria must be exactly equal for two  no-
	 tifications to group.

	 Default: none

     max-visible=n
	 Set  maximum  number of visible notifications to n. Older notifications
	 will be hidden. If -1, all notifications are visible.

	 Default: 5

     output=name
	 Show notifications on the specified  output.  If  empty,  notifications
	 will appear on the focused output.

	 Requires  the compositor to support the Wayland protocol xdg-output-un-
	 stable-v1 version 2.

	 Default: ""

     layer=layer
	 Arrange mako at the specified layer, relative to normal  windows.  Sup-
	 ported  values  are background, bottom, top, and overlay. Using overlay
	 will cause notifications to  be  displayed  above  fullscreen	windows,
	 though this may also occur at top depending on your compositor.

	 Default: top

     anchor=position
	 Show  notifications  at the specified position on the output. Supported
	 values are top-right, top-center, top-left,  bottom-right,  bottom-cen-
	 ter, bottom-left, center-right, center-left and center.

	 Default: top-right

CRITERIA
     In  addition  to the set of options at the top of the file, the config file
     may contain zero or more sections, each containing any combination  of  the
     BINDING  OPTIONS  and STYLE OPTIONS. The sections, called criteria, are de-
     fined with an INI-like square bracket syntax. The brackets may contain  any
     number of fields, like so:

	 [field=value field2=value2 ...]

     When  a notification is received, it will be compared to the fields defined
     in each criteria. If all of the fields match, the style options within will
     be applied to the notification. Fields not included in the criteria are not
     considered during the match. A notification may match any number of  crite-
     ria. This matching occurs in the order the criteria are defined in the con-
     fig  file, meaning that if multiple criteria match a notification, the last
     occurrence of any given style option will "win".

     The following fields are available in criteria:

     *	 app-name (string)
     *	 app-icon (string)
     *	 summary (string): exact match on the summary of the notification.  This
	 field conflicts with summary~.
     *	 summary~  (string):  a  POSIX	extended regular expression match on the
	 summary of the notification. This field conflicts with summary.
     *	 body (string): an exact match on the body  of	the  notification.  This
	 field conflicts with body~.
     *	 body~	(string):  a POSIX extended regular expression match on the body
	 of the notification. This field conflicts with body.
     *	 urgency (one of "low", "normal", "critical")
     *	 category (string)
     *	 desktop-entry (string)
     *	 actionable (boolean)
     *	 expiring (boolean)
     *	 mode (string): only apply style options in this section if the provided
	 mode is currently enabled. For more information about	modes,	see  the
	 MODES section.

     The  following fields are also available to match on a second pass based on
     where previous style options decided to place each notification:

     *	 grouped (boolean): whether the notification is grouped with any others.
     *	 group-index (int): the notification's index within its group, or -1  if
	 it is not grouped.
     *	 hidden  (boolean): special field which defines the style for the place-
	 holder shown when the number of notifications or  groups  exceeds  max-
	 visible.
     *	 output (string): which output the notification was sorted onto. See the
	 output style option for possible values.
     *	 anchor  (string): which position on the output the notification was as-
	 signed to. See the anchor style option for possible values.

     There are only two passes performed on each notification,	so  the  second-
     pass criteria are not allowed to reposition the notification.

     If  a field's value contains special characters, they may be escaped with a
     backslash, or quoted:

	 [app-name="Google Chrome"]

	 [app-name=Google\ Chrome]

     Quotes within quotes may also be escaped, and a literal  backslash  may  be
     specified	as  \\.  No  spaces  are allowed around the equal sign. Escaping
     equal signs within values is unnecessary.

     Additionally, boolean values may be specified using any of true/false, 0/1,
     or as bare words:

	 [actionable=true] [actionable=1] [actionable]

	 [actionable=false] [actionable=0] [!actionable]

     There are three criteria always present at the front of the list:
     *	 An empty criteria which matches all notifications and contains the  de-
	 faults  for  all  style options, overwritten with any configured in the
	 global section.
     *	 [grouped], which sets the default format for grouped notifications  and
	 sets them invisible.
     *	 [group-index=0],  which  makes  the  first member of each group visible
	 again.

     These options can be overridden by simply defining  the  criteria	yourself
     and overriding them.

     There  are  some rules restricting what can be configured depending on what
     is being matched by a given criteria. Criteria matching grouped  or  group-
     index  are  not  allowed to change the anchor, output, or group-by, as this
     would invalidate the grouping. Grouping is only performed once rather  than
     recursively, to avoid the potential for infinite loops.

CRITERIA-ONLY STYLE OPTIONS
     Some  style options are not useful in the global context and therefore have
     no associated command-line option.

     invisible=0|1
	 Whether this notification should be invisible even if it is  above  the
	 max-visible  cutoff.  This  is  used  primarily  for  hiding members of
	 groups. If you want to make more than the first group	member	visible,
	 turn this option off within a group-index criteria.

	 Default: 0

COLORS
     Colors can be specified as #RRGGBB or #RRGGBBAA.

DIRECTIONAL VALUES
     Some options set values that affect all four edges of a notification. These
     options  can  be specified in several different ways, depending on how much
     control over each edge is desired:

     *	 A single value will apply to all four edges.
     *	 Two values will set vertical and horizontal edges separately.
     *	 Three will set top, horizontal, and bottom edges separately.
     *	 Four will set top, right, bottom, and left edges separately.

     When specifying multiple values, they should be comma-separated. For  exam-
     ple,  this would set the top margin to 10, left and right to 20, and bottom
     to five:

	 margin = 10,20,5

FORMAT SPECIFIERS
     Format specification works similarly to printf(3), but with a different set
     of specifiers.

     %%   Literal "%"

     \\   Literal "\"

     \n   New Line

   For notifications
     %a   Application name

     %s   Notification summary

     %b   Notification body

     %g   Number of notifications in the current group

     %i   Notification id

   For the hidden notifications placeholder
     %h   Number of hidden notifications

     %t   Total number of notifications

MODES
     mako supports applying style options conditionally via modes. A  configura-
     tion  section with a mode criteria will only be applied if the current mode
     matches. makoctl(1) can be used to change the current mode.

     The initial list of modes contains a single mode called "default". This  is
     deprecated, in a future version the initial list of modes will be empty.

     For  example, to hide all notifications if the mode "do-not-disturb" is en-
     abled:

	 [mode=do-not-disturb]
	 invisible=1

     makoctl mode -a do-not-disturb will hide all notifications, makoctl mode -r
     do-not-disturb will show them again.

AUTHORS
     Maintained by Simon Ser <contact@emersion.fr>, who  is  assisted  by  other
     open-source  contributors. For more information about mako development, see
     https://github.com/emersion/mako.

SEE ALSO
     mako(1) makoctl(1)

				   2026-06-11				 mako(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mako&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help