01. Overview & Architecture

Profile: v1.11.0
Schema validatedSource pinned
Purpose
Lightweight Wayland notification daemon.
Compatibility
Any distro (Server: WAYLAND)
Desktop Part
Notifications
Window Manager & Theme
Any WM / DE / Other

02. Installation & Deployment

Before you installThis changes your desktop configuration and installs packages. Run it as your normal user, never with sudo: it asks for sudo only where a step needs it (listed below).The guided installer shows its plan first. Files it would replace are kept unless you approve. Everything it copies, clones or appends to in your home folder is backed up and verified first, and --rollback restores it. Packages, sudo changes and the other commands listed under Impact are not undone.
IntegrityEach release from main builds the installers in GitHub Actions and signs them with a GitHub build attestation. Verify your download against the repository, not this website (Option B, step 2). If it does not verify, don't run it.
ImpactPackages: mako
RecoveryGuided: backups in ~/.local/state/0xtsoa/backups/, undo with bash install.sh --rollback.Manual: the steps below only write in the download folder or run listed commands.
Option A: manual installAdvanced
Read the source at the reviewed commit, back up, then run each step yourself.
$git clone https://github.com/emersion/mako ~/0xtsoa-review/emersion-mako# 1. clone to a review folder
$git -C ~/0xtsoa-review/emersion-mako checkout --detach cce37cd3405f64eee1b07d4656b5ecbbc912b46d# 2. the reviewed commit
Then the steps. Package commands are written for Arch; on other distros use your package manager.

Step-by-step deployment protocol

Step-by-step deployment
1Install mako (Arch repos)
$sudo pacman -S --needed mako
$# Other distros: see the upstream README
Option B: guided installerRecommended
The same steps as one script for any distro. It shows the plan first, keeps files you already have unless you approve replacing them, and backs up everything it changes in your home folder. Never pipe it into a shell.
$curl -fsSLo install.sh 'https://www.0xtsoa.dev/configs/emersion/mako/install.sh'# 1. download
$gh attestation verify install.sh --repo nyharena25/0xTsoa --signer-workflow nyharena25/0xTsoa/.github/workflows/attest-installers.yml# 2. verify (GitHub CLI 2.49+, signed in)
$less install.sh# 3. read it
$bash install.sh --dry-run# 4. preview: changes nothing
$bash install.sh# 5. install (asks first)
$bash install.sh --rollback# undo the file changes
View script in browserOther options: --force (replace conflicts, backed up first), --yes, --help

03. Screenshot Gallery // mako

Capture 01 // Fullscreen
mako screenshot
01 / 02

04. Documentation & Guide

Source: emersion/makoRef: cce37cd340
README.md|GitHub Flavored Markdown

mako

A lightweight notification daemon for Wayland. Works on Sway.

mako screenshot

mako implements the FreeDesktop Notifications Specification.

Feel free to join the IRC channel: #emersion on irc.libera.chat.

Running

mako will run automatically when a notification is emitted. This happens via D-Bus activation, so you don't really need to explicitly start it up (this also allows delaying its startup time and speed up system startup).

If you have several notification daemons installed though, you might want to explicitly start this one. Some ways of achieving this is:

  • If you're using Sway you can start mako on launch by putting exec mako in your configuration file.

  • If you are not using systemd, you might need to manually start a dbus user session: dbus-daemon --session --address=unix:path=$XDG_RUNTIME_DIR/bus

Configuration

mako can be extensively configured and customized - feel free to read more using the command man 5 mako

For control of mako during runtime, makoctl can be used; see man makoctl

Building

Install dependencies:

  • meson (build-time dependency)
  • wayland
  • pango
  • cairo
  • systemd, elogind or basu (for the sd-bus library)
  • gdk-pixbuf (optional, for icons support)
  • dbus (runtime dependency, user-session support is required)
  • scdoc (optional, for man pages)

Then run:

meson setup build
ninja -C build
build/mako

mako

I have a question!

See the faq section in the wiki.

License

MIT

GitHub Flavored Markdown (github-markdown-css)README snapshot at cce37cd340