Notifications sans démon sans D-Bus. Minimal et léger.
Moins de 200 lignes de code
Ne s'exécute pas en arrière-plan, affiche simplement la notification et quitte
Aucune dépendance externe sauf Xlib et Xft
Configurable via config.h
ou Xresources (en utilisant ce patch)
Accompagnement des actions
Extensible via des correctifs
Usage
Correctifs
Ignorer une notification
Actes
Nouvelles lignes
Notifications multiples
Les notifications ne s'affichent pas
Installation
Forfaits
Dépendances
Construire
Configuration
Contribuer
Liste des correctifs disponibles
Pour créer un nouveau correctif, vous devrez ouvrir une pull request avec vos modifications. Ajoutez .diff
à l’URL de la demande d’extraction pour obtenir un fichier de comparaison téléchargeable. N'oubliez pas de préfixer le titre avec patch:
et de lui appliquer le label patch
. Pour vous inspirer, regardez mon patch Xresources. Merci.
Remarque : Cette méthode de correction a été fortement inspirée du sowm de Dylan.
Une notification peut être ignorée soit en cliquant dessus avec DISMISS_BUTTON
(défini dans config.h, par défaut le bouton gauche de la souris) ou en lui envoyant un signal SIGUSR1
:
$ pkill -SIGUSR1 herbe
Les notifications rejetées renvoient le code de sortie 2.
L'action est un morceau de code shell qui s'exécute lorsqu'une notification est acceptée. Accepter une notification revient à la rejeter, mais vous devez utiliser soit ACTION_BUTTON
(par défaut, le bouton droit de la souris) ou le signal SIGUSR2
. Une notification acceptée renvoie toujours le code de sortie 0. Pour spécifier une action :
$ herbe "Corps de la notification" && echo "Ceci est une action"
Où tout après &&
est l'action et sera exécuté une fois la notification acceptée.
Chaque argument de ligne de commande est imprimé par défaut sur une ligne distincte, par exemple :
$ herbe "Première ligne" "Deuxième ligne" "Troisième ligne" ...
Vous pouvez également utiliser n
eg dans bash
:
$ herbe $'Premier lingeDeuxième lingeTroisième ligne'
Mais par défaut, herbe
affiche n
littéralement :
$ herbe "Premier lingeToujours la première ligne"
La sortie des autres programmes sera imprimée correctement, assurez-vous simplement de l'échapper (afin de ne pas vous retrouver avec chaque mot sur une ligne distincte) :
$ herbe "$(ps axch -o cmd:15,%cpu --sort=-%cpu | head)"
Les notifications sont mises dans une file d'attente et affichées les unes après les autres par ordre de création (premier entré, premier sorti). Ils ne se chevauchent pas et chacun est affiché pendant toute sa durée.
Il est très probable qu'une notification en cours d'exécution ait été interrompue de force (SIGKILL ou tout signal non intercepté), ce qui a empêché le déverrouillage du sémaphore. Tout d’abord, tuez toute instance herbe
bloquée :
$ pkill -SIGKILL herbe
Ensuite, appelez simplement herbe
sans aucun argument :
$ herbes
Les notifications devraient maintenant s'afficher comme prévu.
N'envoyez jamais de signaux à herbe
à l'exception de ceux-ci :
# identique à pkill -SIGTERM herbe, termine chaque processus herbe en cours d'exécution$ pkill herbe $ pkill -SIGUSR1 herbe $ pkill -SIGUSR2 herbe
Et ça devrait aller. C'est tout ce dont vous avez réellement besoin pour interagir avec herbe
.
Correctif OpenBSD
Correctif FreeBSD
« Port Wayland » par muevoid
Seul le package herbe-git AUR est maintenu par moi.
X11 (Xlib)
Xft
Les noms des packages sont différents selon la distribution que vous utilisez. Par exemple, si vous utilisez Void Linux, vous devrez installer ces dépendances :
sudo xbps-install base-devel libX11-devel libXft-devel
git clone https://github.com/dudik/herbecd herbe sudo make install
make install
nécessite les privilèges root car il copie le binaire résultant dans /usr/local/bin
. Cela rend herbe
accessible dans le monde entier.
Vous pouvez également utiliser make clean
pour supprimer le binaire du dossier de construction, sudo make uninstall
pour supprimer le binaire de /usr/local/bin
ou simplement make
pour construire le binaire localement.
herbe est configurée au moment de la compilation en éditant config.h
. Chaque option doit être explicite. Il n'y a pas d'option height
car la hauteur est déterminée par la taille de la police et le remplissage du texte.
Correctif XResources
Si vous souhaitez signaler un bug ou si vous avez une demande de fonctionnalité, n'hésitez pas à ouvrir un ticket.
qutebrowser prend en charge l'affichage des notifications Web via herbe, via le paramètre content.notifications.presenter
.