From 4aa4e93123db7768d8c375b53477ae37d1ec41b1 Mon Sep 17 00:00:00 2001 From: Nikos Tsipinakis Date: Sat, 4 Feb 2017 15:18:14 +0200 Subject: [PATCH] Format the settings file better --- src/settings.c | 538 +++++++++++++++++++++++++++++++------------------ 1 file changed, 342 insertions(+), 196 deletions(-) diff --git a/src/settings.c b/src/settings.c index 91563c6..ca0e222 100644 --- a/src/settings.c +++ b/src/settings.c @@ -83,77 +83,128 @@ void load_settings(char *cmdline_config_path) load_ini_file(config_file); #endif - settings.font = - option_get_string("global", "font", "-fn", font, - "The font dunst should use."); - settings.allow_markup = - option_get_bool("global", "allow_markup", "-markup", allow_markup, - "Allow markups in notifications/formats."); - settings.plain_text = - option_get_bool("global", "plain_text", "-plain", plain_text, - "Treat incoming notifications as plain text."); - settings.format = - option_get_string("global", "format", "-format", format, - "The format template for the notifications"); - settings.sort = - option_get_bool("global", "sort", "-sort", sort, - "Sort notifications by urgency and date?"); - settings.indicate_hidden = - option_get_bool("global", "indicate_hidden", "-indicate_hidden", - indicate_hidden, - "Show how many notificaitons are hidden?"); - settings.word_wrap = - option_get_bool("global", "word_wrap", "-word_wrap", word_wrap, - "Truncating long lines or do word wrap"); + settings.font = option_get_string( + "global", + "font", "-fn", font, + "The font dunst should use." + ); + + settings.allow_markup = option_get_bool( + "global", + "allow_markup", "-markup", allow_markup, + "Allow markups in notifications/formats." + ); + + settings.plain_text = option_get_bool( + "global", + "plain_text", "-plain", plain_text, + "Treat incoming notifications as plain text." + ); + + settings.format = option_get_string( + "global", + "format", "-format", format, + "The format template for the notifications" + ); + + settings.sort = option_get_bool( + "global", + "sort", "-sort", sort, + "Sort notifications by urgency and date?" + ); + + settings.indicate_hidden = option_get_bool( + "global", + "indicate_hidden", "-indicate_hidden", indicate_hidden, + "Show how many notificaitons are hidden?" + ); + + settings.word_wrap = option_get_bool( + "global", + "word_wrap", "-word_wrap", word_wrap, + "Truncating long lines or do word wrap" + ); + + settings.ignore_newline = option_get_bool( + "global", + "ignore_newline", "-ignore_newline", ignore_newline, + "Ignore newline characters in notifications" + ); + + settings.idle_threshold = option_get_int( + "global", + "idle_threshold", "-idle_threshold", idle_threshold, + "Don't timeout notifications if user is longer idle than threshold" + ); + + settings.monitor = option_get_int( + "global", + "monitor", "-mon", monitor, + "On which monitor should the notifications be displayed" + ); - settings.ignore_newline = - option_get_bool("global", "ignore_newline", "-ignore_newline", - ignore_newline, - "Ignore newline characters in notifications"); - settings.idle_threshold = - option_get_int("global", "idle_threshold", "-idle_threshold", - idle_threshold, - "Don't timeout notifications if user is longer idle than threshold"); - settings.monitor = - option_get_int("global", "monitor", "-mon", monitor, - "On which monitor should the notifications be displayed"); { - char *c = option_get_string("global", "follow", "-follow", "", - "Follow mouse, keyboard or none?"); + char *c = option_get_string( + "global", + "follow", "-follow", "", + "Follow mouse, keyboard or none?" + ); + if (strlen(c) > 0) { parse_follow_mode(c); free(c); } } - settings.title = - option_get_string("global", "title", "-t/-title", title, - "Define the title of windows spawned by dunst."); - settings.class = - option_get_string("global", "class", "-c/-class", class, - "Define the class of windows spawned by dunst."); - settings.geom = - option_get_string("global", "geometry", "-geom/-geometry", geom, - "Geometry for the window"); - settings.shrink = - option_get_bool("global", "shrink", "-shrink", - shrink, - "Shrink window if it's smaller than the width"); - settings.line_height = - option_get_int("global", "line_height", "-lh/-line_height", - line_height, - "Add spacing between lines of text"); - settings.notification_height = - option_get_int("global", "notification_height", "-nh/-notification_height", - notification_height, - "Define height of the window"); - settings.bounce_freq = - option_get_double("global", "bounce_freq", "-bounce_freq", - bounce_freq, - "Make long text bounce from side to side"); + + settings.title = option_get_string( + "global", + "title", "-t/-title", title, + "Define the title of windows spawned by dunst." + ); + + settings.class = option_get_string( + "global", + "class", "-c/-class", class, + "Define the class of windows spawned by dunst." + ); + + settings.geom = option_get_string( + "global", + "geometry", "-geom/-geometry", geom, + "Geometry for the window" + ); + + settings.shrink = option_get_bool( + "global", + "shrink", "-shrink", shrink, + "Shrink window if it's smaller than the width" + ); + + settings.line_height = option_get_int( + "global", + "line_height", "-lh/-line_height", line_height, + "Add spacing between lines of text" + ); + + settings.notification_height = option_get_int( + "global", + "notification_height", "-nh/-notification_height", notification_height, + "Define height of the window" + ); + + settings.bounce_freq = option_get_double( + "global", + "bounce_freq", "-bounce_freq", bounce_freq, + "Make long text bounce from side to side" + ); + { - char *c = option_get_string("global", "alignment", - "-align/-alignment", "", - "Align notifications left/center/right"); + char *c = option_get_string( + "global", + "alignment", "-align/-alignment", "", + "Align notifications left/center/right" + ); + if (strlen(c) > 0) { if (strcmp(c, "left") == 0) settings.align = left; @@ -167,44 +218,68 @@ void load_settings(char *cmdline_config_path) free(c); } } - settings.show_age_threshold = - option_get_int("global", "show_age_threshold", - "-show_age_threshold", show_age_threshold, - "When should the age of the notification be displayed?"); - settings.hide_duplicates_count = - option_get_bool("global", "hide_duplicates_count", - "-hide_duplicates_count", false, - "Hide count of the merged notifications with the same content"); - settings.sticky_history = - option_get_bool("global", "sticky_history", "-sticky_history", - sticky_history, - "Don't timeout notifications popped up from history"); - settings.history_length = - option_get_int("global", "history_length", "-history_length", - history_length, - "Max amount of notifications kept in history"); - settings.show_indicators = - option_get_bool("global", "show_indicators", "-show_indicators", - show_indicators, - "Show indicators for actions \"(A)\" and URLs \"(U)\""); - settings.separator_height = - option_get_int("global", "separator_height", - "-sep_height/-separator_height", separator_height, - "height of the separator line"); - settings.padding = - option_get_int("global", "padding", "-padding", padding, - "Padding between text and separator"); - settings.h_padding = - option_get_int("global", "horizontal_padding", - "-horizontal_padding", h_padding, - "horizontal padding"); - settings.transparency = - option_get_int("global", "transparency", "-transparency", - transparency, "Transparency. range 0-100"); + + settings.show_age_threshold = option_get_int( + "global", + "show_age_threshold", "-show_age_threshold", show_age_threshold, + "When should the age of the notification be displayed?" + ); + + settings.hide_duplicates_count = option_get_bool( + "global", + "hide_duplicates_count", "-hide_duplicates_count", false, + "Hide count of the merged notifications with the same content" + ); + + settings.sticky_history = option_get_bool( + "global", + "sticky_history", "-sticky_history", sticky_history, + "Don't timeout notifications popped up from history" + ); + + settings.history_length = option_get_int( + "global", + "history_length", "-history_length", history_length, + "Max amount of notifications kept in history" + ); + + settings.show_indicators = option_get_bool( + "global", + "show_indicators", "-show_indicators", show_indicators, + "Show indicators for actions \"(A)\" and URLs \"(U)\"" + ); + + settings.separator_height = option_get_int( + "global", + "separator_height", "-sep_height/-separator_height", separator_height, + "height of the separator line" + ); + + settings.padding = option_get_int( + "global", + "padding", "-padding", padding, + "Padding between text and separator" + ); + + settings.h_padding = option_get_int( + "global", + "horizontal_padding", "-horizontal_padding", h_padding, + "horizontal padding" + ); + + settings.transparency = option_get_int( + "global", + "transparency", "-transparency", transparency, + "Transparency. range 0-100" + ); + { - char *c = option_get_string("global", "separator_color", - "-sep_color/-separator_color", "", - "Color of the separator line (or 'auto')"); + char *c = option_get_string( + "global", + "separator_color", "-sep_color/-separator_color", "", + "Color of the separator line (or 'auto')" + ); + if (strlen(c) > 0) { if (strcmp(c, "auto") == 0) settings.sep_color = AUTO; @@ -220,27 +295,39 @@ void load_settings(char *cmdline_config_path) } } - settings.stack_duplicates = option_get_bool("global", "stack_duplicates", - "-stack_duplicates", true, "Merge multiple notifications with the same content"); + settings.stack_duplicates = option_get_bool( + "global", + "stack_duplicates", "-stack_duplicates", true, + "Merge multiple notifications with the same content" + ); - settings.startup_notification = - option_get_bool("global", "startup_notification", - "-startup_notification", false, - "print notification on startup"); + settings.startup_notification = option_get_bool( + "global", + "startup_notification", "-startup_notification", false, + "print notification on startup" + ); + + settings.dmenu = option_get_string( + "global", + "dmenu", "-dmenu", dmenu, + "path to dmenu" + ); - settings.dmenu = - option_get_string("global", "dmenu", "-dmenu", dmenu, - "path to dmenu"); settings.dmenu_cmd = string_to_argv(settings.dmenu); - settings.browser = - option_get_string("global", "browser", "-browser", browser, - "path to browser"); + settings.browser = option_get_string( + "global", + "browser", "-browser", browser, + "path to browser" + ); { - char *c = option_get_string("global", "icon_position", - "-icon_position", "off", - "Align icons left/right/off"); + char *c = option_get_string( + "global", + "icon_position", "-icon_position", "off", + "Align icons left/right/off" + ); + if (strlen(c) > 0) { if (strcmp(c, "left") == 0) settings.icon_position = icons_left; @@ -255,95 +342,154 @@ void load_settings(char *cmdline_config_path) } } - settings.max_icon_size = - option_get_int("global", "max_icon_size", "-max_icon_size", max_icon_size, - "Scale larger icons down to this size, set to 0 to disable"); + settings.max_icon_size = option_get_int( + "global", + "max_icon_size", "-max_icon_size", max_icon_size, + "Scale larger icons down to this size, set to 0 to disable" + ); - settings.icon_folders = - option_get_string("global", "icon_folders", "-icon_folders", icon_folders, - "paths to default icons"); + settings.icon_folders = option_get_string( + "global", + "icon_folders", "-icon_folders", icon_folders, + "paths to default icons" + ); - settings.frame_width = - option_get_int("frame", "width", "-frame_width", frame_width, - "Width of frame around window"); + settings.frame_width = option_get_int( + "frame", + "width", "-frame_width", frame_width, + "Width of frame around window" + ); - settings.frame_color = - option_get_string("frame", "color", "-frame_color", frame_color, - "Color of the frame around window"); + settings.frame_color = option_get_string( + "frame", + "color", "-frame_color", frame_color, + "Color of the frame around window" + ); - settings.lowbgcolor = - option_get_string("urgency_low", "background", "-lb", lowbgcolor, - "Background color for notifications with low urgency"); - settings.lowfgcolor = - option_get_string("urgency_low", "foreground", "-lf", lowfgcolor, - "Foreground color for notifications with low urgency"); - settings.lowframecolor = - option_get_string("urgency_low", "frame_color", "-lfr", NULL, - "Frame color for notifications with low urgency"); - 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, - "Background color for notifications with normal urgency"); - settings.normfgcolor = - option_get_string("urgency_normal", "foreground", "-nf", - normfgcolor, - "Foreground color for notifications with normal urgency"); - settings.normframecolor = - option_get_string("urgency_normal", "frame_color", "-nfr", NULL, - "Frame color for notifications with normal urgency"); - 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, - "Background color for notifications with critical urgency"); - settings.critfgcolor = - option_get_string("urgency_critical", "foreground", "-cf", - critfgcolor, - "Foreground color for notifications with ciritical urgency"); - settings.critframecolor = - option_get_string("urgency_critical", "frame_color", "-cfr", NULL, - "Frame color for notifications with critical urgency"); - settings.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.lowbgcolor = option_get_string( + "urgency_low", + "background", "-lb", lowbgcolor, + "Background color for notifications with low urgency" + ); - settings.close_ks.str = - option_get_string("shortcuts", "close", "-key", close_ks.str, - "Shortcut for closing one notification"); - settings.close_all_ks.str = - option_get_string("shortcuts", "close_all", "-all_key", - close_all_ks.str, - "Shortcut for closing all notifications"); - settings.history_ks.str = - option_get_string("shortcuts", "history", "-history_key", - history_ks.str, - "Shortcut to pop the last notification from history"); + settings.lowfgcolor = option_get_string( + "urgency_low", + "foreground", "-lf", lowfgcolor, + "Foreground color for notifications with low urgency" + ); - settings.context_ks.str = - option_get_string("shortcuts", "context", "-context_key", - context_ks.str, "Shortcut for context menu"); + settings.lowframecolor = option_get_string( + "urgency_low", + "frame_color", "-lfr", NULL, + "Frame color for notifications with low urgency" + ); - settings.print_notifications = - cmdline_get_bool("-print", false, - "Print notifications to cmdline (DEBUG)"); + settings.timeouts[LOW] = option_get_int( + "urgency_low", + "timeout", "-lto", timeouts[LOW], + "Timeout for notifications with low urgency" + ); - settings.always_run_script = - option_get_bool("global", "always_run_script", "-always_run_script", true, - "Always run rule-defined scripts, even if the notification is suppressed with format = \"\"."); + 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, + "Background color for notifications with normal urgency" + ); + + settings.normfgcolor = option_get_string( + "urgency_normal", + "foreground", "-nf", normfgcolor, + "Foreground color for notifications with normal urgency" + ); + + settings.normframecolor = option_get_string( + "urgency_normal", + "frame_color", "-nfr", NULL, + "Frame color for notifications with normal urgency" + ); + + 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, + "Background color for notifications with critical urgency" + ); + + settings.critfgcolor = option_get_string( + "urgency_critical", + "foreground", "-cf", critfgcolor, + "Foreground color for notifications with ciritical urgency" + ); + + settings.critframecolor = option_get_string( + "urgency_critical", + "frame_color", "-cfr", NULL, + "Frame color for notifications with critical urgency" + ); + + settings.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, + "Shortcut for closing one notification" + ); + + settings.close_all_ks.str = option_get_string( + "shortcuts", + "close_all", "-all_key", close_all_ks.str, + "Shortcut for closing all notifications" + ); + + settings.history_ks.str = option_get_string( + "shortcuts", + "history", "-history_key", history_ks.str, + "Shortcut to pop the last notification from history" + ); + + settings.context_ks.str = option_get_string( + "shortcuts", + "context", "-context_key", context_ks.str, + "Shortcut for context menu" + ); + + settings.print_notifications = cmdline_get_bool( + "-print", false, + "Print notifications to cmdline (DEBUG)" + ); + + settings.always_run_script = option_get_bool( + "global", + "always_run_script", "-always_run_script", true, + "Always run rule-defined scripts, even if the notification is suppressed with format = \"\"." + ); /* push hardcoded default rules into rules list */ for (int i = 0; i < LENGTH(default_rules); i++) {