diff options
| author | Devin J. Pohly <djpohly@gmail.com> | 2020-04-23 20:02:17 -0500 | 
|---|---|---|
| committer | Devin J. Pohly <djpohly@gmail.com> | 2020-04-23 22:11:52 -0500 | 
| commit | 66054700cb58d97f3f333317db18b24e0f39ef2c (patch) | |
| tree | 47e98f39b016dd11f45e730b26704fbc3d1cef49 | |
| parent | 35557ab0426ba326e7bba8f1aeac1ac5495bf079 (diff) | |
add toggletag and toggleview
Diffstat (limited to '')
| -rw-r--r-- | config.def.h | 4 | ||||
| -rw-r--r-- | dwl.c | 27 | 
2 files changed, 30 insertions, 1 deletions
| diff --git a/config.def.h b/config.def.h index f4720a8..71d67e9 100644 --- a/config.def.h +++ b/config.def.h @@ -32,7 +32,9 @@ static const struct xkb_rule_names xkb_rules = {  #define MODKEY WLR_MODIFIER_ALT  #define TAGKEYS(KEY,SKEY,TAG) \  	{ MODKEY,                    KEY,            view,            {.ui = 1 << TAG} }, \ -	{ MODKEY|WLR_MODIFIER_SHIFT, SKEY,           tag,             {.ui = 1 << TAG} } +	{ MODKEY|WLR_MODIFIER_CTRL,  KEY,            toggleview,      {.ui = 1 << TAG} }, \ +	{ MODKEY|WLR_MODIFIER_SHIFT, SKEY,           tag,             {.ui = 1 << TAG} }, \ +	{ MODKEY|WLR_MODIFIER_CTRL|WLR_MODIFIER_SHIFT,SKEY,toggletag, {.ui = 1 << TAG} }  /* commands */  static const char *termcmd[]  = { "kitty", "-o", "linux_display_server=wayland", NULL }; @@ -154,6 +154,8 @@ static void spawn(const Arg *arg);  static void tag(const Arg *arg);  static void tile(Monitor *m);  static void togglefloating(const Arg *arg); +static void toggletag(const Arg *arg); +static void toggleview(const Arg *arg);  static void unmapnotify(struct wl_listener *listener, void *data);  static void view(const Arg *arg);  static Client *xytoclient(double x, double y, @@ -1117,6 +1119,31 @@ togglefloating(const Arg *arg)  }  void +toggletag(const Arg *arg) +{ +	unsigned int newtags; +	Client *sel = selclient(); +	if (!sel) +		return; +	newtags = sel->tags ^ (arg->ui & TAGMASK); +	if (newtags) { +		sel->tags = newtags; +		focus(NULL, NULL); +	} +} + +void +toggleview(const Arg *arg) +{ +	unsigned int newtagset = selmon->tagset[selmon->seltags] ^ (arg->ui & TAGMASK); + +	if (newtagset) { +		selmon->tagset[selmon->seltags] = newtagset; +		focus(NULL, NULL); +	} +} + +void  unmapnotify(struct wl_listener *listener, void *data)  {  	/* Called when the surface is unmapped, and should no longer be shown. */ | 
