The config file is located at ~/.config/mako/config or at $XDG_CONFIG_HOME/mako/config. Option lines can be specified to configure mako like so:
Empty lines and lines that begin with # are ignored.
Global Configuration Options
- max-visible = n
Set maximum number of visible notifications to n. Older notifications will be hidden. If -1, all notifications are visible.
- sort = +/-time | +/-priority
Sorts incoming notifications by time and/or priority in ascending(+) or descending(-) order.
- 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.
- 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 compositor.
- anchor = position
Show notifications at the specified position on the output. Supported values are top-right, top-center, top-left, bottom-right, bottom-center, bottom-left, and center.
- font = font
Set font to font, in Pango format.
Default: monospace 10
- background-color = color
Set background color to color. See Colors for more information.
- text-color = color
Set text color to color. See Colors for more information.
- width = px
Set width of notification popups.
- height = px
Set maximum height of notification popups. Notifications whose text takes up less space are shrunk to fit.
- margin = directional
Set margin of each edge to the size specified by directional. See Directional Values for more information.
- padding = directional
Set padding on each side to the size specified by directional. See Directional Values for more information.
- border-size = px
Set popup border size to px pixels.
- border-color = color
Set popup border color to color. See Colors for more information.
- border-radius = px
Set popup corner radius to px pixels.
- progress-color = [over|source] color
Set popup progress indicator color to color. See COLOR for more information. 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).
Default: over #5588AAFF
- icons = 0|1
Show icons in notifications.
- max-icon-size = px
Set maximum icon size to px pixels.
- 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.
/usr/share/icons/hicolor and /usr/share/pixmaps are always searched.
- 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.
- actions = 0|1
Applications may request an action to be associated with activating a notification. Disabling this will cause mako to ignore these requests.
- 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
- default-timeout = timeout
Set the default timeout to timeout in milliseconds. To disable the timeout, set it to zero.
- ignore-timeout = 0|1
If set, mako will ignore the expire timeout sent by notifications and use the one provided by default-timeout instead.
- 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.
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 Style Options. The sections, called criteria, 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 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 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)
- An exact match on the summary of the notification.
- urgency (one of "low", "normal", "high")
- category (string)
- desktop-entry (string)
- actionable (boolean)
- expiring (boolean)
- Whether the notification is grouped with any others (its group-index is not -1).
- The notification's index within its group, or -1 if it is not grouped.
- hidden is special, it defines the style for the placeholder shown when the number of notifications or groups exceeds max-visible.
If a field's value contains special characters, they may be escaped with a backslash, or quoted:
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 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 yourself and overriding them.
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.
Colors can be specified as #RRGGBB or #RRGGBBAA.
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 give each edge a separate value.
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 specification works similarly to printf(3), but with a different set of specifiers.
%% Literal "%"
\\ Literal "\"
\n New Line
%a Application name
%s Notification summary
%b Notification body
%g Number of notifications in the current group
Maintained by Simon Ser <email@example.com>, who is assisted by other open-source contributors. For more information about mako development, see https://github.com/emersion/mako.