Issue #45: Add option to not grab keyboard
This commit is contained in:
parent
cce7ae2e41
commit
3d9711c971
|
@ -376,6 +376,12 @@ in the config files.
|
|||
`-nwm, --unmanaged`
|
||||
: Don't spawn spmenu as a window manager controlled client/window (X11 only)
|
||||
|
||||
`-gk, --grab-keyboard`
|
||||
: Grab keyboard on runtime
|
||||
|
||||
`-ngk, --no-grab-keyboard`
|
||||
: Grab keyboard on runtime
|
||||
|
||||
`-cf, --config-file file`
|
||||
: Set config file to load to file
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ spmenu = {
|
|||
padding-horizontal = 0; // Outer horizontal padding (px)
|
||||
width = 0; // Width when X and/or Y offset is set, 0 is the default (px)
|
||||
managed = 0; // Allow your window manager to manage spmenu as a window (0/1)
|
||||
grabkeyboard = 1; // Grab keyboard on runtime (0/1)
|
||||
alpha = 1; // Enable alpha/transparency (0/1)
|
||||
x = 0; // X position offset (px)
|
||||
y = 0; // Y position offset (px)
|
||||
|
|
6
spmenu.1
6
spmenu.1
|
@ -405,6 +405,12 @@ Spawn spmenu as a window manager controlled client/window (X11 only)
|
|||
Don\[cq]t spawn spmenu as a window manager controlled client/window (X11
|
||||
only)
|
||||
.TP
|
||||
\f[V]-gk, --grab-keyboard\f[R]
|
||||
Grab keyboard on runtime
|
||||
.TP
|
||||
\f[V]-ngk, --no-grab-keyboard\f[R]
|
||||
Grab keyboard on runtime
|
||||
.TP
|
||||
\f[V]-cf, --config-file file\f[R]
|
||||
Set config file to load to file
|
||||
.TP
|
||||
|
|
|
@ -181,6 +181,10 @@ void readargs(int argc, char *argv[]) {
|
|||
managed = 1;
|
||||
} else if (!strcmp(argv[i], "-nwm") || (!strcmp(argv[i], "--unmanaged"))) { // don't display as managed wm window
|
||||
managed = 0;
|
||||
} else if (!strcmp(argv[i], "-gk") || (!strcmp(argv[i], "--grab-keyboard"))) { // grab keyboard
|
||||
grabkeyboard = 1;
|
||||
} else if (!strcmp(argv[i], "-ngk") || (!strcmp(argv[i], "--no-grab-keyboard"))) { // don't grab keyboard
|
||||
grabkeyboard = 0;
|
||||
} else if (!strcmp(argv[i], "-na") || (!strcmp(argv[i], "--no-alpha"))) { // disable alpha
|
||||
alpha = 0;
|
||||
} else if (!strcmp(argv[i], "-a") || (!strcmp(argv[i], "--alpha"))) { // alpha
|
||||
|
@ -744,6 +748,19 @@ void usage(int status) {
|
|||
fputs(
|
||||
"spmenu -wm, --managed, --x11-client Spawn spmenu as a window manager controlled client/window (X11 only)\n"
|
||||
"spmenu -nwm, --unmanaged Don't spawn spmenu as a window manager controlled client/window (X11 only)\n"
|
||||
"spmenu -gk, --grab-keyboard Grab keyboard on runtime\n"
|
||||
"spmenu -ngk, --no-grab-keyboard Don't grab keyboard on runtime\n"
|
||||
"spmenu -cf, --config-file <file> Set config file to load to <file>\n"
|
||||
"spmenu -lcfg, --load-config Load spmenu configuration (~/.config/spmenu/spmenu.conf)\n"
|
||||
"spmenu -ncfg, --no-load-config Don't load spmenu configuration (~/.config/spmenu/spmenu.conf)\n"
|
||||
"spmenu -bf, --bind-file <file> Exclusively load binds from <file>\n"
|
||||
"spmenu -lbi, --load-binds Load spmenu binds (~/.config/spmenu/binds.conf)\n"
|
||||
"spmenu -nlbi, --no-load-binds Don't load spmenu binds (~/.config/spmenu/binds.conf)\n"
|
||||
"spmenu -tm, --theme <theme> Load theme <theme>\n"
|
||||
"spmenu -ltm, --load-theme Load theme\n"
|
||||
"spmenu -nltm, --no-load-theme Don't load theme\n"
|
||||
"spmenu -x11, --x11 Run spmenu in X11 mode\n"
|
||||
"spmenu -wl, --wayland Run spmenu in Wayland mode\n"
|
||||
"spmenu -cf, --config-file <file> Set config file to load to <file>\n"
|
||||
"spmenu -lcfg, --load-config Load spmenu configuration (~/.config/spmenu/spmenu.conf)\n"
|
||||
"spmenu -ncfg, --no-load-config Don't load spmenu configuration (~/.config/spmenu/spmenu.conf)\n"
|
||||
|
|
|
@ -286,6 +286,7 @@ void conf_init(void) {
|
|||
config_setting_lookup_int(conf, "width", &menuwidth); // spmenu.window.width
|
||||
config_setting_lookup_int(conf, "border", &borderwidth); // spmenu.window.border
|
||||
config_setting_lookup_int(conf, "managed", &managed); // spmenu.window.managed
|
||||
config_setting_lookup_int(conf, "grabkeyboard", &grabkeyboard); // spmenu.window.grabkeyboard
|
||||
config_setting_lookup_int(conf, "monitor", &mon); // spmenu.window.monitor
|
||||
config_setting_lookup_int(conf, "alpha", &alpha); // spmenu.window.alpha
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ static int loadtheme = 1; /* Load theme (~/.config/spmenu/them
|
|||
static int loadbinds = 1; /* Load keybind file (~/.config/spmenu/binds.conf) on runtime */
|
||||
static int mon = -1; /* Monitor to run spmenu on */
|
||||
static int managed = 0; /* Let your window manager manage spmenu? */
|
||||
static int grabkeyboard = 1; /* Grab keyboard/general input */
|
||||
|
||||
/* Wayland options */
|
||||
static int scrolldistance = 512; /* Distance to scroll for a scroll action to count */
|
||||
|
|
|
@ -51,7 +51,7 @@ void handle_wl(void) {
|
|||
|
||||
anchor_layer(&state, menuposition);
|
||||
set_exclusive_zone(&state, -1);
|
||||
set_keyboard(&state, 1);
|
||||
set_keyboard(&state, grabkeyboard ? 1 : 0);
|
||||
add_layer_listener(&state);
|
||||
set_visible_layer(&state);
|
||||
|
||||
|
|
|
@ -548,12 +548,18 @@ void handle(void) {
|
|||
#endif
|
||||
|
||||
if (fast && !isatty(0)) {
|
||||
if (grabkeyboard) {
|
||||
grabkeyboard_x11();
|
||||
}
|
||||
|
||||
readstdin();
|
||||
} else {
|
||||
readstdin();
|
||||
|
||||
if (grabkeyboard) {
|
||||
grabkeyboard_x11();
|
||||
}
|
||||
}
|
||||
|
||||
set_mode();
|
||||
|
||||
|
|
Loading…
Reference in a new issue