diff --git a/libs/argv.c b/libs/argv.c index 12364a8..c8e853d 100644 --- a/libs/argv.c +++ b/libs/argv.c @@ -533,7 +533,6 @@ void readargs(int argc, char *argv[]) { #if !USEWAYLAND protocol = 0; #endif - if (casesensitive) { fstrncmp = strncmp; fstrstr = strstr; diff --git a/libs/conf/config.c b/libs/conf/config.c index c2c41fd..317bf6e 100644 --- a/libs/conf/config.c +++ b/libs/conf/config.c @@ -132,6 +132,7 @@ int bind_init(void) { } config_setting_lookup_int(conf, "ignoreglobalkeys", &sp.ignoreglobalkeys); + config_setting_lookup_int(conf, "forceinsertmode", &sp.forceinsertmode); } } diff --git a/spmenu.c b/spmenu.c index 0097450..f849703 100644 --- a/spmenu.c +++ b/spmenu.c @@ -136,6 +136,7 @@ struct sp { int ignoreglobalkeys; // should be set in the config file, if 1, the Keys keys array is ignored int ignoreconfmouse; // same for mouse int ignoreglobalmouse; // same for mouse + int forceinsertmode; }; struct mo { @@ -512,6 +513,12 @@ void set_mode(void) { sp_strncpy(tx.modetext, normtext, sizeof(tx.modetext)); } + + if (sp.forceinsertmode) { + sp.mode = 1; + sp.allowkeys = !sp.mode; + hidemode = 1; + } } void handle(void) {