From c0f92cb2fb94ac87396da99646f9219e54b36860 Mon Sep 17 00:00:00 2001 From: Brian Ashworth Date: Thu, 10 Jan 2019 23:43:45 -0500 Subject: swaybar: add status_padding command Adds the bar subcommand `status_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. --- sway/commands/bar.c | 1 + sway/commands/bar/status_padding.c | 21 +++++++++++++++++++++ sway/config/bar.c | 1 + sway/ipc-json.c | 2 ++ sway/meson.build | 1 + sway/sway-bar.5.scd | 5 +++++ 6 files changed, 31 insertions(+) create mode 100644 sway/commands/bar/status_padding.c (limited to 'sway') diff --git a/sway/commands/bar.c b/sway/commands/bar.c index 507ee10a..81d84331 100644 --- a/sway/commands/bar.c +++ b/sway/commands/bar.c @@ -23,6 +23,7 @@ static struct cmd_handler bar_handlers[] = { { "position", bar_cmd_position }, { "separator_symbol", bar_cmd_separator_symbol }, { "status_command", bar_cmd_status_command }, + { "status_padding", bar_cmd_status_padding }, { "strip_workspace_name", bar_cmd_strip_workspace_name }, { "strip_workspace_numbers", bar_cmd_strip_workspace_numbers }, { "tray_bindsym", bar_cmd_tray_bindsym }, diff --git a/sway/commands/bar/status_padding.c b/sway/commands/bar/status_padding.c new file mode 100644 index 00000000..13b8eb6b --- /dev/null +++ b/sway/commands/bar/status_padding.c @@ -0,0 +1,21 @@ +#include +#include +#include "sway/commands.h" +#include "log.h" + +struct cmd_results *bar_cmd_status_padding(int argc, char **argv) { + struct cmd_results *error = NULL; + if ((error = checkarg(argc, "status_padding", EXPECTED_EQUAL_TO, 1))) { + return error; + } + char *end; + int padding = strtol(argv[0], &end, 10); + if (strlen(end) || padding < 0) { + return cmd_results_new(CMD_INVALID, "status_padding", + "Padding must be a positive integer"); + } + config->current_bar->status_padding = padding; + wlr_log(WLR_DEBUG, "Status padding on bar %s: %d", + config->current_bar->id, config->current_bar->status_padding); + return cmd_results_new(CMD_SUCCESS, NULL, NULL); +} diff --git a/sway/config/bar.c b/sway/config/bar.c index 670219f1..ebe81cab 100644 --- a/sway/config/bar.c +++ b/sway/config/bar.c @@ -106,6 +106,7 @@ struct bar_config *default_bar_config(void) { bar->verbose = false; bar->pid = 0; bar->modifier = get_modifier_mask_by_name("Mod4"); + bar->status_padding = 1; if (!(bar->mode = strdup("dock"))) { goto cleanup; } diff --git a/sway/ipc-json.c b/sway/ipc-json.c index 53e0e335..a21fb4f6 100644 --- a/sway/ipc-json.c +++ b/sway/ipc-json.c @@ -660,6 +660,8 @@ json_object *ipc_json_describe_bar_config(struct bar_config *bar) { } json_object_object_add(json, "bar_height", json_object_new_int(bar->height)); + json_object_object_add(json, "status_padding", + json_object_new_int(bar->status_padding)); json_object_object_add(json, "wrap_scroll", json_object_new_boolean(bar->wrap_scroll)); json_object_object_add(json, "workspace_buttons", diff --git a/sway/meson.build b/sway/meson.build index 98676ce0..1f7ae060 100644 --- a/sway/meson.build +++ b/sway/meson.build @@ -116,6 +116,7 @@ sway_sources = files( 'commands/bar/position.c', 'commands/bar/separator_symbol.c', 'commands/bar/status_command.c', + 'commands/bar/status_padding.c', 'commands/bar/strip_workspace_numbers.c', 'commands/bar/strip_workspace_name.c', 'commands/bar/swaybar_command.c', diff --git a/sway/sway-bar.5.scd b/sway/sway-bar.5.scd index 2357591d..4448e3e8 100644 --- a/sway/sway-bar.5.scd +++ b/sway/sway-bar.5.scd @@ -92,6 +92,11 @@ Sway allows configuring swaybar in the sway configuration file. *modifier* |none Specifies the modifier key that shows a hidden bar. Default is _Mod4_. +*status\_padding* + Sets the vertical padding that is used for the status line. The default is + _1_. If _padding_ is _0_, blocks will be able to take up the full height of + the bar. This value will be multiplied by the output scale. + ## TRAY Swaybar provides a system tray where third-party applications may place icons. -- cgit v1.2.3-54-g00ecf