From d12e48578d240bc12ab6c5632a33a011d28bfded Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20Dud=C3=ADk?= <24730635+dudik@users.noreply.github.com> Date: Sat, 15 Aug 2020 21:02:56 +0200 Subject: [PATCH] Update README.md --- README.md | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8524a01..e1c4cc9 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,48 @@ ## Usage ```shell -herbe "herbe notifications" " " "Daemon-less notifications without D-Bus. Minimal and lightweight." +$ herbe "herbe notifications" " " "Daemon-less notifications without D-Bus. Minimal and lightweight." ``` will display the notification shown above +### Dismiss a notification +A notification can be dismissed either by clicking on it with `DISMISS_BUTTON` (set in config.h, defaults to left mouse button) or sending a `SIGUSR1` signal to it: +```shell +$ pkill -SIGUSR1 herbe +``` + +### Actions +Action is a piece of shell code that runs when a notification gets accepted. Accepting a notification is the same as dismissing it, but you have to use either `ACTION_BUTTON` (defaults to right mouse button) or the `SIGUSR2` signal. +An accepted notification always returns exit code 3. To specify an action: +```shell +$ herbe "Notificatio body" ; [ $? -eq 3 ] && echo "This is an action" +``` +Where everything after `&&` is the action and will get executed after the notification gets accepted. + +### Notifications don't show up +Most likely a running notification got terminated forcefully (SIGKILL or any uncaught signal) which caused the semaphore not getting unlocked. First, kill any `herbe` instance that is stuck: +```shell +$ pkill -SIGKILL herbe +``` +Then just call `herbe` without any arguments: +```shell +$ herbe +``` +Notifications should now show up as expected. + +Don't ever send any signals to `herbe` except these: +```shell +# same as pkill -SIGTERM herbe, terminates every running herbe process +$ pkill herbe + +$ pkill -SIGUSR1 herbe +$ pkill -SIGUSR2 herbe +``` +And you should be fine. That's all you really need to interact with `herbe`. + +### Multiple notifications +Notifications are put in a queue and shown one after another in order of creation (first in, first out). They don't overlap and each one is shown for its entire duration. + ## Installation ### Dependencies * X11 (Xlib)