diff options
-rw-r--r-- | etc/input.conf | 3 | ||||
-rw-r--r-- | input/input.c | 11 |
2 files changed, 14 insertions, 0 deletions
diff --git a/etc/input.conf b/etc/input.conf index fa0db45e28..943050eb75 100644 --- a/etc/input.conf +++ b/etc/input.conf @@ -39,6 +39,9 @@ # file, if unedited, doesn't define any bindings). # Lines that have a space after the '#' are always ignored as real comments. +# If this is enabled, treat all the following bindings as default. +#default-bindings start + #MOUSE_BTN0 ignore # don't do anything #MOUSE_BTN0_DBL cycle fullscreen # toggle fullscreen on/off #MOUSE_BTN2 cycle pause # toggle pause on/off diff --git a/input/input.c b/input/input.c index 9061f2008a..cc36020af7 100644 --- a/input/input.c +++ b/input/input.c @@ -1386,6 +1386,17 @@ static int parse_config(struct input_ctx *ictx, bool builtin, bstr data, line = bstr_lstrip(line); if (line.len == 0 || bstr_startswith0(line, "#")) continue; + if (bstr_eatstart0(&line, "default-bindings ")) { + bstr orig = line; + bstr_split_tok(line, "#", &line, &(bstr){0}); + line = bstr_strip(line); + if (bstr_equals0(line, "start")) { + builtin = true; + } else { + MP_ERR(ictx, "Broken line: %.*s at %s\n", BSTR_P(orig), cur_loc); + } + continue; + } struct bstr command; // Find the key name starting a line struct bstr keyname = bstr_split(line, WHITESPACE, &command); |