summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/input.conf3
-rw-r--r--input/input.c11
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);