Skip to content

Notifd

A notification daemon implementation as a library and CLI tool.

How it works

The first instantiation of the Notifd class will become the daemon and every subsequent instantiation will queue up to act as the daemon and will act as a client in the meantime. This means this library can be used throughout multiple processes.

Usage

You can browse the Notifd reference.

CLI

sh
astal-notifd --help

Library

js
import Notifd from "gi://AstalNotifd"

const notifd = Notifd.get_default()

notifd.connect("notified", (_, id) => {
  const n = notifd.get_notification(id)
  print(n.summary, n.body)
})
py
from gi.repository import AstalNotifd as Notifd

notifd = Notifd.get_default()

def on_notified(_, id):
    n = notifd.get_notification(id)
    print(n.get_body(), n.get_body())

notifd.connect("notified", on_notified)
lua
local Notifd = require("lgi").require("AstalNotifd")

local notifd = Notifd.get_default()

notifd.on_notified = function(_, id)
    local n = notifd.get_notification(id)
    print(n.body, n.summary)
end
vala
// Not yet documented

Installation

  1. install dependencies

    sh
    sudo pacman -Syu meson vala valadoc gdk-pixbuf2 json-glib gobject-introspection
    sh
    sudo dnf install meson vala valadoc gdk-pixbuf2-devel json-glib-devel gobject-introspection-devel
    sh
    sudo apt install meson valac valadoc libgdk-pixbuf-2.0-dev libjson-glib-dev gobject-introspection
  2. clone repo

    sh
    git clone https://github.com/aylur/astal.git
    cd astal/lib/notifd
  3. install

    sh
    meson setup build
    meson install -C build

Released under the LGPL v2.1 License