Status / Notification system for lightweight Window Managers - fork to add ratpoison support, work with new version of dbus, and disable status message
Switch branches/tags
Nothing to show
Pull request Compare This branch is even with taylor:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
pkg
releases
.statusline.sh
LICENSE
Makefile
README
build_release.sh
config.mk
documentation.md
statnot

README

statnot CURVERSION - Status and Notifications

notification-deamon replacement intended to be used with lightweight 
window managers such as dwm or wmii
Receives D-Bus/Desktop Notifications (libnotify / notify-send)

*Note: this is an early version of statnot. It has only been tested with
a few libnotify enabled applications. PLEASE report any bugs.*


Installation
============
* edit config.mk to fit your setup

    # make install

statnot does not overwrite any existing notification daemon. However,
only one receiver of notifications can be active at one, so you need
to kill any running before starting statnot.

Example .xinitrc when using dwm:

    killall notification-daemon &> /dev/null
    statnot & 
    exec dwm

*Note: you should obviously disable any existing status update scripts*

At regular intervals, ~/.statusline.sh is called, and the stdout is printed
in the status bar. If there is a notification to be shown, it is passed as
the last argument ($1 in this example).

Example .statusline.sh (see below) prints `[load 0.27 0.15 0.10]   12:25`
by default and "NOTIFICATION: <text>" when a notification should show. If
nothing is returned, the status text, if available, is shown.

    if [ $# -eq 0 ]; then
        loadavg="`cat /proc/loadavg | awk '{print $1, $2, $3}'`";
        echo "[load ${loadavg}]   `date +'%R'`";
    else
        echo "NOTIFICATION: $1";
    fi

*Note: if notifications doesn't show, double check your .statusline.sh*

To test if it works (watch status bar):

    $ notify-send "Hello World"
    
Dependencies
------------
* python 2.5+ 
* dbus-python
* pygtk


Configuration
=============
Configuration is a bit crude. Open the statnot executable - it's python -
and edit the settings beneath the CONFIGURATION marker.


Integration
===========
statnot should integrate nicely with libnotify enabled softare (please
report any bugs). If you want to send your own notifications from e.g.
scripts, try `notify-send`.

I use notify-send to display audio volume changes when I press my media
buttons. Obviously two presses in a row changes the volume two steps
and I don't want to wait for the first message to timeout before the 
new, actual message shows. Use `notify-send -t 0` if you want to change
this behaviour. In this case, the message will show for a regular tick of
status message updates or until another notification appears.

*Note: the trick above is a workaround. Proper applications implement the
replaces_id in the Desktop Notifications protocol.*


TODO
====
* Notification priority
* update_text functions for other WMs

Considering
-----------
* Is python OK or rewrite in e.g. C?
* Create configuration in a separate file?
* Proper integration with dbus (automatically started, etc)?
  Being able to try this out without permanently changing the 
  regular notification setup is nice.
 

Changes
=======
0.0.2 (2009-04-14)
* Notification is passed to the status script for formatting.
  Shout-out to BetterLeftUnsaid @ bbs.archlinux.org for idea.
* Corrected dependecies.

0.0.1 (2009-04-13)
* First released version


License
=======
Copyright (c) 2009 by Henrik Hallberg (halhen@k2h.se)
http://code.k2h.se
Please report bugs or feature requests by e-mail.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.