mako(1)

NAME

mako - notification daemon for Wayland

DESCRIPTION

mako [options...]

SYNOPSIS

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

OPTIONS

-h, --help
    Show help message and quit.

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.

    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: ""

--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.

    Default: top

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

    Default: top-right

STYLE OPTIONS

--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 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: 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

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

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

CONFIG FILE

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.

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

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

  For the hidden notifications placeholder

%h    Number of hidden notifications

%t    Total number of notifications

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

makoctl(1)