Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nojhan/clibard

Watch your last D-Bus notifications in the terminal
https://github.com/nojhan/clibard

cli d-bus dbus notifications python shell terminal

Last synced: about 1 month ago
JSON representation

Watch your last D-Bus notifications in the terminal

Awesome Lists containing this project

README

        

CLI bard — See all your last notifications in the terminal
==========================================================

The *CLI bard* is a very simple command line application that displays the last
notifications received on the D-Bus (the common notification system under Linux).

It is not an interactive application, it just displays incoming notifications.
At any time, as much as possible of the last notifications are displayed.
The display refreshes when a notification is received.

The CLI bard is written in Python and is available under the AGPLv3 license.

Install
=======

The CLI bard relies on your terminal using a font patched with the "Powerline"
characters. The recommended fonts are the ones from the
[Nerd font project](https://www.nerdfonts.com/).

Usage
=====

Command arguments
-----------------

> usage: clibard.py [-h] [-l {h,v,horizontal,vertical}] [--test NB_ITEMS] [--send NB_ITEMS]
> options:
> -h, --help show this help message and exit
> -l {h,v,horizontal,vertical}, --layout {h,v,horizontal,vertical}
> How to display notifications. `horizontal` = as many of the last notifications that fit on a single line, clear out the old ones. `vertical` = keep
> printing new notifications on new lines.

Signaling
---------

The CLI bard does respond to POSIX "user signals".
Signals can be issued with the `kill` command, using the `--signal` flag along
with 10 (SIGUSR1) or 12 (SIGUSR2) as an argument.
SIGUSR1 will refresh the display, SIGUSR2 will erase any notification in the
cache and clear the display (if it can).

Note that with the horizontal layout, refreshing the display actually changes
the display. Erasing the cache will remove any on-screen notification.
With the vertical layout, this does nothing on the display.

Layouts
=======

The default layout is the horizontal one.
This will display on a single line, and overwrite it as soon as an update is
received.
When refreshing its display in the horizontal layout, the displayed dates will
be refreshed as well.
However, it does not show all the cached notifications, but only the few last
ones that can fit the current width of the terminal.

The vertical layout simply prints a new line as soon as the CLI bard receive
a notification. The display cannot be cleared nor refreshed.
Most notably, the dates of notifications will all be "now".
However, the terminal does display all the received notifications, if you can
scroll back enough.