wip: map key combos to custom text strings (including escapes)

With this, it is now possible to map key combos to custom escapes. The
new bindings are defined in a new section, “text-bindings”, on the
form “string=key combo”.

The string can consist of printable characters, or \xNN style hex
digits:

  [text-bindings]
  abcd = Control+a
  \x1b[A = Control+b Control+c Control+d  # map ctrl+b/c/d to UP
This commit is contained in:
Daniel Eklöf 2022-02-06 19:36:44 +01:00
parent 8fa16f616c
commit 422d94fb46
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
5 changed files with 132 additions and 4 deletions

View file

@ -47,6 +47,7 @@ struct argv {
enum binding_aux_type {
BINDING_AUX_NONE,
BINDING_AUX_PIPE,
BINDING_AUX_TEXT,
};
struct binding_aux {
@ -55,6 +56,11 @@ struct binding_aux {
union {
struct argv pipe;
struct {
uint8_t *data;
size_t len;
} text;
};
};
@ -63,6 +69,11 @@ enum key_binding_type {
MOUSE_BINDING,
};
struct config_key_binding_text {
char *text;
bool master_copy;
};
struct config_key_binding {
int action; /* One of the varios bind_action_* enums from wayland.h */
struct config_key_modifiers modifiers;