tmisu is a notification daemon based on tiramisu that outputs notifications to STDOUT in order to allow the user to process notifications any way they prefer.
tmisu is basically a rewrite without GLib, and using libdbus instead.
By allowing users to determine what is done with notifications, there is infinitely more possibilities presented to the end-user than a simple notification daemon that displays a block of text on the screen and nothing more.
Users could have notifications display in a pre-existing bar, make a control panel of some sort that shows notifications, push notifications to their phone if their computer has been idle for an amount of time, make notifications more accessible with text-to-speech, and so much more.
Clone the repository and build the project. Then move tmisu to a location that is specified in $PATH
.
$ git clone https://git.inz.fi/tmisu/
$ cd ./tmisu
$ make
# cp ./tmisu /usr/bin/tmisu
# chmod +x /usr/bin/tmisu
Redirecting output of tmisu to the input of another program is the ideal methodology to using tmisu.
tmisu | your-application
By default tmisu outputs notifications in a psuedo-key-value line format.
You can supply the -j
flag to output notification data in JSON format.
$ tmisu
app_name: evolution-mail-notification
app_icon: evolution
replaces_id: 0
timeout: -1
hints:
desktop-entry: org.gnome.Evolution
urgency: 1
actions:
Show INBOX: default
summary: New email in Evolution
body: You have received 4 new messages.
$ tmisu -j
{"app_name": "evolution-mail-notification", "app_icon": "evolution", "replaces_id": 0, "timeout": -1, "hints": {"desktop-entry": "org.gnome.Evolution", "urgency": 1}, "actions": {"Show INBOX": "default"}, "summary": "New email in Evolution", "body": "You have received 4 new messages."}