Compare commits
	
		
			2 Commits
		
	
	
		
			e64fa96377
			...
			82b596bfdf
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 82b596bfdf | |||
| e1da671d92 | 
| @ -62,9 +62,9 @@ static const Layout layouts[] = { | ||||
| /* key definitions */ | ||||
| #define MODKEY Mod4Mask | ||||
| #define TAGKEYS(KEY,TAG) \ | ||||
| 	{ MODKEY,                       KEY,      view,           {.ui = 1 << TAG} }, \ | ||||
| 	{ MODKEY,                       KEY,      comboview,      {.ui = 1 << TAG} }, \ | ||||
| 	{ MODKEY|ControlMask,           KEY,      toggleview,     {.ui = 1 << TAG} }, \ | ||||
| 	{ MODKEY|ShiftMask,             KEY,      tag,            {.ui = 1 << TAG} }, \ | ||||
| 	{ MODKEY|ShiftMask,             KEY,      combotag,       {.ui = 1 << TAG} }, \ | ||||
| 	{ MODKEY|ControlMask|ShiftMask, KEY,      toggletag,      {.ui = 1 << TAG} }, | ||||
| 
 | ||||
| /* helper for spawning shell commands in the pre dwm-5.0 fashion */ | ||||
|  | ||||
							
								
								
									
										43
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								dwm.c
									
									
									
									
									
								
							| @ -256,6 +256,11 @@ static int xerrorstart(Display *dpy, XErrorEvent *ee); | ||||
| static void xinitvisual(); | ||||
| static void zoom(const Arg *arg); | ||||
| 
 | ||||
| static void keyrelease(XEvent *e); | ||||
| static void combotag(const Arg *arg); | ||||
| static void comboview(const Arg *arg); | ||||
| 
 | ||||
| 
 | ||||
| /* variables */ | ||||
| static const char autostartblocksh[] = "autostart_blocking.sh"; | ||||
| static const char autostartsh[] = "autostart.sh"; | ||||
| @ -271,6 +276,7 @@ static int (*xerrorxlib)(Display *, XErrorEvent *); | ||||
| static unsigned int numlockmask = 0; | ||||
| static void (*handler[LASTEvent]) (XEvent *) = { | ||||
| 	[ButtonPress] = buttonpress, | ||||
| 	[ButtonRelease] = keyrelease, | ||||
| 	[ClientMessage] = clientmessage, | ||||
| 	[ConfigureRequest] = configurerequest, | ||||
| 	[ConfigureNotify] = configurenotify, | ||||
| @ -278,6 +284,7 @@ static void (*handler[LASTEvent]) (XEvent *) = { | ||||
| 	[EnterNotify] = enternotify, | ||||
| 	[Expose] = expose, | ||||
| 	[FocusIn] = focusin, | ||||
| 	[KeyRelease] = keyrelease, | ||||
| 	[KeyPress] = keypress, | ||||
| 	[MappingNotify] = mappingnotify, | ||||
| 	[MapRequest] = maprequest, | ||||
| @ -318,6 +325,42 @@ struct Pertag { | ||||
| struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; }; | ||||
| 
 | ||||
| /* function implementations */ | ||||
| static int combo = 0; | ||||
| 
 | ||||
| void | ||||
| keyrelease(XEvent *e) { | ||||
| 	combo = 0; | ||||
| } | ||||
| 
 | ||||
| void | ||||
| combotag(const Arg *arg) { | ||||
| 	if(selmon->sel && arg->ui & TAGMASK) { | ||||
| 		if (combo) { | ||||
| 			selmon->sel->tags |= arg->ui & TAGMASK; | ||||
| 		} else { | ||||
| 			combo = 1; | ||||
| 			selmon->sel->tags = arg->ui & TAGMASK; | ||||
| 		} | ||||
| 		focus(NULL); | ||||
| 		arrange(selmon); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| void | ||||
| comboview(const Arg *arg) { | ||||
| 	unsigned newtags = arg->ui & TAGMASK; | ||||
| 	if (combo) { | ||||
| 		selmon->tagset[selmon->seltags] |= newtags; | ||||
| 	} else { | ||||
| 		selmon->seltags ^= 1;	/*toggle tagset*/ | ||||
| 		combo = 1; | ||||
| 		if (newtags) | ||||
| 			selmon->tagset[selmon->seltags] = newtags; | ||||
| 	} | ||||
| 	focus(NULL); | ||||
| 	arrange(selmon); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| applyrules(Client *c) | ||||
| { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user