mako(1)
mako - notification daemon for Wayland
mako [options...]
mako is a graphical notification daemon for Wayland compositors which support the layer-shell protocol. Notifications received over dbus are displayed until dismissed with a click or via makoctl(1).
-h, --help Show help message and quit.
--max-visible n Set maximum number of visible notifications to n. Older notifications will be hidden. If -1, all notifications are visible.
Default: 5
--sort +/-time | +/-priority Sorts incoming notifications by time and/or priority in ascending(+) or descending(-) order.
Default: -time
--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: ""
--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.
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 maximium height of notification popups. Notifications whose text takes up less space are shrunk to fit.
Default: 100
--margin directional Set margin of each edge to the size specified by directional. See DIRECTIONAL VALUES for more information.
Default: 10
--padding px Set padding to px pixels from the edge of the popup.
Default: 5
--border-size px Set popup border size to px pixels.
Default: 1
--border-color color Set popup border color to color. See COLORS for more information.
Default: #4C7899FF
--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
--format format Set notification format string to format. See FORMAT SPECIFIERS for more information.
Default: <b>%s</b>\\n%b
--default-timeout timeout Set the default timeout to timeout in milliseconds. To disable the timeout, set it to zero.
Default: 0
--ignore-timeout If set, mako will ignore the expire timeout sent by notifications and use the one provided by default-timeout instead.
Default: 0
The config file is located at ~/.config/mako/config or at $XDG_CONFIG_HOME/mako/config. Each line of the form:
key=value
Is equivalent to passing --key=value to mako from the command line.
Empty lines and lines that begin with # are ignored.
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 critiera:
- app-name (string)
- app-icon (string)
- urgency (one of "low", "normal", "high")
- category (string)
- desktop-entry (string)
- actionable (boolean)
- expiring (boolean)
- hidden (boolean)
- hidden is special, it defines the style for the placeholder shown when the number of notifications exceeds max-visible.
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 backslack 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\]
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 "%"
%a Application name
%s Notification summary
%b Notification body
For the hidden notifications placeholder
%h Number of hidden notifications
%t Total number of notifications
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.
makoctl(1)