Merge pull request #3408 from RedSoxFan/bar-padding

swaybar: adjustable status padding
This commit is contained in:
Drew DeVault 2019-01-13 20:34:13 -05:00 committed by GitHub
commit 9ce4d53e78
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 89 additions and 9 deletions

View file

@ -23,6 +23,8 @@ static struct cmd_handler bar_handlers[] = {
{ "position", bar_cmd_position },
{ "separator_symbol", bar_cmd_separator_symbol },
{ "status_command", bar_cmd_status_command },
{ "status_edge_padding", bar_cmd_status_edge_padding },
{ "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 },

View file

@ -0,0 +1,21 @@
#include <stdlib.h>
#include <string.h>
#include "sway/commands.h"
#include "log.h"
struct cmd_results *bar_cmd_status_edge_padding(int argc, char **argv) {
struct cmd_results *error = NULL;
if ((error = checkarg(argc, "status_edge_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_edge_padding",
"Padding must be a positive integer");
}
config->current_bar->status_edge_padding = padding;
wlr_log(WLR_DEBUG, "Status edge padding on bar %s: %d",
config->current_bar->id, config->current_bar->status_edge_padding);
return cmd_results_new(CMD_SUCCESS, NULL, NULL);
}

View file

@ -0,0 +1,21 @@
#include <stdlib.h>
#include <string.h>
#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);
}

View file

@ -106,6 +106,8 @@ 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;
bar->status_edge_padding = 3;
if (!(bar->mode = strdup("dock"))) {
goto cleanup;
}

View file

@ -660,6 +660,10 @@ 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, "status_edge_padding",
json_object_new_int(bar->status_edge_padding));
json_object_object_add(json, "wrap_scroll",
json_object_new_boolean(bar->wrap_scroll));
json_object_object_add(json, "workspace_buttons",

View file

@ -116,6 +116,8 @@ sway_sources = files(
'commands/bar/position.c',
'commands/bar/separator_symbol.c',
'commands/bar/status_command.c',
'commands/bar/status_edge_padding.c',
'commands/bar/status_padding.c',
'commands/bar/strip_workspace_numbers.c',
'commands/bar/strip_workspace_name.c',
'commands/bar/swaybar_command.c',

View file

@ -92,6 +92,16 @@ Sway allows configuring swaybar in the sway configuration file.
*modifier* <Modifier>|none
Specifies the modifier key that shows a hidden bar. Default is _Mod4_.
*status\_padding* <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.
*status\_edge\_padding* <padding>
Sets the padding that is used when the status line is at the right edge of
the bar. This value will be multiplied by the output scale. The default is
_3_.
## TRAY
Swaybar provides a system tray where third-party applications may place icons.