mirror of
https://github.com/swaywm/sway.git
synced 2025-11-26 06:59:59 -05:00
Add support for workspace_min_width bar option.
This commit is contained in:
parent
657587964e
commit
989123a2a5
13 changed files with 74 additions and 3 deletions
|
|
@ -36,6 +36,7 @@ static struct cmd_handler bar_handlers[] = {
|
|||
{ "unbindcode", bar_cmd_unbindcode },
|
||||
{ "unbindsym", bar_cmd_unbindsym },
|
||||
{ "workspace_buttons", bar_cmd_workspace_buttons },
|
||||
{ "workspace_min_width", bar_cmd_workspace_min_width },
|
||||
{ "wrap_scroll", bar_cmd_wrap_scroll },
|
||||
};
|
||||
|
||||
|
|
|
|||
33
sway/commands/bar/workspace_min_width.c
Normal file
33
sway/commands/bar/workspace_min_width.c
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
#include <stdlib.h>
|
||||
#include <strings.h>
|
||||
#include "config.h"
|
||||
#include "sway/commands.h"
|
||||
#include "sway/config.h"
|
||||
#include "log.h"
|
||||
|
||||
struct cmd_results *bar_cmd_workspace_min_width(int argc, char **argv) {
|
||||
struct cmd_results *error = NULL;
|
||||
if ((error = checkarg(argc, "workspace_min_width", EXPECTED_AT_LEAST, 1))) {
|
||||
return error;
|
||||
}
|
||||
|
||||
struct bar_config *bar = config->current_bar;
|
||||
|
||||
char *end;
|
||||
int min_width = strtol(argv[0], &end, 10);
|
||||
if (min_width < 0 || (*end != '\0' && strcasecmp(end, "px") != 0)) {
|
||||
return cmd_results_new(CMD_INVALID,
|
||||
"[Bar %s] Invalid minimum workspace button width value: %s",
|
||||
bar->id, argv[0]);
|
||||
}
|
||||
|
||||
if (argc == 2 && strcasecmp(argv[1], "px") != 0) {
|
||||
return cmd_results_new(CMD_INVALID,
|
||||
"Expected 'workspace_min_width <px> [px]'");
|
||||
}
|
||||
|
||||
sway_log(SWAY_DEBUG, "[Bar %s] Setting minimum workspace button width to %d",
|
||||
bar->id, min_width);
|
||||
config->current_bar->workspace_min_width = min_width;
|
||||
return cmd_results_new(CMD_SUCCESS, NULL);
|
||||
}
|
||||
|
|
@ -105,6 +105,7 @@ struct bar_config *default_bar_config(void) {
|
|||
bar->modifier = get_modifier_mask_by_name("Mod4");
|
||||
bar->status_padding = 1;
|
||||
bar->status_edge_padding = 3;
|
||||
bar->workspace_min_width = 0;
|
||||
if (!(bar->mode = strdup("dock"))) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1102,6 +1102,8 @@ json_object *ipc_json_describe_bar_config(struct bar_config *bar) {
|
|||
json_object_new_boolean(bar->strip_workspace_numbers));
|
||||
json_object_object_add(json, "strip_workspace_name",
|
||||
json_object_new_boolean(bar->strip_workspace_name));
|
||||
json_object_object_add(json, "workspace_min_width",
|
||||
json_object_new_int(bar->workspace_min_width));
|
||||
json_object_object_add(json, "binding_mode_indicator",
|
||||
json_object_new_boolean(bar->binding_mode_indicator));
|
||||
json_object_object_add(json, "verbose",
|
||||
|
|
|
|||
|
|
@ -144,6 +144,7 @@ sway_sources = files(
|
|||
'commands/bar/tray_output.c',
|
||||
'commands/bar/tray_padding.c',
|
||||
'commands/bar/workspace_buttons.c',
|
||||
'commands/bar/workspace_min_width.c',
|
||||
'commands/bar/wrap_scroll.c',
|
||||
|
||||
'commands/input/accel_profile.c',
|
||||
|
|
|
|||
|
|
@ -138,6 +138,11 @@ runtime.
|
|||
*workspace_buttons* yes|no
|
||||
Enables or disables workspace buttons on the bar. Default is _yes_.
|
||||
|
||||
*workspace_min_width* <px> [px]
|
||||
Specifies the minimum width for the workspace buttons on the bar. Default is _0_.
|
||||
|
||||
This setting also applies to the current binding mode indicator.
|
||||
|
||||
## TRAY
|
||||
|
||||
Swaybar provides a system tray where third-party applications may place icons.
|
||||
|
|
|
|||
|
|
@ -829,6 +829,9 @@ their value mean can be found in *sway-bar*(5):
|
|||
|- workspace_buttons
|
||||
: boolean
|
||||
: Whether to display the workspace buttons on the bar
|
||||
|- workspace_min_width
|
||||
: integer
|
||||
: Minimum width in px for the workspace buttons on the bar
|
||||
|- binding_mode_indicator
|
||||
: boolean
|
||||
: Whether to display the current binding mode on the bar
|
||||
|
|
@ -931,6 +934,7 @@ containing the _#RRGGBBAA_ representation of the color:
|
|||
"status_padding": 1,
|
||||
"status_edge_padding": 3,
|
||||
"workspace_buttons": true,
|
||||
"workspace_min_width": 0,
|
||||
"binding_mode_indicator": true,
|
||||
"verbose": false,
|
||||
"pango_markup": false,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue