aboutsummaryrefslogtreecommitdiffstats
path: root/swaybar/main.c
diff options
context:
space:
mode:
authorLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2016-01-03 22:38:54 +0100
committerLibravatar Mikkel Oscar Lyderik <mikkeloscar@gmail.com>2016-01-03 22:40:43 +0100
commit576181ec099cbe9cb085c9bea1856518d2784a50 (patch)
treea95207beaa0699178211ca14426ba39aafb619f9 /swaybar/main.c
parentMerge pull request #428 from mikkeloscar/bar-mode-indicator (diff)
downloadsway-576181ec099cbe9cb085c9bea1856518d2784a50.tar.gz
sway-576181ec099cbe9cb085c9bea1856518d2784a50.tar.zst
sway-576181ec099cbe9cb085c9bea1856518d2784a50.zip
swaybar: Implement workspace_buttons yes|no
Diffstat (limited to 'swaybar/main.c')
-rw-r--r--swaybar/main.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/swaybar/main.c b/swaybar/main.c
index 18283afa..e96c9df0 100644
--- a/swaybar/main.c
+++ b/swaybar/main.c
@@ -79,6 +79,7 @@ char *separator_symbol = NULL;
79char *mode = NULL; 79char *mode = NULL;
80bool binding_mode_indicator = true; 80bool binding_mode_indicator = true;
81bool strip_workspace_numbers = false; 81bool strip_workspace_numbers = false;
82bool workspace_buttons = true;
82typedef enum {UNDEF, TEXT, I3BAR} command_protocol; 83typedef enum {UNDEF, TEXT, I3BAR} command_protocol;
83command_protocol protocol = UNDEF; 84command_protocol protocol = UNDEF;
84 85
@@ -292,7 +293,7 @@ void bar_ipc_init(int outputi, const char *bar_id) {
292 293
293 json_object *bar_config = json_tokener_parse(res); 294 json_object *bar_config = json_tokener_parse(res);
294 json_object *tray_output, *mode, *hidden_state, *position, *_status_command; 295 json_object *tray_output, *mode, *hidden_state, *position, *_status_command;
295 json_object *font, *bar_height, *workspace_buttons, *_strip_workspace_numbers; 296 json_object *font, *bar_height, *_workspace_buttons, *_strip_workspace_numbers;
296 json_object *_binding_mode_indicator, *verbose, *_colors, *sep_symbol; 297 json_object *_binding_mode_indicator, *verbose, *_colors, *sep_symbol;
297 json_object_object_get_ex(bar_config, "tray_output", &tray_output); 298 json_object_object_get_ex(bar_config, "tray_output", &tray_output);
298 json_object_object_get_ex(bar_config, "mode", &mode); 299 json_object_object_get_ex(bar_config, "mode", &mode);
@@ -301,7 +302,7 @@ void bar_ipc_init(int outputi, const char *bar_id) {
301 json_object_object_get_ex(bar_config, "status_command", &_status_command); 302 json_object_object_get_ex(bar_config, "status_command", &_status_command);
302 json_object_object_get_ex(bar_config, "font", &font); 303 json_object_object_get_ex(bar_config, "font", &font);
303 json_object_object_get_ex(bar_config, "bar_height", &bar_height); 304 json_object_object_get_ex(bar_config, "bar_height", &bar_height);
304 json_object_object_get_ex(bar_config, "workspace_buttons", &workspace_buttons); 305 json_object_object_get_ex(bar_config, "workspace_buttons", &_workspace_buttons);
305 json_object_object_get_ex(bar_config, "strip_workspace_numbers", &_strip_workspace_numbers); 306 json_object_object_get_ex(bar_config, "strip_workspace_numbers", &_strip_workspace_numbers);
306 json_object_object_get_ex(bar_config, "binding_mode_indicator", &_binding_mode_indicator); 307 json_object_object_get_ex(bar_config, "binding_mode_indicator", &_binding_mode_indicator);
307 json_object_object_get_ex(bar_config, "verbose", &verbose); 308 json_object_object_get_ex(bar_config, "verbose", &verbose);
@@ -334,6 +335,10 @@ void bar_ipc_init(int outputi, const char *bar_id) {
334 binding_mode_indicator = json_object_get_boolean(_binding_mode_indicator); 335 binding_mode_indicator = json_object_get_boolean(_binding_mode_indicator);
335 } 336 }
336 337
338 if (_workspace_buttons) {
339 workspace_buttons = json_object_get_boolean(_workspace_buttons);
340 }
341
337 if (bar_height) { 342 if (bar_height) {
338 int width, height; 343 int width, height;
339 get_text_size(window, &width, &height, "Test string for measuring purposes"); 344 get_text_size(window, &width, &height, "Test string for measuring purposes");
@@ -696,12 +701,15 @@ void render() {
696 } 701 }
697 } 702 }
698 703
699 // Workspaces
700 cairo_set_line_width(window->cairo, 1.0); 704 cairo_set_line_width(window->cairo, 1.0);
701 double x = 0.5; 705 double x = 0.5;
702 for (i = 0; i < workspaces->length; ++i) { 706
703 struct workspace *ws = workspaces->items[i]; 707 // Workspaces
704 render_workspace_button(ws, &x); 708 if (workspace_buttons) {
709 for (i = 0; i < workspaces->length; ++i) {
710 struct workspace *ws = workspaces->items[i];
711 render_workspace_button(ws, &x);
712 }
705 } 713 }
706 714
707 // binding mode indicator 715 // binding mode indicator