KeyboardFilter MODIFIER(std::string modifier) { return MODIFIER({modifier}); }
.flag = ENTRY_##f##_MENU } static const struct { const char *name; const size_t len; const int flag; } specialMenus[] = { SPECIALMENU(help, HELP), SPECIALMENU(apple, APPLE), SPECIALMENU(window, WINDOWS), {NULL} }; #undef SPECIALMENU #define MODIFIER(n, f) {.name = #n, .len = sl(#n), .mask = f } static const struct { const char *name; const size_t len; const NSUInteger mask; } modifiers[] = { MODIFIER(Control, NSControlKeyMask), MODIFIER(Ctrl, NSControlKeyMask), MODIFIER(Option, NSAlternateKeyMask), MODIFIER(Opt, NSAlternateKeyMask), MODIFIER(Alt, NSAlternateKeyMask), MODIFIER(Shift, NSShiftKeyMask), MODIFIER(Command, NSCommandKeyMask), MODIFIER(Cmd, NSCommandKeyMask), MODIFIER(Meta, NSCommandKeyMask), {NULL} }; #undef MODIFIER #define ACCEL(n, c) {.name = #n, .len = sl(#n), .ch = c } static const struct { const char *name; const size_t len; const UniChar ch;
SPECIAL(VTERM_KEY_TAB), ASCII('q','Q'), ASCII('w','W'), ASCII('e','E'), ASCII('r','R'), ASCII('t','T'), ASCII('y','Y'), ASCII('u','U'), ASCII('i','I'), ASCII('o','O'), ASCII('p','P'), ASCII('[','{'), ASCII(']','}'), SPECIAL(VTERM_KEY_ENTER), /* Third row: 0x1d - 0x29 */ MODIFIER(VTERM_MOD_CTRL), /* Ctrl really */ ASCII('a','A'), ASCII('s','S'), ASCII('d','D'), ASCII('f','F'), ASCII('g','G'), ASCII('h','H'), ASCII('j','J'), ASCII('k','K'), ASCII('l','L'), ASCII(';',':'), ASCII('\'','"'), ASCII('`','~'), /* Fourth row: 0x2a - 0x36 */ MODIFIER(VTERM_MOD_SHIFT), ASCII('\\','|'),