diff --git a/config.def.h b/config.def.h index 8fdc144..e811a75 100644 --- a/config.def.h +++ b/config.def.h @@ -11,6 +11,7 @@ char *lowfgcolor = "#000000"; char *format = "%s %b"; /* default format */ int timeouts[] = { 10, 10, 0 }; /* low, normal, critical */ +char *icons[] = { "info", "info", "emblem-important" }; /* low, normal, critical */ unsigned int transparency = 0; /* transparency */ char *geom = "0x0"; /* geometry */ diff --git a/notification.c b/notification.c index 42242d6..3510851 100644 --- a/notification.c +++ b/notification.c @@ -383,6 +383,14 @@ int notification_init(notification * n, int id) n->timeout == -1 ? settings.timeouts[n->urgency] : n->timeout; n->start = 0; + if (n->icon == NULL) { + n->icon = settings.icons[n->urgency]; + } + else if (strlen(n->icon) <= 0) { + free(n->icon); + n->icon = settings.icons[n->urgency]; + } + n->timestamp = time(NULL); n->redisplayed = false; diff --git a/settings.c b/settings.c index 63ffcf1..4c4eb2e 100644 --- a/settings.c +++ b/settings.c @@ -231,6 +231,9 @@ void load_settings(char *cmdline_config_path) settings.timeouts[LOW] = option_get_int("urgency_low", "timeout", "-lto", timeouts[LOW], "Timeout for notifications with low urgency"); + settings.icons[LOW] = + option_get_string("urgency_low", "icon", "-li", icons[LOW], + "Icon for notifications with low urgency"); settings.normbgcolor = option_get_string("urgency_normal", "background", "-nb", normbgcolor, @@ -242,6 +245,9 @@ void load_settings(char *cmdline_config_path) settings.timeouts[NORM] = option_get_int("urgency_normal", "timeout", "-nto", timeouts[NORM], "Timeout for notifications with normal urgency"); + settings.icons[NORM] = + option_get_string("urgency_normal", "icon", "-ni", icons[NORM], + "Icon for notifications with normal urgency"); settings.critbgcolor = option_get_string("urgency_critical", "background", "-cb", critbgcolor, @@ -251,9 +257,11 @@ void load_settings(char *cmdline_config_path) critfgcolor, "Foreground color for notifications with ciritical urgency"); settings.timeouts[CRIT] = - option_get_int("urgency_critical", "timeout", "-cto", - timeouts[CRIT], + option_get_int("urgency_critical", "timeout", "-cto", timeouts[CRIT], "Timeout for notifications with critical urgency"); + settings.icons[CRIT] = + option_get_string("urgency_critical", "icon", "-ci", icons[CRIT], + "Icon for notifications with critical urgency"); settings.close_ks.str = option_get_string("shortcuts", "close", "-key", close_ks.str, diff --git a/settings.h b/settings.h index 8f3726b..55d08f4 100644 --- a/settings.h +++ b/settings.h @@ -14,6 +14,7 @@ typedef struct _settings { char *lowfgcolor; char *format; int timeouts[3]; + char *icons[3]; unsigned int transparency; char *geom; int shrink;