more options for separator color

This commit is contained in:
Sascha Kruse 2012-12-22 17:12:27 +01:00
parent 3175b041b1
commit f2075a3409
4 changed files with 28 additions and 8 deletions

View File

@ -27,7 +27,8 @@ int line_height = 0; /* if line height < font height, it will be raised to fon
int separator_height = 2; /* height of the separator line between two notifications */
int padding = 0;
int h_padding = 0; /* horizontal padding */
enum separator_color sep_color = AUTO; /* AUTO or FOREGROUND */
enum separator_color sep_color = AUTO; /* AUTO, FOREGROUND, FRAME, CUSTOM */
char *sep_custom_color_str = NULL; /* custom color if sep_color is set to CUSTOM */
int frame_width = 0;
char *frame_color = "#888888";

24
dunst.c
View File

@ -77,6 +77,7 @@ static dimension_t window_dim;
static bool pause_display = false;
static char **dmenu_cmd;
static unsigned long framec;
static unsigned long sep_custom_col;
static r_line_cache line_cache;
bool dunst_grab_errored = false;
@ -848,8 +849,14 @@ void draw_win(void)
double color;
if (sep_color == AUTO)
color = calculate_foreground_color(line.colors->BG);
else
else if (sep_color == FOREGROUND)
color = line.colors->FG;
else if (sep_color == FRAME)
color = framec;
else {
/* CUSTOM */
color = sep_custom_col;
}
drawrect(dc, 0, 0, width + (2*h_padding), separator_height, true, color);
dc->y += separator_height;
}
@ -1463,6 +1470,12 @@ void setup(void)
framec = getcolor(dc, frame_color);
if (sep_color == CUSTOM) {
sep_custom_col = getcolor(dc, sep_custom_color_str);
} else {
sep_custom_col = 0;
}
/* parse and set geometry and monitor position */
if (geom[0] == '-') {
geometry.negative_width = true;
@ -1674,9 +1687,12 @@ void load_options(char *cmdline_config_path)
sep_color = AUTO;
else if (strcmp(c, "foreground") == 0)
sep_color = FOREGROUND;
else
fprintf(stderr,
"Warning: Unknown separator color\n");
else if (strcmp(c, "frame") == 0)
sep_color = FRAME;
else {
sep_color = CUSTOM;
sep_custom_color_str = strdup(c);
}
free(c);
}
}

View File

@ -18,7 +18,7 @@
#define ColBG 0
enum alignment { left, center, right };
enum separator_color { FOREGROUND, AUTO };
enum separator_color { FOREGROUND, AUTO, FRAME, CUSTOM };
enum follow_mode { FOLLOW_NONE, FOLLOW_MOUSE, FOLLOW_KEYBOARD };
typedef struct _dimension_t {

View File

@ -91,8 +91,11 @@
horizontal_padding = 10
# Define a color for the separator.
# This can either be "auto" or "foreground". "Auto" tries to find a color
# that fits nicely to the background color.
# possible values are:
# * auto: dunst tries to find a color fitting to the background
# * foreground: use the same color as the foreground
# * frame: use the same color as the frame.
# * anything else will be interpreted as a X color
separator_color = auto
# print a notification on startup