Merge remote-tracking branch 'origin/master' into themer

This commit is contained in:
Dave Davenport 2017-01-07 10:38:47 +01:00
commit 8124cfb023
3 changed files with 56 additions and 7 deletions

View file

@ -48,6 +48,7 @@
[ -no-click-to-exit ]
[ -threads *num* ]
[ -config *filename* ]
[ -no-show-match ]
## DESCRIPTION
@ -204,6 +205,14 @@ Load alternative configuration file.
Select the scrolling method. 0: Per page, 1: continuous.
`-no-show-match`
Hide the indicator that shows what part of the string is matched.
`-lazy-grab`
When fail to grab keyboard, don't block but retry later in background.
### Theming
All colors are either hex #rrggbb, #aarrggbb or argb:aarrggbbvalues or X11 color names.
@ -881,6 +890,15 @@ Use `qalc` to get a simple calculator in **rofi**:
rofi -show calc -modi "calc:qalc +u8 -nocurrencies"
## I3
In [I3](http://i3wm.org/) you want to bind rofi to be launched on key-release. Otherwise it cannot grab the keyboard.
See also the I3 [manual](http://i3wm.org/docs/userguide.html):
Some tools (such as import or xdotool) might be unable to run upon a KeyPress event, because the keyboard/pointer is
still grabbed. For these situations, the --release flag can be used, which will execute the command after the keys have
been released.
## LICENSE
MIT/X11

View file

@ -1,13 +1,13 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "ROFI\-MANPAGE" "" "2016-12-23" "" ""
.TH "ROFI\-MANPAGE" "" "January 2017" "" ""
.
.SH "NAME"
\fBrofi\fR \- A window switcher, run launcher, ssh dialog and dmenu replacement
.
.SH "SYNOPSIS"
\fBrofi\fR [ \-width \fIpct_scr\fR ] [ \-lines \fIlines\fR ] [ \-columns \fIcolumns\fR ] [ \-font \fIpangofont\fR ] [ \-terminal \fIterminal\fR ] [ \-location \fIposition\fR ] [ \-fixed\-num\-lines ] [ \-padding \fIpadding\fR ] [ \-display \fIdisplay\fR ] [ \-bw \fIwidth\fR ] [ \-dmenu [ \-p \fIprompt\fR ] [ \-sep \fIseparator\fR ] [ \-l \fIselected line\fR ] [ \-mesg ] [ \-select ] [ \-input \fIinput\fR ] ] [ \-filter \fIfilter\fR ] [ \-ssh\-client \fIclient\fR ] [ \-ssh\-command \fIcommand\fR ] [ \-window\-command \fIcommand\fR ] [ \-disable\-history ] [ \-levenshtein\-sort ] [ \-case\-sensitive ] [ \-cycle ] [ \-show \fImode\fR ] [ \-modi \fImode1,mode2\fR ] [ \-eh \fIelement height\fR ] [ \-e \fImessage\fR] [ \-a \fIrow\fR ] [ \-u \fIrow\fR ] [ \-pid \fIpath\fR ] [ \-version ] [ \-help ] [ \-dump\-xresources ] [ \-dump\-xresources\-theme ] [ \-auto\-select ] [ \-parse\-hosts ] [ \-no\-parse\-known\-hosts ] [ \-combi\-modi \fImode1,mode2\fR ] [ \-normal\-window ] [ \-fake\-transparency ] [ \-matching \fImethod\fR ] [ \-tokenize ] [ \-no\-click\-to\-exit ] [ \-threads \fInum\fR ] [ \-config \fIfilename\fR ]
\fBrofi\fR [ \-width \fIpct_scr\fR ] [ \-lines \fIlines\fR ] [ \-columns \fIcolumns\fR ] [ \-font \fIpangofont\fR ] [ \-terminal \fIterminal\fR ] [ \-location \fIposition\fR ] [ \-fixed\-num\-lines ] [ \-padding \fIpadding\fR ] [ \-display \fIdisplay\fR ] [ \-bw \fIwidth\fR ] [ \-dmenu [ \-p \fIprompt\fR ] [ \-sep \fIseparator\fR ] [ \-l \fIselected line\fR ] [ \-mesg ] [ \-select ] [ \-input \fIinput\fR ] ] [ \-filter \fIfilter\fR ] [ \-ssh\-client \fIclient\fR ] [ \-ssh\-command \fIcommand\fR ] [ \-window\-command \fIcommand\fR ] [ \-disable\-history ] [ \-levenshtein\-sort ] [ \-case\-sensitive ] [ \-cycle ] [ \-show \fImode\fR ] [ \-modi \fImode1,mode2\fR ] [ \-eh \fIelement height\fR ] [ \-e \fImessage\fR] [ \-a \fIrow\fR ] [ \-u \fIrow\fR ] [ \-pid \fIpath\fR ] [ \-version ] [ \-help ] [ \-dump\-xresources ] [ \-dump\-xresources\-theme ] [ \-auto\-select ] [ \-parse\-hosts ] [ \-no\-parse\-known\-hosts ] [ \-combi\-modi \fImode1,mode2\fR ] [ \-normal\-window ] [ \-fake\-transparency ] [ \-matching \fImethod\fR ] [ \-tokenize ] [ \-no\-click\-to\-exit ] [ \-threads \fInum\fR ] [ \-config \fIfilename\fR ] [ \-no\-show\-match ]
.
.SH "DESCRIPTION"
\fBrofi\fR is an X11 popup window switcher, run dialog, dmenu replacement and more\. It focuses on being fast to use and have minimal distraction\. It supports keyboard and mouse navigation, type to filter, tokenized search and more\.
@ -294,6 +294,18 @@ Load alternative configuration file\.
.P
Select the scrolling method\. 0: Per page, 1: continuous\.
.
.P
\fB\-no\-show\-match\fR
.
.P
Hide the indicator that shows what part of the string is matched\.
.
.P
\fB\-lazy\-grab\fR
.
.P
When fail to grab keyboard, don\'t block but retry later in background\.
.
.SS "Theming"
All colors are either hex #rrggbb, #aarrggbb or argb:aarrggbbvalues or X11 color names\.
.
@ -1463,6 +1475,12 @@ Use \fBqalc\fR to get a simple calculator in \fBrofi\fR:
.
.IP "" 0
.
.SH "I3"
In I3 \fIhttp://i3wm\.org/\fR you want to bind rofi to be launched on key\-release\. Otherwise it cannot grab the keyboard\. See also the I3 manual \fIhttp://i3wm\.org/docs/userguide\.html\fR:
.
.P
Some tools (such as import or xdotool) might be unable to run upon a KeyPress event, because the keyboard/pointer is still grabbed\. For these situations, the \-\-release flag can be used, which will execute the command after the keys have been released\.
.
.SH "LICENSE"
.
.nf

View file

@ -254,6 +254,7 @@ static void print_main_application_options ( int is_term )
print_help_msg ( "-markup", "", "Enable pango markup where possible.", NULL, is_term );
print_help_msg ( "-normal-window", "", "In dmenu mode, behave as a normal window. (experimental)", NULL, is_term );
print_help_msg ( "-show", "[mode]", "Show the mode 'mode' and exit. The mode has to be enabled.", NULL, is_term );
print_help_msg ( "-lazy-grab", "", "When fail to grab keyboard, don't block but retry later.", NULL, is_term );
}
static void help ( G_GNUC_UNUSED int argc, char **argv )
{
@ -627,11 +628,23 @@ static gboolean startup ( G_GNUC_UNUSED gpointer data )
// We grab this using the rootwindow (as dmenu does it).
// this seems to result in the smallest delay for most people.
if ( ( window_flags & MENU_NORMAL_WINDOW ) == 0 ) {
if ( !take_keyboard ( xcb_stuff_get_root_window ( xcb), 0) ){
g_timeout_add ( 1,lazy_grab_keyboard, NULL);
}
if ( !take_pointer ( xcb_stuff_get_root_window ( xcb ), 0 )) {
g_timeout_add ( 1,lazy_grab_pointer, NULL);
if ( find_arg ( "-lazy-grab") >= 0 ){
if ( !take_keyboard ( xcb_stuff_get_root_window ( xcb), 0) ){
g_timeout_add ( 1,lazy_grab_keyboard, NULL);
}
if ( !take_pointer ( xcb_stuff_get_root_window ( xcb ), 0 )) {
g_timeout_add ( 1,lazy_grab_pointer, NULL);
}
} else {
if ( !take_keyboard ( xcb_stuff_get_root_window ( xcb), 500) ){
fprintf ( stderr, "Failed to grab keyboard, even after %d uS.", 500 * 1000 );
g_main_loop_quit ( main_loop );
return G_SOURCE_REMOVE;
}
if ( ! take_pointer ( xcb_stuff_get_root_window ( xcb ), 100 ) ) {
fprintf ( stderr, "Failed to grab mouse pointer, even after %d uS.", 100*1000);
}
}
}
TICK_N ( "Grab keyboard" );