LinuxCommandLibrary

makoctl

Manage Mako notifications

TLDR

List all current notifications

$ makoctl list
copy

List notification history
$ makoctl history
copy

Reload the configuration file
$ makoctl reload
copy

Restore the most recently expired notification from history
$ makoctl restore
copy

Display help
$ makoctl help
copy

SYNOPSIS

makoctl [options] command [arguments...]

PARAMETERS

-h, --help
    Display a help message and exit.

-v, --version
    Display version information and exit.

dismiss [id...]
    Dismisses one or more notifications by their ID. If no IDs are specified, all notifications are dismissed.

restore
    Restores the last dismissed notification.

list
    Lists all currently active notifications, showing their IDs and content.

reload
    Reloads the Mako configuration file, applying changes without restarting the daemon.

set category:property=value [...]
    Dynamically sets one or more properties for a specified notification category. E.g., `set '*' background-color=#282828`.

get category:property [...]
    Retrieves the current value of one or more properties for a specified notification category.

help [command]
    Displays specific help for a given command.

DESCRIPTION

makoctl is the command-line utility used to interact with a running Mako notification daemon instance. Mako is a lightweight and highly configurable Wayland-native notification daemon. makoctl allows users to perform various actions such as listing currently displayed notifications, dismissing them, restoring the last dismissed one, and dynamically querying or updating Mako's configuration and rules. It's an indispensable tool for managing the appearance and behavior of pop-up notifications without restarting the daemon, making it crucial for dynamic configuration adjustments and notification management in a Wayland environment.

CAVEATS

makoctl requires a running Mako daemon instance to operate. Configuration changes made using the `set` command are temporary and will be lost if Mako is restarted or if the configuration is reloaded from the file (e.g., via `makoctl reload`), unless these changes are persisted in the Mako configuration file (typically `~/.config/mako/config`). makoctl and Mako are primarily designed for Wayland compositors.

DYNAMIC CONFIGURATION WITH `SET` AND `GET`

The `set` and `get` commands are powerful for live configuration adjustments. They operate on 'categories' (e.g., `*` for all notifications, `critical` for critical ones, or custom categories defined by `notify-send`) and 'properties' (e.g., `background-color`, `border-color`, `text-color`, `font`, `width`, `height`, etc.). For example, `makoctl set '*' background-color=#282828` changes the background for all notifications, and `makoctl get critical text-color` retrieves the text color for critical notifications. These changes are immediate but not persistent.

NOTIFICATION IDS

When notifications are listed with `makoctl list`, they are assigned unique IDs. These IDs can then be used with the `dismiss` command to close specific notifications. IDs are transient and reset when Mako restarts.

HISTORY

Mako was developed as a modern, Wayland-native notification daemon, fitting into the minimalist and customizable philosophy prevalent in the `swaywm` ecosystem and other Wayland environments. It emerged to fill the need for a simple, standards-compliant notification server without the baggage of older X11-focused solutions. makoctl was introduced as its dedicated command-line interface, providing users with fine-grained control over the daemon's runtime behavior and notification management, emphasizing dynamic configurability.

SEE ALSO

mako(1), mako(5), notify-send(1)

Copied to clipboard