Allow to change default number of clients in master area with settings

This commit is contained in:
Alex Kotov 2021-11-14 02:42:58 +05:00
parent 16f841ef53
commit f5d69ec1ad
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
4 changed files with 16 additions and 3 deletions

View File

@ -37,7 +37,6 @@ static const Rule rules[] = {
/* layout(s) */
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
static const int nmaster = 1; /* number of clients in master area */
static const Layout layouts[] = {
/* symbol arrange function */

4
dwm.c
View File

@ -826,7 +826,7 @@ createmon(void)
m = ecalloc(1, sizeof(Monitor));
m->tagset[0] = m->tagset[1] = 1;
m->mfact = mfact;
m->nmaster = nmaster;
m->nmaster = settings_get_default_clients_in_master();
m->showbar = showbar;
m->topbar = topbar;
m->lt[0] = &layouts[0];
@ -1630,7 +1630,7 @@ void
resetnmaster(const Arg *arg)
{
const int max_clients_in_master = settings_get_max_clients_in_master();
const int new_clients_in_master = arg->i == 0 ? 0 : nmaster;
const int new_clients_in_master = arg->i == 0 ? 0 : settings_get_default_clients_in_master();
selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag] =
max_clients_in_master == 0

View File

@ -1,10 +1,21 @@
#include "settings.h"
static int default_clients_in_master = 1;
static bool focus_on_wheel = true;
static int max_clients_in_master = 0; // 0 for no maximum
static bool respect_resize_hints_in_floating_layout = false;
static unsigned int snap_distance = 32;
int settings_get_default_clients_in_master()
{
return default_clients_in_master >= 1 ? default_clients_in_master : 1;
}
void settings_set_default_clients_in_master(const int new_default_clients_in_master)
{
default_clients_in_master = new_default_clients_in_master;
}
bool settings_get_focus_on_wheel()
{
return focus_on_wheel;

View File

@ -3,6 +3,9 @@
#include <stdbool.h>
int settings_get_default_clients_in_master();
void settings_set_default_clients_in_master(int new_default_clients_in_master);
bool settings_get_focus_on_wheel();
void settings_set_focus_on_wheel(bool new_focus_on_wheel);