tmisu

Notification to stdout daemon
git clone https://git.inz.fi/tmisu/
Log | Files | Refs | README | LICENSE

README.md (2590B)


      1 # Desktop notifications, the UNIX way
      2 
      3 tmisu is a notification daemon based on tiramisu that outputs notifications
      4 to STDOUT in order to allow the user to process notifications any way they
      5 prefer.
      6 
      7 tmisu as originally a tiramisu rewrite without GLib, and using libdbus instead.
      8 
      9 # Why?
     10 
     11 By allowing users to determine what is done with notifications, there are
     12 infinitely more possibilities presented to the end-user than a simple
     13 notification daemon that displays a block of text on the screen and nothing
     14 more.
     15 
     16 Users could have notifications display in a pre-existing bar, make a control
     17 panel of some sort that shows notifications, push notifications to their phone
     18 if their computer has been idle for an amount of time, make notifications more
     19 accessible with text-to-speech, and so much more.
     20 
     21 # Installation
     22 
     23 Clone the repository and build the project. Then move tmisu to a location that
     24 is specified in `$PATH`.
     25 ```
     26 $ git clone https://git.inz.fi/tmisu/
     27 $ cd ./tmisu
     28 $ make
     29 
     30 # cp ./tmisu /usr/local/bin/tmisu
     31 ```
     32 #### Note that the use of a pound symbol (#) denotes escalated privileges.
     33 #### On most Linux systems this can be done with the usage of `sudo`
     34 
     35 # Usage
     36 
     37 Redirecting output of tmisu to the input of another program is the ideal
     38 methodology to using tmisu.
     39 ```
     40 tmisu | your-application
     41 ```
     42 
     43 By default tmisu prints the summaries of all current notifications on one line
     44 or empty line if there are no notifications.
     45 
     46 In JSON mode, tmisu will output all current notifications on one line as an
     47 JSON array.
     48 
     49 tmisu can also be made to call external programs when notifications arrive,
     50 the programs are expected to act like [herbe](https://github.com/dudik/herbe),
     51 staying running until notifications has been handled, or it has expired, and
     52 return 0 if an action should be performed. tmisu will then signal the first
     53 action defined for the notification.
     54 
     55 If the notifications expire, or are explicitly closed, tmisu will signal the
     56 invoked program with SIGTERM.
     57 
     58 ### Example of default output
     59 
     60 ```
     61 $ tmisu
     62 ```
     63 
     64 ```
     65 New email in Evolution
     66 
     67 ```
     68 
     69 ### Example of JSON output
     70 
     71 ```
     72 $ tmisu -j
     73 ```
     74 
     75 ```
     76 [{"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."}]
     77 []
     78 ```
     79 
     80 #### Note that only a single process can claim the org.freedesktop.Notifications name at a given time, so any other running notification daemon must be killed before running tmisu.