added disable_titlebar option to config for all modes

This commit is contained in:
neuromagus 2024-03-01 01:33:20 +03:00
parent 1cfa217168
commit bf18a6dc95
9 changed files with 31 additions and 9 deletions

View file

@ -124,6 +124,7 @@ sway_cmd cmd_create_output;
sway_cmd cmd_default_border;
sway_cmd cmd_default_floating_border;
sway_cmd cmd_default_orientation;
sway_cmd cmd_disable_titlebar;
sway_cmd cmd_exec;
sway_cmd cmd_exec_always;
sway_cmd cmd_exit;

View file

@ -508,7 +508,7 @@ struct sway_config {
int font_height;
int font_baseline;
bool pango_markup;
bool hide_titlebar;
int titlebar_border_thickness;
int titlebar_h_padding;
int titlebar_v_padding;
@ -533,6 +533,7 @@ struct sway_config {
bool validating;
bool auto_back_and_forth;
bool show_marks;
bool disable_titlebar;
enum alignment title_align;
bool primary_selection;
@ -542,7 +543,7 @@ struct sway_config {
enum smart_gaps_mode smart_gaps;
int gaps_inner;
struct side_gaps gaps_outer;
list_t *config_chain;
bool user_config_path;
const char *current_config_path;

View file

@ -58,6 +58,7 @@ static const struct cmd_handler handlers[] = {
{ "client.urgent", cmd_client_urgent },
{ "default_border", cmd_default_border },
{ "default_floating_border", cmd_default_floating_border },
{ "disable_titlebar", cmd_disable_titlebar },
{ "exec", cmd_exec },
{ "exec_always", cmd_exec_always },
{ "floating_maximum_size", cmd_floating_maximum_size },

View file

@ -0,0 +1,14 @@
#include "sway/commands.h"
#include "sway/config.h"
#include "util.h"
struct cmd_results *cmd_disable_titlebar(int argc, char **argv) {
struct cmd_results *error = NULL;
if ((error = checkarg(argc, "disable_titlebar", EXPECTED_EQUAL_TO, 1))) {
return error;
}
config->disable_titlebar = parse_boolean(argv[0], config->disable_titlebar);
return cmd_results_new(CMD_SUCCESS, NULL);
}

View file

@ -249,7 +249,6 @@ static void config_defaults(struct sway_config *config) {
config->popup_during_fullscreen = POPUP_SMART;
config->xwayland = XWAYLAND_MODE_LAZY;
config->hide_titlebar = false;
config->titlebar_border_thickness = 1;
config->titlebar_h_padding = 5;
config->titlebar_v_padding = 4;
@ -271,6 +270,7 @@ static void config_defaults(struct sway_config *config) {
config->auto_back_and_forth = false;
config->reading = false;
config->show_marks = true;
config->disable_titlebar = false;
config->title_align = ALIGN_LEFT;
config->tiling_drag = true;
config->tiling_drag_threshold = 9;

View file

@ -716,7 +716,7 @@ static void render_containers_linear(struct render_context *ctx, struct parent_d
marks_texture = child->marks_unfocused;
}
if (state->border == B_NORMAL && !config->hide_titlebar) {
if (state->border == B_NORMAL && !config->disable_titlebar) {
render_titlebar(ctx, child, floor(state->x),
floor(state->y), state->width, colors,
title_texture, marks_texture);
@ -790,7 +790,7 @@ static void render_containers_tabbed(struct render_context *ctx, struct parent_d
tab_width = parent->box.width - tab_width * i;
}
if (!config->hide_titlebar) {
if (!config->disable_titlebar) {
render_titlebar(ctx, child, x, parent->box.y, tab_width,
colors, title_texture, marks_texture);
}
@ -853,7 +853,7 @@ static void render_containers_stacked(struct render_context *ctx, struct parent_
marks_texture = child->marks_unfocused;
}
if (!config->hide_titlebar) {
if (!config->disable_titlebar) {
int y = parent->box.y + titlebar_height * i;
render_titlebar(ctx, child, parent->box.x, y,
parent->box.width, colors, title_texture, marks_texture);
@ -953,7 +953,7 @@ static void render_floating_container(struct render_context *ctx,
marks_texture = con->marks_unfocused;
}
if (con->current.border == B_NORMAL && !config->hide_titlebar) {
if (con->current.border == B_NORMAL && !config->disable_titlebar) {
render_titlebar(ctx, con, floor(con->current.x),
floor(con->current.y), con->current.width, colors,
title_texture, marks_texture);

View file

@ -51,6 +51,7 @@ sway_sources = files(
'commands/default_border.c',
'commands/default_floating_border.c',
'commands/default_orientation.c',
'commands/disable_titlebar.c',
'commands/exit.c',
'commands/exec.c',
'commands/exec_always.c',

View file

@ -726,6 +726,9 @@ The default colors are:
should be greater than titlebar_border_thickness. If _vertical_ value is
not specified it is set to the _horizontal_ value.
*disable_titlebar* yes|no.
Remove titlebar. Default is _no_.
*for_window* <criteria> <command>
Whenever a window that matches _criteria_ appears, run list of commands.
See *CRITERIA* for more details.
@ -747,7 +750,7 @@ The default colors are:
tabbed and stacked containers with one child. The _smart_|_smart_no_gaps_
options are equivalent to setting _smart_borders_ smart|no_gaps and
_hide_edge_borders_ none.
*input* <input_device> <input-subcommands...>
For details on input subcommands, see *sway-input*(5).
@ -850,6 +853,7 @@ The default colors are:
to _yes_, the marks will be shown on the _left_ side instead of the
_right_ side.
*unbindswitch* <switch>:<state>
Removes a binding for when <switch> changes to <state>.

View file

@ -670,7 +670,7 @@ void container_update_representation(struct sway_container *con) {
}
size_t container_titlebar_height(void) {
if(config->hide_titlebar) {
if(config->disable_titlebar) {
return 0;
}