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`
|
`-nwm, --unmanaged`
|
||||||
: Don't spawn spmenu as a window manager controlled client/window (X11 only)
|
: 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`
|
`-cf, --config-file file`
|
||||||
: Set config file to load to file
|
: Set config file to load to file
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ spmenu = {
|
||||||
padding-horizontal = 0; // Outer horizontal padding (px)
|
padding-horizontal = 0; // Outer horizontal padding (px)
|
||||||
width = 0; // Width when X and/or Y offset is set, 0 is the default (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)
|
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)
|
alpha = 1; // Enable alpha/transparency (0/1)
|
||||||
x = 0; // X position offset (px)
|
x = 0; // X position offset (px)
|
||||||
y = 0; // Y 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
|
Don\[cq]t spawn spmenu as a window manager controlled client/window (X11
|
||||||
only)
|
only)
|
||||||
.TP
|
.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]
|
\f[V]-cf, --config-file file\f[R]
|
||||||
Set config file to load to file
|
Set config file to load to file
|
||||||
.TP
|
.TP
|
||||||
|
|
|
@ -181,6 +181,10 @@ void readargs(int argc, char *argv[]) {
|
||||||
managed = 1;
|
managed = 1;
|
||||||
} else if (!strcmp(argv[i], "-nwm") || (!strcmp(argv[i], "--unmanaged"))) { // don't display as managed wm window
|
} else if (!strcmp(argv[i], "-nwm") || (!strcmp(argv[i], "--unmanaged"))) { // don't display as managed wm window
|
||||||
managed = 0;
|
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
|
} else if (!strcmp(argv[i], "-na") || (!strcmp(argv[i], "--no-alpha"))) { // disable alpha
|
||||||
alpha = 0;
|
alpha = 0;
|
||||||
} else if (!strcmp(argv[i], "-a") || (!strcmp(argv[i], "--alpha"))) { // alpha
|
} else if (!strcmp(argv[i], "-a") || (!strcmp(argv[i], "--alpha"))) { // alpha
|
||||||
|
@ -744,6 +748,19 @@ void usage(int status) {
|
||||||
fputs(
|
fputs(
|
||||||
"spmenu -wm, --managed, --x11-client Spawn spmenu as a window manager controlled client/window (X11 only)\n"
|
"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 -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 -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 -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 -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, "width", &menuwidth); // spmenu.window.width
|
||||||
config_setting_lookup_int(conf, "border", &borderwidth); // spmenu.window.border
|
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, "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, "monitor", &mon); // spmenu.window.monitor
|
||||||
config_setting_lookup_int(conf, "alpha", &alpha); // spmenu.window.alpha
|
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 loadbinds = 1; /* Load keybind file (~/.config/spmenu/binds.conf) on runtime */
|
||||||
static int mon = -1; /* Monitor to run spmenu on */
|
static int mon = -1; /* Monitor to run spmenu on */
|
||||||
static int managed = 0; /* Let your window manager manage spmenu? */
|
static int managed = 0; /* Let your window manager manage spmenu? */
|
||||||
|
static int grabkeyboard = 1; /* Grab keyboard/general input */
|
||||||
|
|
||||||
/* Wayland options */
|
/* Wayland options */
|
||||||
static int scrolldistance = 512; /* Distance to scroll for a scroll action to count */
|
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);
|
anchor_layer(&state, menuposition);
|
||||||
set_exclusive_zone(&state, -1);
|
set_exclusive_zone(&state, -1);
|
||||||
set_keyboard(&state, 1);
|
set_keyboard(&state, grabkeyboard ? 1 : 0);
|
||||||
add_layer_listener(&state);
|
add_layer_listener(&state);
|
||||||
set_visible_layer(&state);
|
set_visible_layer(&state);
|
||||||
|
|
||||||
|
|
|
@ -548,12 +548,18 @@ void handle(void) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (fast && !isatty(0)) {
|
if (fast && !isatty(0)) {
|
||||||
|
if (grabkeyboard) {
|
||||||
grabkeyboard_x11();
|
grabkeyboard_x11();
|
||||||
|
}
|
||||||
|
|
||||||
readstdin();
|
readstdin();
|
||||||
} else {
|
} else {
|
||||||
readstdin();
|
readstdin();
|
||||||
|
|
||||||
|
if (grabkeyboard) {
|
||||||
grabkeyboard_x11();
|
grabkeyboard_x11();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
set_mode();
|
set_mode();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue