Dunst is a lightweight replacement for the notification-daemons provided by most desktop environments. It's very customizable, doesn't depend on any toolkits and therefore fits in those windowmanager centric setups we all love to customize to perfection.
Dunst is a part of the j4tools tools set.
Features
customization Customize colors, fonts, geometry, timeouts etc.
Rules Override colors, timeouts etc. for notifications that match a certain pattern. This can be used to give messages from your favourite jabber buddies their own color or stop those *needs immediate respons* emails from work from timing out so they are displayed until you manually discard them after you replied.
Multihead support Specify on which monitor the notifications should be displayed or make them follow to the monitor which contains the mouse cursor or has the window with keyboard focus.
History Just saw a notification dissapear in the corner of your eye or haven't finished reading that one before it timed out? Just press the history keyboard shortcut to redisplay the last message (Use multiple times to go further back in history).
Keyboard driven Keyboard shortcuts for closing the oldest notification, closing all notifications and history. The mouse can be used, too; Left-click to discard clicked notification and right-click to discard all notifications.
Context Menu Open a context menu (using dmenu) via keyboard shortcut for the displayed notifications. Currently it only filters out urls and lets you open them in your browser.
Scriptable Run custom scripts on notifications that match a certain pattern. Let the text of the notification be read to you by espeak or play a song when your significant other signs on in pidgin.
Dependencies
- dbus
- libxinerama
- libxft
- libxss
- libxdg-basedir
Screenshots
See the Screenshots page for screenshots.
Releases
Changelog
Version 1.0.0
- use pango/cairo as drawing backend
- make use of pangos ability to parse markup
- support for actions via context menu
- indicator for actions/urls found
- use blocking I/O. No more waking up the CPU multiple times per second to check for new dbus messages
Version 0.5.0
- new default dunstrc
- frames for window
- trigger scripts on matching notifications
- context menu for urls (using dmenu)
- pause and resume function
- use own code for ini parsing (this removes inih)
- progress hints
Version 0.4.0
- separator between notifications
- word wrap long lines
- real transparance
- bouncing text (alternative to word_wrap)
- new option for line height
- better multihead support
- don't die when keybindings can't be grabbed
- bugfix: forgetting geometry
- (optional) static configuration
Version 0.3.0
- full support for Desktop Notification Specification (mandatory parts)
- option to select monitor on which notifications are shown
- follow focus
- oneline mode
- text alignment
- show age of notifications
- sticky history
- filter duplicate messages
- keybinding to close all notifications
- new way to specify keybindings
- cleanup / bugfixes etc.
- added dunst.service
Version 0.2.0
- introduction of dunstrc
- removed static configuration via config.h
- don't timeout when user is idle
- xft-support
- history (a.k.a. redisplay old notifications)
Git repository
The repository is hosted on GitHub
You can clone the project with Git by running:
$ git clone git://github.com/knopwob/dunst
Bug reporting
Please use the GitHub bug tracker.
If you don't have a github account you can also send me an email (knopwob@gmail.com), but the github issue tracker is the preferred way.
Contact
- per email: knopwob@gmail.com
- irc: #j4tools and #dunst on irc.twice-irc.de (nick: knopwob)
Author
Sascha Kruse <knopwob@gmail.com>
License
Licenced under the terms of the 3-clause BSD License.
Copyright (c) 2013, Sascha Kruse knopwob@gmail.com
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of Sascha Kruse nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.