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 re-
	   place the oldest ones. If 0,	history	is disabled.

	   Default: 5

       sort=+/-time | +/-priority
	   Sorts incoming notifications	by time	 and/or	 priority  in  ascend-
	   ing(+) 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
	   notification	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 following 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" dmenu -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
	   DIRECTIONAL	VALUES	for  more  information.	This margin applies to
	   each	individual notification. Note that it applies in  addition  to
	   outer-margin, meaning first and last	notifications will use the sum
	   of both margins.

	   Default: 10

       padding=directional
	   Set	padding	on each	side to	the size specified by directional. See
	   DIRECTIONAL 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  di-
	   rectional. See DIRECTIONAL VALUES for more information.

	   Default: 0

       progress-color=[over|source] color
	   Set popup progress indicator	color to color.	See COLOR for more in-
	   formation.  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-transparent).

	   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  in-
	   stead 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
	   resolutions will be searched	for the	most appropriate match.

	   /usr/local/share/icons/hicolor and /usr/local/share/pixmaps are al-
	   ways	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  re-
	   quests.

	   Default: 1

       history=0|1
	   If  set, mako will save notifications that have reached their time-
	   out into the	history	buffer instead of immediately  deleting	 them.
	   max-history 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
	   notifications to group.

	   Default: none

       max-visible=n
	   Set	maximum	 number	of visible notifications to n. Older notifica-
	   tions 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-
	   unstable-v1 version 2.

	   Default: ""

       layer=layer
	   Arrange mako	at the specified layer,	relative  to  normal  windows.
	   Supported  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 com-
	   positor.

	   Default: top

       anchor=position
	   Show	notifications at the specified position	on  the	 output.  Sup-
	   ported  values  are	top-right, top-center, top-left, bottom-right,
	   bottom-center, 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	crite-
       ria, are	defined	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 de-
       fined 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 criteria.	This matching occurs in	the order the criteria
       are defined in the config 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 pro-
	   vided  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
	   placeholder shown when the number of	notifications  or  groups  ex-
	   ceeds 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
	   assigned to.	See the	anchor style option for	possible values.

       There are only two passes performed on each notification, so  the  sec-
       ond-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.	Escap-
       ing 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
	   defaults  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 your-
       self 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
       example,	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 config-
       uration section with a mode criteria will only be applied if  the  cur-
       rent 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
       enabled:

	   [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)

				  2025-04-14			       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+14.3.quarterly>

home | help