diff --git a/calmwm.h b/calmwm.h index 7697b75..d6779f7 100644 --- a/calmwm.h +++ b/calmwm.h @@ -313,6 +313,7 @@ struct conf { int nameqlen; int bwidth; int mamount; + int scalefactor; int snapdist; int htile; int vtile; diff --git a/conf.c b/conf.c index fee6e9d..2db89a9 100644 --- a/conf.c +++ b/conf.c @@ -288,6 +288,7 @@ conf_init(struct conf *c) c->stickygroups = 0; c->bwidth = 1; c->mamount = 1; + c->scalefactor = 10; c->htile = 50; c->vtile = 50; c->snapdist = 0; diff --git a/kbfunc.c b/kbfunc.c index b6f6355..acde773 100644 --- a/kbfunc.c +++ b/kbfunc.c @@ -57,7 +57,7 @@ kbfunc_cwm_status(void *ctx, struct cargs *cargs) static void kbfunc_amount(int flags, int amt, int *mx, int *my) { -#define CWM_FACTOR 10 +#define CWM_FACTOR Conf.scalefactor if (flags & CWM_BIGAMOUNT) amt *= CWM_FACTOR; diff --git a/parse.y b/parse.y index d0407a7..45aee3d 100644 --- a/parse.y +++ b/parse.y @@ -73,7 +73,7 @@ typedef struct { %token BINDKEY UNBINDKEY BINDMOUSE UNBINDMOUSE %token FONTNAME STICKY GAP %token AUTOGROUP COMMAND IGNORE WM -%token YES NO BORDERWIDTH MOVEAMOUNT HTILE VTILE +%token YES NO BORDERWIDTH MOVEAMOUNT SCALEFACTOR HTILE VTILE %token COLOR SNAPDIST %token ACTIVEBORDER INACTIVEBORDER URGENCYBORDER %token GROUPBORDER UNGROUPBORDER @@ -156,6 +156,13 @@ main : FONTNAME STRING { } conf->mamount = $2; } + | SCALEFACTOR NUMBER { + if ($2 < 0 || $2 > INT_MAX) { + yyerror("invalid scalefactor"); + YYERROR; + } + conf->scalefactor = $2; + } | SNAPDIST NUMBER { if ($2 < 0 || $2 > INT_MAX) { yyerror("invalid snapdist"); @@ -350,6 +357,7 @@ lookup(char *s) { "menufg", MENUFG}, { "moveamount", MOVEAMOUNT}, { "no", NO}, + { "scalefactor", SCALEFACTOR}, { "selfont", FONTSELCOLOR}, { "snapdist", SNAPDIST}, { "sticky", STICKY},