diff options
| author | Devin J. Pohly <djpohly@gmail.com> | 2020-08-03 12:44:47 -0500 | 
|---|---|---|
| committer | Devin J. Pohly <djpohly@gmail.com> | 2020-08-03 12:44:47 -0500 | 
| commit | 5a2d87fa6cd33bd170b6e98534fe966ffa17576b (patch) | |
| tree | 5b70d5fbfed853c97917dc98916a38c9928cb21f | |
| parent | 27bbf9c14f81c5b09bfe2a0378c8e1f96ab89160 (diff) | |
add monocle layout
| -rw-r--r-- | config.def.h | 2 | ||||
| -rw-r--r-- | dwl.c | 13 | 
2 files changed, 15 insertions, 0 deletions
| diff --git a/config.def.h b/config.def.h index 681cfba..8c10165 100644 --- a/config.def.h +++ b/config.def.h @@ -19,6 +19,7 @@ static const Layout layouts[] = {  	/* symbol     arrange function */  	{ "[]=",      tile },  	{ "><>",      NULL },    /* no layout function means floating behavior */ +	{ "[M]",      monocle },  };  /* monitors */ @@ -65,6 +66,7 @@ static const Key keys[] = {  	{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_c,          killclient,     {0} },  	{ MODKEY,                    XKB_KEY_t,          setlayout,      {.v = &layouts[0]} },  	{ MODKEY,                    XKB_KEY_f,          setlayout,      {.v = &layouts[1]} }, +	{ MODKEY,                    XKB_KEY_m,          setlayout,      {.v = &layouts[2]} },  	{ MODKEY,                    XKB_KEY_space,      setlayout,      {0} },  	{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_space,      togglefloating, {0} },  	{ MODKEY,                    XKB_KEY_0,          view,           {.ui = ~0} }, @@ -189,6 +189,7 @@ static void keypress(struct wl_listener *listener, void *data);  static void keypressmod(struct wl_listener *listener, void *data);  static void killclient(const Arg *arg);  static void maprequest(struct wl_listener *listener, void *data); +static void monocle(Monitor *m);  static void motionabsolute(struct wl_listener *listener, void *data);  static void motionnotify(uint32_t time);  static void motionrelative(struct wl_listener *listener, void *data); @@ -933,6 +934,18 @@ maprequest(struct wl_listener *listener, void *data)  }  void +monocle(Monitor *m) +{ +	Client *c; + +	wl_list_for_each(c, &clients, link) { +		if (!VISIBLEON(c, m) || c->isfloating) +			continue; +		resize(c, m->w.x, m->w.y, m->w.width, m->w.height, 0); +	} +} + +void  motionabsolute(struct wl_listener *listener, void *data)  {  	/* This event is forwarded by the cursor when a pointer emits an _absolute_ | 
