diff options
author | Brian Ashworth <bosrsf04@gmail.com> | 2019-01-10 23:43:45 -0500 |
---|---|---|
committer | Brian Ashworth <bosrsf04@gmail.com> | 2019-01-11 00:07:58 -0500 |
commit | c0f92cb2fb94ac87396da99646f9219e54b36860 (patch) | |
tree | b03bd387cc1226031230ad5503dcbf7025128e02 /swaybar | |
parent | swaylock: Add caps lock state to indicator (diff) | |
download | sway-c0f92cb2fb94ac87396da99646f9219e54b36860.tar.gz sway-c0f92cb2fb94ac87396da99646f9219e54b36860.tar.zst sway-c0f92cb2fb94ac87396da99646f9219e54b36860.zip |
swaybar: add status_padding command
Adds the bar subcommand `status_padding <padding>` which allows setting
the padding used for swaybar. If `status_padding` is set to `0`, blocks
will be able to take up the full height of the bar.
Diffstat (limited to 'swaybar')
-rw-r--r-- | swaybar/config.c | 1 | ||||
-rw-r--r-- | swaybar/ipc.c | 6 | ||||
-rw-r--r-- | swaybar/render.c | 11 |
3 files changed, 12 insertions, 6 deletions
diff --git a/swaybar/config.c b/swaybar/config.c index 9cafe061..86a76a7f 100644 --- a/swaybar/config.c +++ b/swaybar/config.c | |||
@@ -37,6 +37,7 @@ struct swaybar_config *init_config(void) { | |||
37 | config->workspace_buttons = true; | 37 | config->workspace_buttons = true; |
38 | config->bindings = create_list(); | 38 | config->bindings = create_list(); |
39 | wl_list_init(&config->outputs); | 39 | wl_list_init(&config->outputs); |
40 | config->status_padding = 1; | ||
40 | 41 | ||
41 | /* height */ | 42 | /* height */ |
42 | config->height = 0; | 43 | config->height = 0; |
diff --git a/swaybar/ipc.c b/swaybar/ipc.c index 8e7a542e..77e1b94e 100644 --- a/swaybar/ipc.c +++ b/swaybar/ipc.c | |||
@@ -157,7 +157,7 @@ static bool ipc_parse_config( | |||
157 | json_object *font, *gaps, *bar_height, *wrap_scroll, *workspace_buttons; | 157 | json_object *font, *gaps, *bar_height, *wrap_scroll, *workspace_buttons; |
158 | json_object *strip_workspace_numbers, *strip_workspace_name; | 158 | json_object *strip_workspace_numbers, *strip_workspace_name; |
159 | json_object *binding_mode_indicator, *verbose, *colors, *sep_symbol; | 159 | json_object *binding_mode_indicator, *verbose, *colors, *sep_symbol; |
160 | json_object *outputs, *bindings; | 160 | json_object *outputs, *bindings, *status_padding; |
161 | json_object_object_get_ex(bar_config, "mode", &mode); | 161 | json_object_object_get_ex(bar_config, "mode", &mode); |
162 | json_object_object_get_ex(bar_config, "hidden_state", &hidden_state); | 162 | json_object_object_get_ex(bar_config, "hidden_state", &hidden_state); |
163 | json_object_object_get_ex(bar_config, "position", &position); | 163 | json_object_object_get_ex(bar_config, "position", &position); |
@@ -176,6 +176,7 @@ static bool ipc_parse_config( | |||
176 | json_object_object_get_ex(bar_config, "outputs", &outputs); | 176 | json_object_object_get_ex(bar_config, "outputs", &outputs); |
177 | json_object_object_get_ex(bar_config, "pango_markup", &markup); | 177 | json_object_object_get_ex(bar_config, "pango_markup", &markup); |
178 | json_object_object_get_ex(bar_config, "bindings", &bindings); | 178 | json_object_object_get_ex(bar_config, "bindings", &bindings); |
179 | json_object_object_get_ex(bar_config, "status_padding", &status_padding); | ||
179 | if (status_command) { | 180 | if (status_command) { |
180 | free(config->status_command); | 181 | free(config->status_command); |
181 | config->status_command = strdup(json_object_get_string(status_command)); | 182 | config->status_command = strdup(json_object_get_string(status_command)); |
@@ -209,6 +210,9 @@ static bool ipc_parse_config( | |||
209 | if (bar_height) { | 210 | if (bar_height) { |
210 | config->height = json_object_get_int(bar_height); | 211 | config->height = json_object_get_int(bar_height); |
211 | } | 212 | } |
213 | if (status_padding) { | ||
214 | config->status_padding = json_object_get_int(status_padding); | ||
215 | } | ||
212 | if (gaps) { | 216 | if (gaps) { |
213 | json_object *top = json_object_object_get(gaps, "top"); | 217 | json_object *top = json_object_object_get(gaps, "top"); |
214 | if (top) { | 218 | if (top) { |
diff --git a/swaybar/render.c b/swaybar/render.c index 7cbcea07..edc97e77 100644 --- a/swaybar/render.c +++ b/swaybar/render.c | |||
@@ -35,7 +35,8 @@ static uint32_t render_status_line_error(cairo_t *cairo, | |||
35 | cairo_set_source_u32(cairo, 0xFF0000FF); | 35 | cairo_set_source_u32(cairo, 0xFF0000FF); |
36 | 36 | ||
37 | int margin = 3 * output->scale; | 37 | int margin = 3 * output->scale; |
38 | int ws_vertical_padding = WS_VERTICAL_PADDING * output->scale; | 38 | double ws_vertical_padding = |
39 | output->bar->config->status_padding * output->scale; | ||
39 | 40 | ||
40 | char *font = output->bar->config->font; | 41 | char *font = output->bar->config->font; |
41 | int text_width, text_height; | 42 | int text_width, text_height; |
@@ -71,7 +72,7 @@ static uint32_t render_status_line_text(cairo_t *cairo, | |||
71 | get_text_size(cairo, config->font, &text_width, &text_height, NULL, | 72 | get_text_size(cairo, config->font, &text_width, &text_height, NULL, |
72 | output->scale, config->pango_markup, "%s", text); | 73 | output->scale, config->pango_markup, "%s", text); |
73 | 74 | ||
74 | int ws_vertical_padding = WS_VERTICAL_PADDING * output->scale; | 75 | double ws_vertical_padding = config->status_padding * output->scale; |
75 | int margin = 3 * output->scale; | 76 | int margin = 3 * output->scale; |
76 | 77 | ||
77 | uint32_t ideal_height = text_height + ws_vertical_padding * 2; | 78 | uint32_t ideal_height = text_height + ws_vertical_padding * 2; |
@@ -153,7 +154,7 @@ static uint32_t render_status_block(cairo_t *cairo, | |||
153 | output->scale, block->markup, "%s", block->full_text); | 154 | output->scale, block->markup, "%s", block->full_text); |
154 | 155 | ||
155 | int margin = 3 * output->scale; | 156 | int margin = 3 * output->scale; |
156 | double ws_vertical_padding = WS_VERTICAL_PADDING * 2 * output->scale; | 157 | double ws_vertical_padding = config->status_padding * output->scale; |
157 | 158 | ||
158 | int width = text_width; | 159 | int width = text_width; |
159 | if (width < block->min_width) { | 160 | if (width < block->min_width) { |
@@ -212,8 +213,8 @@ static uint32_t render_status_block(cairo_t *cairo, | |||
212 | } | 213 | } |
213 | 214 | ||
214 | double x_pos = *x; | 215 | double x_pos = *x; |
215 | double y_pos = WS_VERTICAL_PADDING * output->scale; | 216 | double y_pos = ws_vertical_padding; |
216 | double render_height = height - ws_vertical_padding + output->scale; | 217 | double render_height = height - ws_vertical_padding * 2; |
217 | 218 | ||
218 | uint32_t bg_color = block->urgent | 219 | uint32_t bg_color = block->urgent |
219 | ? config->colors.urgent_workspace.background : block->background; | 220 | ? config->colors.urgent_workspace.background : block->background; |