Added all_key to clear all messages by keybinding
This commit is contained in:
		
							parent
							
								
									4507b704e0
								
							
						
					
					
						commit
						fc74d6bf18
					
				
							
								
								
									
										21
									
								
								dunst.c
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								dunst.c
									
									
									
									
									
								
							| @ -67,6 +67,7 @@ int sort = True;                /* sort messages by urgency */ | |||||||
| int indicate_hidden = True;     /* show count of hidden messages */ | int indicate_hidden = True;     /* show count of hidden messages */ | ||||||
| char *key_string = NULL; | char *key_string = NULL; | ||||||
| char *history_key_string = NULL; | char *history_key_string = NULL; | ||||||
|  | char *all_key_string = NULL; | ||||||
| KeySym mask = 0; | KeySym mask = 0; | ||||||
| int idle_threshold = 0; | int idle_threshold = 0; | ||||||
| int show_age_threshold = -1; | int show_age_threshold = -1; | ||||||
| @ -86,6 +87,7 @@ static time_t now; | |||||||
| static int visible = False; | static int visible = False; | ||||||
| static KeySym key = NoSymbol; | static KeySym key = NoSymbol; | ||||||
| static KeySym history_key = NoSymbol; | static KeySym history_key = NoSymbol; | ||||||
|  | static KeySym all_key = NoSymbol; | ||||||
| static screen_info scr; | static screen_info scr; | ||||||
| static dimension_t geometry; | static dimension_t geometry; | ||||||
| static XScreenSaverInfo *screensaver_info; | static XScreenSaverInfo *screensaver_info; | ||||||
| @ -590,6 +592,9 @@ void handleXEvents(void) | |||||||
|                         if (XLookupKeysym(&ev.xkey, 0) == history_key) { |                         if (XLookupKeysym(&ev.xkey, 0) == history_key) { | ||||||
|                                 history_pop(); |                                 history_pop(); | ||||||
|                         } |                         } | ||||||
|  | 			if (XLookupKeysym(&ev.xkey, 0) == all_key) { | ||||||
|  | 				move_all_to_history(); | ||||||
|  | 			} | ||||||
|                 } |                 } | ||||||
|         } |         } | ||||||
| } | } | ||||||
| @ -948,6 +953,12 @@ void setup(void) | |||||||
|                 XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync, |                 XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync, | ||||||
|                          GrabModeAsync); |                          GrabModeAsync); | ||||||
|         } |         } | ||||||
|  | 
 | ||||||
|  | 	if (all_key != NoSymbol) { | ||||||
|  | 		code = XKeysymToKeycode(dc->dpy, all_key); | ||||||
|  |                 XGrabKey(dc->dpy, code, mask, root, True, GrabModeAsync, | ||||||
|  |                          GrabModeAsync); | ||||||
|  | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void map_win(void) | void map_win(void) | ||||||
| @ -988,6 +999,7 @@ void parse_cmdline(int argc, char *argv[]) | |||||||
|                         {"format", required_argument, NULL, 'f'}, |                         {"format", required_argument, NULL, 'f'}, | ||||||
|                         {"key", required_argument, NULL, 'k'}, |                         {"key", required_argument, NULL, 'k'}, | ||||||
|                         {"history_key", required_argument, NULL, 'K'}, |                         {"history_key", required_argument, NULL, 'K'}, | ||||||
|  |                         {"all_key", required_argument, NULL, 'A'}, | ||||||
|                         {"geometry", required_argument, NULL, 'g'}, |                         {"geometry", required_argument, NULL, 'g'}, | ||||||
|                         {"config", required_argument, NULL, 'r'}, |                         {"config", required_argument, NULL, 'r'}, | ||||||
|                         {"mod", required_argument, NULL, 'M'}, |                         {"mod", required_argument, NULL, 'M'}, | ||||||
| @ -1057,6 +1069,9 @@ void parse_cmdline(int argc, char *argv[]) | |||||||
|                 case 'K': |                 case 'K': | ||||||
|                         history_key_string = optarg; |                         history_key_string = optarg; | ||||||
|                         break; |                         break; | ||||||
|  | 		case 'A': | ||||||
|  | 			all_key_string = optarg; | ||||||
|  | 			break; | ||||||
|                 case 'g': |                 case 'g': | ||||||
|                         geom = optarg; |                         geom = optarg; | ||||||
|                         break; |                         break; | ||||||
| @ -1174,6 +1189,8 @@ dunst_ini_handle(void *user_data, const char *section, | |||||||
|                         key_string = dunst_ini_get_string(value); |                         key_string = dunst_ini_get_string(value); | ||||||
|                 else if (strcmp(name, "history_key") == 0) |                 else if (strcmp(name, "history_key") == 0) | ||||||
|                         history_key_string = dunst_ini_get_string(value); |                         history_key_string = dunst_ini_get_string(value); | ||||||
|  |                 else if (strcmp(name, "all_key") == 0) | ||||||
|  |                         all_key_string = dunst_ini_get_string(value); | ||||||
|                 else if (strcmp(name, "idle_threshold") == 0) |                 else if (strcmp(name, "idle_threshold") == 0) | ||||||
|                         idle_threshold = atoi(value); |                         idle_threshold = atoi(value); | ||||||
|                 else if (strcmp(name, "monitor") == 0) |                 else if (strcmp(name, "monitor") == 0) | ||||||
| @ -1338,6 +1355,8 @@ int main(int argc, char *argv[]) | |||||||
|         key = key_string ? XStringToKeysym(key_string) : NoSymbol; |         key = key_string ? XStringToKeysym(key_string) : NoSymbol; | ||||||
|         history_key = |         history_key = | ||||||
|             history_key_string ? XStringToKeysym(history_key_string) : NoSymbol; |             history_key_string ? XStringToKeysym(history_key_string) : NoSymbol; | ||||||
|  |         all_key = | ||||||
|  |             all_key_string ? XStringToKeysym(all_key_string) : NoSymbol; | ||||||
|         screensaver_info = XScreenSaverAllocInfo(); |         screensaver_info = XScreenSaverAllocInfo(); | ||||||
| 
 | 
 | ||||||
|         initdbus(); |         initdbus(); | ||||||
| @ -1362,7 +1381,7 @@ int main(int argc, char *argv[]) | |||||||
| void usage(int exit_status) | void usage(int exit_status) | ||||||
| { | { | ||||||
|         fputs |         fputs | ||||||
|             ("usage: dunst [-h/--help] [-v] [-geometry geom] [-fn font] [-format fmt]\n[-nb color] [-nf color] [-lb color] [-lf color] [-cb color] [ -cf color]\n[-to secs] [-lto secs] [-cto secs] [-nto secs] [-key key] [-history_key key] [-mod modifier] [-mon n] [-config dunstrc]\n", |             ("usage: dunst [-h/--help] [-v] [-geometry geom] [-fn font] [-format fmt]\n[-nb color] [-nf color] [-lb color] [-lf color] [-cb color] [ -cf color]\n[-to secs] [-lto secs] [-cto secs] [-nto secs] [-key key] [-history_key key] [-all_key key] [-mod modifier] [-mon n] [-config dunstrc]\n", | ||||||
|              stderr); |              stderr); | ||||||
|         exit(exit_status); |         exit(exit_status); | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Miles Sandlar
						Miles Sandlar