mirror of
https://github.com/leahneukirchen/cwm.git
synced 2023-08-10 21:13:12 +03:00
Allow configuring a percentage window size of the master window during
htile/vtile actions. From Uwe Werler, with a few manpage tweaks.
This commit is contained in:
parent
6afdd483c7
commit
6407eb9bc1
2
calmwm.h
2
calmwm.h
@ -291,6 +291,8 @@ struct conf {
|
||||
int bwidth;
|
||||
int mamount;
|
||||
int snapdist;
|
||||
int htile;
|
||||
int vtile;
|
||||
struct gap gap;
|
||||
char *color[CWM_COLOR_NITEMS];
|
||||
char *font;
|
||||
|
6
client.c
6
client.c
@ -940,7 +940,8 @@ client_htile(struct client_ctx *cc)
|
||||
cc->geom.x = area.x;
|
||||
cc->geom.y = area.y;
|
||||
cc->geom.w = area.w - (cc->bwidth * 2);
|
||||
cc->geom.h = (area.h - (cc->bwidth * 2)) / 2;
|
||||
if (Conf.htile > 0)
|
||||
cc->geom.h = ((area.h - (cc->bwidth * 2)) * Conf.htile) / 100;
|
||||
client_resize(cc, 1);
|
||||
client_ptr_warp(cc);
|
||||
|
||||
@ -1007,7 +1008,8 @@ client_vtile(struct client_ctx *cc)
|
||||
cc->flags &= ~CLIENT_VMAXIMIZED;
|
||||
cc->geom.x = area.x;
|
||||
cc->geom.y = area.y;
|
||||
cc->geom.w = (area.w - (cc->bwidth * 2)) / 2;
|
||||
if (Conf.vtile > 0)
|
||||
cc->geom.w = ((area.w - (cc->bwidth * 2)) * Conf.vtile) / 100;
|
||||
cc->geom.h = area.h - (cc->bwidth * 2);
|
||||
client_resize(cc, 1);
|
||||
client_ptr_warp(cc);
|
||||
|
2
conf.c
2
conf.c
@ -281,6 +281,8 @@ conf_init(struct conf *c)
|
||||
c->stickygroups = 0;
|
||||
c->bwidth = 1;
|
||||
c->mamount = 1;
|
||||
c->htile = 50;
|
||||
c->vtile = 50;
|
||||
c->snapdist = 0;
|
||||
c->ngroups = 0;
|
||||
c->nameqlen = 5;
|
||||
|
22
cwmrc.5
22
cwmrc.5
@ -183,6 +183,13 @@ This
|
||||
can be used for applications such as
|
||||
.Xr xclock 1 ,
|
||||
where the user may wish to remain visible.
|
||||
.It Ic htile Ar percent
|
||||
Set the percentage of screen the master window should occupy
|
||||
after calling
|
||||
.Ic window-htile .
|
||||
If set to 0, the horizontal size of the master window will
|
||||
remain unchanged.
|
||||
The default is 50.
|
||||
.It Ic ignore Ar windowname
|
||||
Ignore, and do not warp to, windows with the name
|
||||
.Ar windowname
|
||||
@ -216,6 +223,13 @@ A special
|
||||
keyword
|
||||
.Dq all
|
||||
can be used to unbind all buttons.
|
||||
.It Ic vtile Ar percent
|
||||
Set the percentage of screen the master window should occupy
|
||||
after calling
|
||||
.Ic window-vtile .
|
||||
If set to 0, the vertical size of the master window will
|
||||
remain unchanged.
|
||||
The default is 50.
|
||||
.It Ic wm Ar name path
|
||||
Every
|
||||
.Ar name
|
||||
@ -303,11 +317,15 @@ Vertically maximize current window (gap + border honored).
|
||||
Horizontally maximize current window (gap + border honored).
|
||||
.It window-htile
|
||||
Current window is placed at the top of the screen, maximized
|
||||
horizontally and resized to half of the vertical screen space.
|
||||
horizontally and resized to
|
||||
.Ar htile
|
||||
(default half) of the vertical screen space.
|
||||
Other windows in its group share remaining screen space.
|
||||
.It window-vtile
|
||||
Current window is placed on the left of the screen, maximized vertically
|
||||
and resized to half of the horizontal screen space.
|
||||
and resized to
|
||||
.Ar vtile
|
||||
(default half) of the horizontal screen space.
|
||||
Other windows in its group share remaining screen space.
|
||||
.It window-move
|
||||
Move current window.
|
||||
|
18
parse.y
18
parse.y
@ -71,7 +71,7 @@ typedef struct {
|
||||
%token BINDKEY UNBINDKEY BINDMOUSE UNBINDMOUSE
|
||||
%token FONTNAME STICKY GAP
|
||||
%token AUTOGROUP COMMAND IGNORE WM
|
||||
%token YES NO BORDERWIDTH MOVEAMOUNT
|
||||
%token YES NO BORDERWIDTH MOVEAMOUNT HTILE VTILE
|
||||
%token COLOR SNAPDIST
|
||||
%token ACTIVEBORDER INACTIVEBORDER URGENCYBORDER
|
||||
%token GROUPBORDER UNGROUPBORDER
|
||||
@ -122,6 +122,20 @@ main : FONTNAME STRING {
|
||||
}
|
||||
conf->bwidth = $2;
|
||||
}
|
||||
| HTILE NUMBER {
|
||||
if ($2 < 0 || $2 > 99) {
|
||||
yyerror("invalid htile percent");
|
||||
YYERROR;
|
||||
}
|
||||
conf->htile = $2;
|
||||
}
|
||||
| VTILE NUMBER {
|
||||
if ($2 < 0 || $2 > 99) {
|
||||
yyerror("invalid vtile percent");
|
||||
YYERROR;
|
||||
}
|
||||
conf->vtile = $2;
|
||||
}
|
||||
| MOVEAMOUNT NUMBER {
|
||||
if ($2 < 0 || $2 > INT_MAX) {
|
||||
yyerror("invalid movemount");
|
||||
@ -316,6 +330,7 @@ lookup(char *s)
|
||||
{ "fontname", FONTNAME},
|
||||
{ "gap", GAP},
|
||||
{ "groupborder", GROUPBORDER},
|
||||
{ "htile", HTILE},
|
||||
{ "ignore", IGNORE},
|
||||
{ "inactiveborder", INACTIVEBORDER},
|
||||
{ "menubg", MENUBG},
|
||||
@ -329,6 +344,7 @@ lookup(char *s)
|
||||
{ "unbind-mouse", UNBINDMOUSE},
|
||||
{ "ungroupborder", UNGROUPBORDER},
|
||||
{ "urgencyborder", URGENCYBORDER},
|
||||
{ "vtile", VTILE},
|
||||
{ "wm", WM},
|
||||
{ "yes", YES}
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user