You are not logged in.
I like doing it at compile time, but don't have a strong preference. Sometimes it's nice to see results immediately, but it doesn't take long to build the binary.
Offline
knopwob wrote:Oh and xft-support will be included.
I do hope it's an option only and I still will be able to use good old bitmap fonts?
*sigh*
There is just no way to make everybody happy, is there?
I think I'm going with a separate xft-branch to make this optional.
And since the objections against a config file aren't that high, I'll merge that into master (and xft), to keep the number of different versions low. I'm just not sure if I'll add xft uncommented as a patch to the dunst PKGBUILD in aur or if I should add an extra dunst-xft package. I personally don't like all the different $pkg $pkg-xft $pkg-otherfeature etc. packages in the aur. Maybe there's a TU reading this to give a comment on that?
Does anyone have a better idea to keep your (and more importantly my ) maintenance overhead low?
edit: oh and don't suggest doing that with a configure script and #ifdefs
edit2: It seems, this all isn't really necessary. At least this works "font = terminus-16:antialias=false" if that's all what you want.
Last edited by knopwob (2012-06-12 16:47:33)
Offline
Hi,
I just pushed the changes to the master-branch. This needs a new PKGBUILD which you can get here until Army updated the aur version. (edit: aur is updated)
The new Features are as following:
* idle_mode: If the user is idle for a certain amount of time, no messages will be removed, so you don't miss anything while you're gone. The idle threshold is configurable and this can be completely disabled
* xft-support
* Dunst now has a configuration file and threfore isn't configured at compiletime via config.h anymore. You can find an example configuration file at /usr/share/dunst/dunstrc and dunst looks at XDG_CONFIG_HOME/dunstrc for it's config file. This usually translates to ~/.config/dunstrc.
If someone is unhappy with the xft's support of bitmap fonts, I'll create a non-xft branch for those (unless I find a better way to handle this).
Please let me know if you encounter any bugs, unclarities in the man page or comments in the example dunstrc (english isn't my native language, after all) etc.
I hope you'll like it.
edit: fixed typo
Last edited by knopwob (2012-06-13 21:37:20)
Offline
I actually liked the config.h way (dwm user) and don't need xft support. So if you'll create a non-xft branch, I'll use that one, but I think I'll be happy with the current version as is.
Offline
I actually liked the config.h way (dwm user) and don't need xft support. So if you'll create a non-xft branch, I'll use that one, but I think I'll be happy with the current version as is.
Oh well. Since someone just pointed out to me, that iniparser isn't available for debian, I just created a "light" branch, without xft and iniparser. So that one is configured via config.h. Note that there's a new variable "const int idle_threshold" in config.h so you still need to update your old config.h (see config.def.h for referene).
If you want any other combination of those new features features feel free to fork dunst on github and cherry-pick what you want ;-)
Offline
Army wrote:I actually liked the config.h way (dwm user) and don't need xft support. So if you'll create a non-xft branch, I'll use that one, but I think I'll be happy with the current version as is.
Oh well. Since someone just pointed out to me, that iniparser isn't available for debian, I just created a "light" branch, without xft and iniparser. So that one is configured via config.h. Note that there's a new variable "const int idle_threshold" in config.h so you still need to update your old config.h (see config.def.h for referene).
If you want any other combination of those new features features feel free to fork dunst on github and cherry-pick what you want ;-)
Thanks, that's exactly what I need, too.
Offline
Stupid me, I already deleted my config.h, but I remembered my modifications Maybe I'll include an easy way in the PKGBUILD to switch between branches. But for now I'll leave it as it is.
Offline
@knopwob:
Thank you SO much for these developments; the Xft support and the new idle_mode are great! My desktop looks complete now.
Have tested out with the new configuration file rather than command-line options and everything looks go so far.
PS: Just to avoid any confusion, I'd better mention that you have a '.' in front of dunstrc in your announcement post above:
You can find an example configuration file at /usr/share/dunst/dunstrc and dunst looks at *XDG_CONFIG_HOME/.dunstrc* for it's config file. This usually translates to ~/.config/dunstrc.
Offline
PS: Just to avoid any confusion, I'd better mention that you have a '.' in front of dunstrc in your announcement post above:
knopwob wrote:You can find an example configuration file at /usr/share/dunst/dunstrc and dunst looks at *XDG_CONFIG_HOME/.dunstrc* for it's config file. This usually translates to ~/.config/dunstrc.
Oh yes, fixed that. Thank you.
And it seems dunst is finally a mature project, because it has a homepage now.
I would appreciate if a native speaker could look over it and see if there are speeling or gramatical errors or some unclear wording. And if you have some nice screenshots I'll be glad to put them up there too.
Offline
I would appreciate if a native speaker could look over it and see if there are speeling or gramatical errors or some unclear wording.
Surely! On the webpage:
Capitalize Linux (or not) consistently: "... daemon for *l*inux. It's designed to fit nicely into minimalistic windowmanagers like dwm, but it should work on any *L*inux desktop."
Reduce capital M to small m: "Installing *m*anually"
Correct spelling: "(this normally tran*s*lates to ~/.config/dunstrc)"
Correct grammar: "and edit it to your liking." (remove 's')
Glad to see dunst looking "serious" now!
Offline
Crashes now when $XDG_CONFIG_HOME is not set.
(gdb) r
Starting program: /tmp/packerbuild-1000/dunst-git/dunst-git/src/dunst-build/dunst -geometry 0x5-5+15 -fn 10x20 -format %s:\ %b -nb \#333 -nf \#eee -lb \#333 -lf \#777 -cb \#333 -cf \#f02
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff6f97829 in __strcat_chk () from /lib/libc.so.6
(gdb) bt
#0 0x00007ffff6f97829 in __strcat_chk () from /lib/libc.so.6
#1 0x0000000000404858 in strcat (__src=<optimized out>, __dest=0x625dd0 "")
at /usr/include/bits/string3.h:144
#2 parse_dunstrc () at dunst.c:851
#3 0x0000000000402bdb in main (argc=19, argv=0x7fffffffe488) at dunst.c:999
When I set it to ~/.config, it loads, but the window is now in the top left corner and not in the top right one.
Offline
Crashes now when $XDG_CONFIG_HOME is not set.
When I set it to ~/.config, it loads, but the window is now in the top left corner and not in the top right one.
Just pushed fixes for both. Please update and let me know the problems still persist.
Offline
@ Knopwob: it seems like your focus is on this project again. I maintain a thread over at the Crunchbang forums on Dunst.
One of the guys there asked if you were still working on that Python version you were talking about before. Can you shed some light on this?
If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres
Offline
@ Knopwob: it seems like your focus is on this project again. I maintain a thread over at the Crunchbang forums on Dunst.
One of the guys there asked if you were still working on that Python version you were talking about before. Can you shed some light on this?
As I said before, dunst was suppost to be in bugfix only mode, but you were annoying enough to make me go back working on dunst and implement xft-support ;P The other features where done a few months ago but I never merged them into master. I'm not sure about the future of dunst. I will of course keep maintaining it and fix bugs etc.
But besides a history (keybinding to display the last x messages) there's no feature that I'm missing or that I'm aware of that somebody else is missing. So there's not much work left todo. Well the code could use a massive cleanup but that's nothing you guys would notice, except new bugs that get introduced
If you have any feature request let know here or preferably on the github issue tracker.
Regarding the python version:
I haven't started that one yet. It's more a "if I'm bored, have the time and want to code some python" kind of thing. I don't know when that will happen or if it will happen at all.
Offline
Thanks, just forwarded it
If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres
Offline
Just started using this app and think it's great, many thanks.
I have a couple of questions though - I've read through the thread, so please forgive me if I've missed the answers above:
1) Has the -msg option been removed? I can't find any way to use dunst as stand alone app.
2) I am assuming that if you run dunst as a daemon, all notifications will be handled with its specified settings (dunstrc or options) unless overridden by hint, and only colours can be overridden?
3) Is there any way to make use of notify-send's categories?
Not asking for those as features if the answers are no, but just want to make sure I'm not missing any tricks.
If anyone has any neat uses for this I'd be interested to hear them. I'm currently using it with procmail and remind, but I'm sure there are other things (eg I'm thinking of wrapping my mplayer music playing in a script that uses it). Assuming, that is, that knopwob doesn't mind the clutter in the thread (could start a new one)?
"...one cannot be angry when one looks at a penguin." - John Ruskin
"Life in general is a bit shit, and so too is the internet. And that's all there is." - scepticisle
Offline
Just started using this app and think it's great, many thanks.
I have a couple of questions though - I've read through the thread, so please forgive me if I've missed the answers above:
no problem.
1) Has the -msg option been removed? I can't find any way to use dunst as stand alone app.
Yes, because I haven't found a simple and clean way to make the different instances talk to each other and tell them, where to display their window.
So they would all display their messages on top of each other, which was mostly unusable.
2) I am assuming that if you run dunst as a daemon, all notifications will be handled with its specified settings (dunstrc or options) unless overridden by hint, and only colours can be overridden?
From notify-send itself you can influence the urgency (which changes colors and timeouts), the timeout and via hints the color.
With the rules from the dunstrc you can manipulate the timeout, urgency, colors and the format.
Here are my rules, to give an example:
[signed_on]
appname = Pidgin
summary = "*signed on*"
urgency = low
[signed_off]
appname = Pidgin
summary = *signed off*
urgency = low
[says]
appname = Pidgin
summary = *says*
urgency = critical
[twitter]
appname = Pidgin
summary = *twitter.com*
urgency = low
[mail]
appname = gmailnotify.py
background = "#cccc00"
foreground = "#222222"
[dunst-sum]
appname = gmailnotify.py
summary = "*[dD]unst*"
background = "#ffcc00"
foreground = "#222222"
timeout = 0
[dunst-body]
appname = gmailnotify.py
body = "*[dD]unst*"
background = "#ffcc00"
foreground = "#222222"
timeout = 0
3) Is there any way to make use of notify-send's categories?
No. You _could_ use the icon option as an information channel in combination with rules, that match against the icon. But this would probably confuse other notification-daemons.
If anyone has any neat uses for this I'd be interested to hear them. I'm currently using it with procmail and remind, but I'm sure there are other things (eg I'm thinking of wrapping my mplayer music playing in a script that uses it). Assuming, that is, that knopwob doesn't mind the clutter in the thread (could start a new one)?
No, i don't mind. Actually I'm also interested in making use of dunst in ways I havn't thought off.
I'm currently using it for chat/email notifications and as a feedback channel from some scripts, keyboardshortcuts.
Offline
Thanks knopwob, very useful.
EDIT: just re-read thread and realised this bit was answered.
Re #2, I had seen those examples and then promptly forgotten they existed, so thanks for the reminder. I'd also meant to ask about the timeout and whether how it worked with dunst's, and you answered that for me.
Last edited by skanky (2012-06-15 08:50:21)
"...one cannot be angry when one looks at a penguin." - John Ruskin
"Life in general is a bit shit, and so too is the internet. And that's all there is." - scepticisle
Offline
chneukirchen wrote:Crashes now when $XDG_CONFIG_HOME is not set.
When I set it to ~/.config, it loads, but the window is now in the top left corner and not in the top right one.
Just pushed fixes for both. Please update and let me know the problems still persist.
Works great now, thanks a lot!
Offline
I just added the last feature on my todo list: a history.
You can now define a keybinding to redisplay the last message (repeat to go further down in history).
in dunstrc:
[global]
...
history_key = "grave"
via commandline:
dunst ... -history_key "grave"
and for the users of the light branch, you have to add this to your config.h
char *history_key_string = "grave";
or to disable the keybinding:
char *history_key_string = NULL;
As I stated before, this was the last item on my todo list so from now on it should get quiet from the developement side of things. Bugfixes are of course the exception of this. And I'm still open for feature requests.
Offline
I just added the last feature on my todo list: a history.
Great stuff - I never knew I needed a 'history' key until you introduced the feature, and now I find it very useful!
Dunst is certainly doing everything I need for now.
Job very well done indeed.
Offline
[testimony]
@knopwob -- First of all: thank you very much for keeping the light branch. What it can do is more than I'd ask for, and it does the job perfectly well. I've been using dunst for quite a long time now and it's proved to be one of my top rated apps as far as the number of bugs / errors / annoyances is concerned: briefly and frankly, I've never experienced any troubles with it whatsoever. When I have some spare time, I'll check the currently default branch and set it up the way you've suggested, but for now I'm very happy with the light one. Thank you again for this pretty piece of code.
[/testimony]
:: Registered Linux User No. 223384
:: github
:: infinality-bundle+fonts: good looking fonts made easy
Offline
it's proved to be one of my top rated apps as far as the number of bugs / errors / annoyances is concerned: briefly and frankly, I've never experienced any troubles with it whatsoever.
Then you havn't been one of the first testing some new features But I'll try to fix bugs as fast as possible. Anyway thank you for your kind words, it's much appreciated.
Offline
Okay, nothing amazing, but little script to tell me about mount/unmount events:
#!/bin/bash
#
# mntwatch: watches a passed in directory and notifies
# of subdir creation and deletion via notify-send
#
# Depends on notifywait and notify-send
#
# Need to have an input dir
watchdir=${1:?"undefined. Need to specify dir to watch."}
while true; do
notify-send -u low -a filesystem \
"$(inotifywait -qs -e create -e delete --format '%w%f - %e' $watchdir)"
done
I call it from .xinitrc and pass it /media/ and /mnt/.
I use it with ldm that does the mounting of the drives and also deletes the dirs when unmounted.
Also, here's how I use it with remind:
/usr/bin/remind -z -k'notify-send -u normal -t 5000 -a remind %s &' $XDG_DATA_HOME/remind/ &
I haven't yet started to use the overrides in the config file as I want to see how this all works as is, but can see me wanting to at some point. So if anyone has any examples as to what/how they do, it would be interesting.
"...one cannot be angry when one looks at a penguin." - John Ruskin
"Life in general is a bit shit, and so too is the internet. And that's all there is." - scepticisle
Offline
Sorry if I don't want to read the whole thread but dunst + irssi = infinite possibilities. Gonna try out some things one of these days if any of you haven't tried yet.
Offline