mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-06-19 14:33:16 -04:00
opt: tab_bar_decorate and jump_label_decorate config separate
This commit is contained in:
parent
46f2dd293b
commit
75e88f0faf
9 changed files with 292 additions and 166 deletions
|
|
@ -388,7 +388,8 @@ typedef struct {
|
|||
|
||||
struct xkb_context *ctx;
|
||||
struct xkb_keymap *keymap;
|
||||
TextDrawData textdata;
|
||||
DecorateDrawData jumplabeldata;
|
||||
DecorateDrawData tabdata;
|
||||
} Config;
|
||||
|
||||
typedef int32_t (*FuncType)(const Arg *);
|
||||
|
|
@ -1707,76 +1708,146 @@ bool parse_option(Config *config, char *key, char *value) {
|
|||
config->cursor_size = atoi(value);
|
||||
} else if (strcmp(key, "cursor_theme") == 0) {
|
||||
config->cursor_theme = strdup(value);
|
||||
} else if (strcmp(key, "text_decorate_font_desc") == 0) {
|
||||
config->textdata.font_desc = strdup(value);
|
||||
} else if (strcmp(key, "text_decorate_fg_color") == 0) {
|
||||
} else if (strcmp(key, "tab_bar_decorate_font_desc") == 0) {
|
||||
config->tabdata.font_desc = strdup(value);
|
||||
} else if (strcmp(key, "tab_bar_decorate_fg_color") == 0) {
|
||||
int64_t color = parse_color(value);
|
||||
if (color == -1) {
|
||||
fprintf(stderr,
|
||||
"\033[1m\033[31m[ERROR]:\033[33m Invalid "
|
||||
"text_decorate_fg_color "
|
||||
"tab_bar_decorate_fg_color "
|
||||
"format: %s\n",
|
||||
value);
|
||||
return false;
|
||||
} else {
|
||||
convert_hex_to_rgba(config->textdata.fg_color, color);
|
||||
convert_hex_to_rgba(config->tabdata.fg_color, color);
|
||||
}
|
||||
} else if (strcmp(key, "text_decorate_bg_color") == 0) {
|
||||
} else if (strcmp(key, "tab_bar_decorate_bg_color") == 0) {
|
||||
int64_t color = parse_color(value);
|
||||
if (color == -1) {
|
||||
fprintf(stderr,
|
||||
"\033[1m\033[31m[ERROR]:\033[33m Invalid "
|
||||
"text_decorate_bg_color "
|
||||
"tab_bar_decorate_bg_color "
|
||||
"format: %s\n",
|
||||
value);
|
||||
return false;
|
||||
} else {
|
||||
convert_hex_to_rgba(config->textdata.bg_color, color);
|
||||
convert_hex_to_rgba(config->tabdata.bg_color, color);
|
||||
}
|
||||
} else if (strcmp(key, "text_decorate_focus_fg_color") == 0) {
|
||||
} else if (strcmp(key, "tab_bar_decorate_focus_fg_color") == 0) {
|
||||
int64_t color = parse_color(value);
|
||||
if (color == -1) {
|
||||
fprintf(stderr,
|
||||
"\033[1m\033[31m[ERROR]:\033[33m Invalid "
|
||||
"text_decorate_focus_fg_color "
|
||||
"tab_bar_decorate_focus_fg_color "
|
||||
"format: %s\n",
|
||||
value);
|
||||
return false;
|
||||
} else {
|
||||
convert_hex_to_rgba(config->textdata.focus_fg_color, color);
|
||||
convert_hex_to_rgba(config->tabdata.focus_fg_color, color);
|
||||
}
|
||||
} else if (strcmp(key, "text_decorate_focus_bg_color") == 0) {
|
||||
} else if (strcmp(key, "tab_bar_decorate_focus_bg_color") == 0) {
|
||||
int64_t color = parse_color(value);
|
||||
if (color == -1) {
|
||||
fprintf(stderr,
|
||||
"\033[1m\033[31m[ERROR]:\033[33m Invalid "
|
||||
"text_decorate_focus_bg_color "
|
||||
"tab_bar_decorate_focus_bg_color "
|
||||
"format: %s\n",
|
||||
value);
|
||||
return false;
|
||||
} else {
|
||||
convert_hex_to_rgba(config->textdata.focus_bg_color, color);
|
||||
convert_hex_to_rgba(config->tabdata.focus_bg_color, color);
|
||||
}
|
||||
} else if (strcmp(key, "text_decorate_border_color") == 0) {
|
||||
} else if (strcmp(key, "tab_bar_decorate_border_color") == 0) {
|
||||
int64_t color = parse_color(value);
|
||||
if (color == -1) {
|
||||
fprintf(stderr,
|
||||
"\033[1m\033[31m[ERROR]:\033[33m Invalid "
|
||||
"text_decorate_border_color "
|
||||
"tab_bar_decorate_border_color "
|
||||
"format: %s\n",
|
||||
value);
|
||||
return false;
|
||||
} else {
|
||||
convert_hex_to_rgba(config->textdata.border_color, color);
|
||||
convert_hex_to_rgba(config->tabdata.border_color, color);
|
||||
}
|
||||
} else if (strcmp(key, "text_decorate_border_width") == 0) {
|
||||
config->textdata.border_width = CLAMP_INT(atoi(value), 0, 100);
|
||||
} else if (strcmp(key, "text_decorate_corner_radius") == 0) {
|
||||
config->textdata.corner_radius = CLAMP_INT(atoi(value), 0, 100);
|
||||
} else if (strcmp(key, "text_decorate_padding_x") == 0) {
|
||||
config->textdata.padding_x = CLAMP_INT(atoi(value), 0, 100);
|
||||
} else if (strcmp(key, "text_decorate_padding_y") == 0) {
|
||||
config->textdata.padding_y = CLAMP_INT(atoi(value), 0, 100);
|
||||
} else if (strcmp(key, "tab_bar_decorate_border_width") == 0) {
|
||||
config->tabdata.border_width = CLAMP_INT(atoi(value), 0, 100);
|
||||
} else if (strcmp(key, "tab_bar_decorate_corner_radius") == 0) {
|
||||
config->tabdata.corner_radius = CLAMP_INT(atoi(value), 0, 100);
|
||||
} else if (strcmp(key, "tab_bar_decorate_padding_x") == 0) {
|
||||
config->tabdata.padding_x = CLAMP_INT(atoi(value), 0, 100);
|
||||
} else if (strcmp(key, "tab_bar_decorate_padding_y") == 0) {
|
||||
config->tabdata.padding_y = CLAMP_INT(atoi(value), 0, 100);
|
||||
} else if (strcmp(key, "jump_label_decorate_font_desc") == 0) {
|
||||
config->jumplabeldata.font_desc = strdup(value);
|
||||
} else if (strcmp(key, "jump_label_decorate_fg_color") == 0) {
|
||||
int64_t color = parse_color(value);
|
||||
if (color == -1) {
|
||||
fprintf(stderr,
|
||||
"\033[1m\033[31m[ERROR]:\033[33m Invalid "
|
||||
"jump_label_decorate_fg_color "
|
||||
"format: %s\n",
|
||||
value);
|
||||
return false;
|
||||
} else {
|
||||
convert_hex_to_rgba(config->jumplabeldata.fg_color, color);
|
||||
}
|
||||
} else if (strcmp(key, "jump_label_decorate_bg_color") == 0) {
|
||||
int64_t color = parse_color(value);
|
||||
if (color == -1) {
|
||||
fprintf(stderr,
|
||||
"\033[1m\033[31m[ERROR]:\033[33m Invalid "
|
||||
"jump_label_decorate_bg_color "
|
||||
"format: %s\n",
|
||||
value);
|
||||
return false;
|
||||
} else {
|
||||
convert_hex_to_rgba(config->jumplabeldata.bg_color, color);
|
||||
}
|
||||
} else if (strcmp(key, "jump_label_decorate_focus_fg_color") == 0) {
|
||||
int64_t color = parse_color(value);
|
||||
if (color == -1) {
|
||||
fprintf(stderr,
|
||||
"\033[1m\033[31m[ERROR]:\033[33m Invalid "
|
||||
"jump_label_decorate_focus_fg_color "
|
||||
"format: %s\n",
|
||||
value);
|
||||
return false;
|
||||
} else {
|
||||
convert_hex_to_rgba(config->jumplabeldata.focus_fg_color, color);
|
||||
}
|
||||
} else if (strcmp(key, "jump_label_decorate_focus_bg_color") == 0) {
|
||||
int64_t color = parse_color(value);
|
||||
if (color == -1) {
|
||||
fprintf(stderr,
|
||||
"\033[1m\033[31m[ERROR]:\033[33m Invalid "
|
||||
"jump_label_decorate_focus_bg_color "
|
||||
"format: %s\n",
|
||||
value);
|
||||
return false;
|
||||
} else {
|
||||
convert_hex_to_rgba(config->jumplabeldata.focus_bg_color, color);
|
||||
}
|
||||
} else if (strcmp(key, "jump_label_decorate_border_color") == 0) {
|
||||
int64_t color = parse_color(value);
|
||||
if (color == -1) {
|
||||
fprintf(stderr,
|
||||
"\033[1m\033[31m[ERROR]:\033[33m Invalid "
|
||||
"jump_label_decorate_border_color "
|
||||
"format: %s\n",
|
||||
value);
|
||||
return false;
|
||||
} else {
|
||||
convert_hex_to_rgba(config->jumplabeldata.border_color, color);
|
||||
}
|
||||
} else if (strcmp(key, "jump_label_decorate_border_width") == 0) {
|
||||
config->jumplabeldata.border_width = CLAMP_INT(atoi(value), 0, 100);
|
||||
} else if (strcmp(key, "jump_label_decorate_corner_radius") == 0) {
|
||||
config->jumplabeldata.corner_radius = CLAMP_INT(atoi(value), 0, 100);
|
||||
} else if (strcmp(key, "jump_label_decorate_padding_x") == 0) {
|
||||
config->jumplabeldata.padding_x = CLAMP_INT(atoi(value), 0, 100);
|
||||
} else if (strcmp(key, "jump_label_decorate_padding_y") == 0) {
|
||||
config->jumplabeldata.padding_y = CLAMP_INT(atoi(value), 0, 100);
|
||||
} else if (strcmp(key, "disable_while_typing") == 0) {
|
||||
config->disable_while_typing = atoi(value);
|
||||
} else if (strcmp(key, "left_handed") == 0) {
|
||||
|
|
@ -3238,9 +3309,14 @@ void free_config(void) {
|
|||
config.cursor_theme = NULL;
|
||||
}
|
||||
|
||||
if (config.textdata.font_desc) {
|
||||
free((void *)config.textdata.font_desc);
|
||||
config.textdata.font_desc = NULL;
|
||||
if (config.jumplabeldata.font_desc) {
|
||||
free((void *)config.jumplabeldata.font_desc);
|
||||
config.jumplabeldata.font_desc = NULL;
|
||||
}
|
||||
|
||||
if (config.tabdata.font_desc) {
|
||||
free((void *)config.tabdata.font_desc);
|
||||
config.tabdata.font_desc = NULL;
|
||||
}
|
||||
|
||||
if (config.tablet_map_to_mon) {
|
||||
|
|
@ -3410,12 +3486,19 @@ void override_config(void) {
|
|||
config.unfocused_opacity =
|
||||
CLAMP_FLOAT(config.unfocused_opacity, 0.0f, 1.0f);
|
||||
|
||||
config.textdata.border_width =
|
||||
CLAMP_INT(config.textdata.border_width, 0, 100);
|
||||
config.textdata.corner_radius =
|
||||
CLAMP_INT(config.textdata.corner_radius, 0, 100);
|
||||
config.textdata.padding_x = CLAMP_INT(config.textdata.padding_x, 0, 100);
|
||||
config.textdata.padding_y = CLAMP_INT(config.textdata.padding_y, 0, 100);
|
||||
config.tabdata.border_width =
|
||||
CLAMP_INT(config.tabdata.border_width, 0, 100);
|
||||
config.tabdata.corner_radius =
|
||||
CLAMP_INT(config.tabdata.corner_radius, 0, 100);
|
||||
config.tabdata.padding_x = CLAMP_INT(config.tabdata.padding_x, 0, 100);
|
||||
config.tabdata.padding_y = CLAMP_INT(config.tabdata.padding_y, 0, 100);
|
||||
|
||||
config.jumplabeldata.border_width =
|
||||
CLAMP_INT(config.jumplabeldata.border_width, 0, 100);
|
||||
config.jumplabeldata.corner_radius =
|
||||
CLAMP_INT(config.jumplabeldata.corner_radius, 0, 100);
|
||||
config.jumplabeldata.padding_x = CLAMP_INT(config.jumplabeldata.padding_x, 0, 100);
|
||||
config.jumplabeldata.padding_y = CLAMP_INT(config.jumplabeldata.padding_y, 0, 100);
|
||||
}
|
||||
|
||||
void set_value_default() {
|
||||
|
|
@ -3568,30 +3651,55 @@ void set_value_default() {
|
|||
config.animation_curve_opafadeout[2] = 0.5;
|
||||
config.animation_curve_opafadeout[3] = 0.5;
|
||||
|
||||
config.textdata.fg_color[0] = 0xc4 / 255.0f;
|
||||
config.textdata.fg_color[1] = 0x93 / 255.0f;
|
||||
config.textdata.fg_color[2] = 0x9d / 255.0f;
|
||||
config.textdata.fg_color[3] = 1.0f;
|
||||
config.textdata.bg_color[0] = 0x32 / 255.0f;
|
||||
config.textdata.bg_color[1] = 0x32 / 255.0f;
|
||||
config.textdata.bg_color[2] = 0x32 / 255.0f;
|
||||
config.textdata.bg_color[3] = 1.0f;
|
||||
config.textdata.focus_fg_color[0] = 0xed / 255.0f;
|
||||
config.textdata.focus_fg_color[1] = 0xa6 / 255.0f;
|
||||
config.textdata.focus_fg_color[2] = 0xb4 / 255.0f;
|
||||
config.textdata.focus_fg_color[3] = 1.0f;
|
||||
config.textdata.focus_bg_color[0] = 0x4e / 255.0f;
|
||||
config.textdata.focus_bg_color[1] = 0x45 / 255.0f;
|
||||
config.textdata.focus_bg_color[2] = 0x3c / 255.0f;
|
||||
config.textdata.focus_bg_color[3] = 1.0f;
|
||||
config.textdata.border_color[0] = 0x8b / 255.0f;
|
||||
config.textdata.border_color[1] = 0xaa / 255.0f;
|
||||
config.textdata.border_color[2] = 0x9b / 255.0f;
|
||||
config.textdata.border_color[3] = 1.0f;
|
||||
config.textdata.border_width = 4;
|
||||
config.textdata.corner_radius = 5;
|
||||
config.textdata.padding_x = 10;
|
||||
config.textdata.padding_y = 10;
|
||||
config.tabdata.fg_color[0] = 0xc4 / 255.0f;
|
||||
config.tabdata.fg_color[1] = 0x93 / 255.0f;
|
||||
config.tabdata.fg_color[2] = 0x9d / 255.0f;
|
||||
config.tabdata.fg_color[3] = 1.0f;
|
||||
config.tabdata.bg_color[0] = 0x32 / 255.0f;
|
||||
config.tabdata.bg_color[1] = 0x32 / 255.0f;
|
||||
config.tabdata.bg_color[2] = 0x32 / 255.0f;
|
||||
config.tabdata.bg_color[3] = 1.0f;
|
||||
config.tabdata.focus_fg_color[0] = 0xed / 255.0f;
|
||||
config.tabdata.focus_fg_color[1] = 0xa6 / 255.0f;
|
||||
config.tabdata.focus_fg_color[2] = 0xb4 / 255.0f;
|
||||
config.tabdata.focus_fg_color[3] = 1.0f;
|
||||
config.tabdata.focus_bg_color[0] = 0x4e / 255.0f;
|
||||
config.tabdata.focus_bg_color[1] = 0x45 / 255.0f;
|
||||
config.tabdata.focus_bg_color[2] = 0x3c / 255.0f;
|
||||
config.tabdata.focus_bg_color[3] = 1.0f;
|
||||
config.tabdata.border_color[0] = 0x8b / 255.0f;
|
||||
config.tabdata.border_color[1] = 0xaa / 255.0f;
|
||||
config.tabdata.border_color[2] = 0x9b / 255.0f;
|
||||
config.tabdata.border_color[3] = 1.0f;
|
||||
config.tabdata.border_width = 4;
|
||||
config.tabdata.corner_radius = 5;
|
||||
config.tabdata.padding_x = 0;
|
||||
config.tabdata.padding_y = 0;
|
||||
|
||||
config.jumplabeldata.fg_color[0] = 0xc4 / 255.0f;
|
||||
config.jumplabeldata.fg_color[1] = 0x93 / 255.0f;
|
||||
config.jumplabeldata.fg_color[2] = 0x9d / 255.0f;
|
||||
config.jumplabeldata.fg_color[3] = 1.0f;
|
||||
config.jumplabeldata.bg_color[0] = 0x32 / 255.0f;
|
||||
config.jumplabeldata.bg_color[1] = 0x32 / 255.0f;
|
||||
config.jumplabeldata.bg_color[2] = 0x32 / 255.0f;
|
||||
config.jumplabeldata.bg_color[3] = 1.0f;
|
||||
config.jumplabeldata.focus_fg_color[0] = 0xed / 255.0f;
|
||||
config.jumplabeldata.focus_fg_color[1] = 0xa6 / 255.0f;
|
||||
config.jumplabeldata.focus_fg_color[2] = 0xb4 / 255.0f;
|
||||
config.jumplabeldata.focus_fg_color[3] = 1.0f;
|
||||
config.jumplabeldata.focus_bg_color[0] = 0x4e / 255.0f;
|
||||
config.jumplabeldata.focus_bg_color[1] = 0x45 / 255.0f;
|
||||
config.jumplabeldata.focus_bg_color[2] = 0x3c / 255.0f;
|
||||
config.jumplabeldata.focus_bg_color[3] = 1.0f;
|
||||
config.jumplabeldata.border_color[0] = 0x8b / 255.0f;
|
||||
config.jumplabeldata.border_color[1] = 0xaa / 255.0f;
|
||||
config.jumplabeldata.border_color[2] = 0x9b / 255.0f;
|
||||
config.jumplabeldata.border_color[3] = 1.0f;
|
||||
config.jumplabeldata.border_width = 4;
|
||||
config.jumplabeldata.corner_radius = 5;
|
||||
config.jumplabeldata.padding_x = 10;
|
||||
config.jumplabeldata.padding_y = 10;
|
||||
|
||||
config.rootcolor[0] = 0x32 / 255.0f;
|
||||
config.rootcolor[1] = 0x32 / 255.0f;
|
||||
|
|
@ -3705,7 +3813,8 @@ bool parse_config(void) {
|
|||
config.tag_rules = NULL;
|
||||
config.tag_rules_count = 0;
|
||||
config.cursor_theme = NULL;
|
||||
config.textdata.font_desc = NULL;
|
||||
config.jumplabeldata.font_desc = NULL;
|
||||
config.tabdata.font_desc = NULL;
|
||||
config.tablet_map_to_mon = NULL;
|
||||
strcpy(config.keymode, "default");
|
||||
|
||||
|
|
@ -3843,9 +3952,8 @@ void reapply_property(void) {
|
|||
c->bw = config.borderpx;
|
||||
}
|
||||
|
||||
mango_text_node_apply_config(c->text_node, &config.textdata);
|
||||
mango_titlebar_node_apply_config(c->titlebar_node,
|
||||
&config.textdata);
|
||||
mango_jump_label_node_apply_config(c->jump_label_node, &config.jumplabeldata);
|
||||
mango_tab_bar_node_apply_config(c->tab_bar_node, &config.tabdata);
|
||||
|
||||
wlr_scene_rect_set_color(c->droparea, config.dropcolor);
|
||||
wlr_scene_rect_set_color(c->splitindicator[0], config.splitcolor);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue