add Mod1Mask keybindings
This commit is contained in:
		
							
								
								
									
										88
									
								
								dmenu.1
									
									
									
									
									
								
							
							
						
						
									
										88
									
								
								dmenu.1
									
									
									
									
									
								
							@@ -33,7 +33,7 @@ matching the tokens in the input.
 | 
				
			|||||||
.B dmenu_run
 | 
					.B dmenu_run
 | 
				
			||||||
is a script used by
 | 
					is a script used by
 | 
				
			||||||
.IR dwm (1)
 | 
					.IR dwm (1)
 | 
				
			||||||
which lists programs in the user's $PATH and executes the selected item.
 | 
					which lists programs in the user's $PATH and runs the result in their $SHELL.
 | 
				
			||||||
.SH OPTIONS
 | 
					.SH OPTIONS
 | 
				
			||||||
.TP
 | 
					.TP
 | 
				
			||||||
.B \-b
 | 
					.B \-b
 | 
				
			||||||
@@ -73,28 +73,90 @@ defines the selected foreground color.
 | 
				
			|||||||
.B \-v
 | 
					.B \-v
 | 
				
			||||||
prints version information to stdout, then exits.
 | 
					prints version information to stdout, then exits.
 | 
				
			||||||
.SH USAGE
 | 
					.SH USAGE
 | 
				
			||||||
dmenu is completely controlled by the keyboard.  Besides standard Unix line
 | 
					dmenu is completely controlled by the keyboard.  Items are selected using the
 | 
				
			||||||
editing and item selection (arrow keys, page up/down, home and end), the
 | 
					arrow keys, page up, page down, home, and end.
 | 
				
			||||||
following keys are recognized:
 | 
					 | 
				
			||||||
.TP
 | 
					.TP
 | 
				
			||||||
.B Tab (Ctrl\-i)
 | 
					.B Tab
 | 
				
			||||||
Copy the selected item to the input field.
 | 
					Copy the selected item to the input field.
 | 
				
			||||||
.TP
 | 
					.TP
 | 
				
			||||||
.B Return (Ctrl\-j)
 | 
					.B Return
 | 
				
			||||||
Confirm selection.  Prints the selected item to stdout and exits, returning
 | 
					Confirm selection.  Prints the selected item to stdout and exits, returning
 | 
				
			||||||
success.
 | 
					success.
 | 
				
			||||||
.TP
 | 
					.TP
 | 
				
			||||||
.B Shift\-Return (Ctrl\-Shift\-j)
 | 
					.B Shift\-Return
 | 
				
			||||||
Confirm input.  Prints the input text to stdout and exits, returning success.
 | 
					Confirm input.  Prints the input text to stdout and exits, returning success.
 | 
				
			||||||
.TP
 | 
					.TP
 | 
				
			||||||
.B Escape (Ctrl\-c)
 | 
					.B Escape
 | 
				
			||||||
Exit without selecting an item, returning failure.
 | 
					Exit without selecting an item, returning failure.
 | 
				
			||||||
.TP
 | 
					.TP
 | 
				
			||||||
.B Ctrl\-y
 | 
					C\-a
 | 
				
			||||||
Paste the primary X selection into the input field.
 | 
					Home
 | 
				
			||||||
.TP
 | 
					.TP
 | 
				
			||||||
.B Ctrl-Shift-y
 | 
					C\-b
 | 
				
			||||||
Paste the X clipboard into the input field.
 | 
					Left
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					C\-c
 | 
				
			||||||
 | 
					Escape
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					C\-d
 | 
				
			||||||
 | 
					Delete
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					C\-e
 | 
				
			||||||
 | 
					End
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					C\-f
 | 
				
			||||||
 | 
					Right
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					C\-h
 | 
				
			||||||
 | 
					Backspace
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					C\-i
 | 
				
			||||||
 | 
					Tab
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					C\-j
 | 
				
			||||||
 | 
					Return
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					C\-k
 | 
				
			||||||
 | 
					Delete line right
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					C\-m
 | 
				
			||||||
 | 
					Return
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					C\-n
 | 
				
			||||||
 | 
					Down
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					C\-p
 | 
				
			||||||
 | 
					Up
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					C\-u
 | 
				
			||||||
 | 
					Delete line left
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					C\-w
 | 
				
			||||||
 | 
					Delete word left
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					C\-y
 | 
				
			||||||
 | 
					Paste from primary X selection
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					C\-Y
 | 
				
			||||||
 | 
					Paste from X clipboard
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					M\-g
 | 
				
			||||||
 | 
					Home
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					M\-G
 | 
				
			||||||
 | 
					End
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					M\-h
 | 
				
			||||||
 | 
					Page up
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					M\-j
 | 
				
			||||||
 | 
					Up
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					M\-k
 | 
				
			||||||
 | 
					Down
 | 
				
			||||||
 | 
					.TP
 | 
				
			||||||
 | 
					M\-l
 | 
				
			||||||
 | 
					Page down
 | 
				
			||||||
.SH SEE ALSO
 | 
					.SH SEE ALSO
 | 
				
			||||||
.IR dwm (1),
 | 
					.IR dwm (1),
 | 
				
			||||||
.IR lsx (1)
 | 
					.IR stest (1)
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										19
									
								
								dmenu.c
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								dmenu.c
									
									
									
									
									
								
							@@ -243,11 +243,8 @@ keypress(XKeyEvent *ev) {
 | 
				
			|||||||
	len = XmbLookupString(xic, ev, buf, sizeof buf, &ksym, &status);
 | 
						len = XmbLookupString(xic, ev, buf, sizeof buf, &ksym, &status);
 | 
				
			||||||
	if(status == XBufferOverflow)
 | 
						if(status == XBufferOverflow)
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
	if(ev->state & ControlMask) {
 | 
						if(ev->state & ControlMask)
 | 
				
			||||||
		KeySym lower, upper;
 | 
							switch(ksym) {
 | 
				
			||||||
 | 
					 | 
				
			||||||
		XConvertCase(ksym, &lower, &upper);
 | 
					 | 
				
			||||||
		switch(lower) {
 | 
					 | 
				
			||||||
		case XK_a: ksym = XK_Home;      break;
 | 
							case XK_a: ksym = XK_Home;      break;
 | 
				
			||||||
		case XK_b: ksym = XK_Left;      break;
 | 
							case XK_b: ksym = XK_Left;      break;
 | 
				
			||||||
		case XK_c: ksym = XK_Escape;    break;
 | 
							case XK_c: ksym = XK_Escape;    break;
 | 
				
			||||||
@@ -281,7 +278,17 @@ keypress(XKeyEvent *ev) {
 | 
				
			|||||||
		default:
 | 
							default:
 | 
				
			||||||
			return;
 | 
								return;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						else if(ev->state & Mod1Mask)
 | 
				
			||||||
 | 
							switch(ksym) {
 | 
				
			||||||
 | 
							case XK_g: ksym = XK_Home;  break;
 | 
				
			||||||
 | 
							case XK_G: ksym = XK_End;   break;
 | 
				
			||||||
 | 
							case XK_h: ksym = XK_Prior; break;
 | 
				
			||||||
 | 
							case XK_j: ksym = XK_Up;    break;
 | 
				
			||||||
 | 
							case XK_k: ksym = XK_Down;  break;
 | 
				
			||||||
 | 
							case XK_l: ksym = XK_Next;  break;
 | 
				
			||||||
 | 
							default:
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	switch(ksym) {
 | 
						switch(ksym) {
 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
		if(!iscntrl(*buf))
 | 
							if(!iscntrl(*buf))
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user