mirror of
https://cagebreak.project-repo.co/cagebreak.git
synced 2026-08-23 14:04:19 +02:00
Support printing commands as string over ipc
This commit is contained in:
parent
4339bc01db
commit
9d1cafa2f6
2 changed files with 61 additions and 50 deletions
|
|
@ -1294,8 +1294,8 @@ keybinding_definekey(struct cg_server *server, struct keybinding *kb) {
|
|||
keybinding_list_push(server->keybindings, kb);
|
||||
ipc_send_event(server,
|
||||
"{\"event_name\":\"definekey\",\"modifiers\":%d,\"key\":"
|
||||
"%d,\"command\":%d}",
|
||||
kb->modifiers, kb->key, kb->action);
|
||||
"%d,\"command\":\"%s\"}",
|
||||
kb->modifiers, kb->key, keybinding_action_string[kb->action]);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
107
keybinding.h
107
keybinding.h
|
|
@ -10,59 +10,70 @@
|
|||
|
||||
struct cg_server;
|
||||
|
||||
#define FOREACH_KEYBINDING(KEYBINDING) \
|
||||
KEYBINDING(KEYBINDING_RUN_COMMAND) /* data.c is the string to execute */ \
|
||||
KEYBINDING(KEYBINDING_CLOSE_VIEW) \
|
||||
KEYBINDING(KEYBINDING_SPLIT_VERTICAL) \
|
||||
KEYBINDING(KEYBINDING_SPLIT_HORIZONTAL) \
|
||||
KEYBINDING(KEYBINDING_CHANGE_TTY) /*data.u is the desired tty*/\
|
||||
KEYBINDING(KEYBINDING_LAYOUT_FULLSCREEN)\
|
||||
KEYBINDING(KEYBINDING_CYCLE_VIEWS) /* data.b is 0 if forward, 1 if reverse */\
|
||||
KEYBINDING(KEYBINDING_CYCLE_TILES) /* data.b is 0 if forward, 1 if reverse */\
|
||||
KEYBINDING(KEYBINDING_CYCLE_OUTPUT) /* data.b is 0 if forward, 1 if reverse */\
|
||||
KEYBINDING(KEYBINDING_CONFIGURE_OUTPUT) /* data.o_cfg is the desired output */\
|
||||
\
|
||||
KEYBINDING(KEYBINDING_CONFIGURE_MESSAGE) /* data.m_cfg is the desired config */\
|
||||
KEYBINDING(KEYBINDING_CONFIGURE_INPUT) /* data.i_cfg is the desired input configuration */\
|
||||
\
|
||||
KEYBINDING(KEYBINDING_QUIT)\
|
||||
KEYBINDING(KEYBINDING_NOOP)\
|
||||
KEYBINDING(KEYBINDING_SWITCH_OUTPUT) /* data.u is the desired output */\
|
||||
KEYBINDING(KEYBINDING_SWITCH_WORKSPACE) /* data.u is the desired workspace */\
|
||||
KEYBINDING(KEYBINDING_SWITCH_MODE) /* data.u is the desired mode */\
|
||||
KEYBINDING(KEYBINDING_SWITCH_DEFAULT_MODE) /* data.u is the desired mode */\
|
||||
KEYBINDING(KEYBINDING_RESIZE_TILE_HORIZONTAL) /* data.i is the number of pixels to add */\
|
||||
\
|
||||
KEYBINDING(KEYBINDING_RESIZE_TILE_VERTICAL) /* data.i is the number of pixels to add to */\
|
||||
\
|
||||
KEYBINDING(KEYBINDING_MOVE_VIEW_TO_WORKSPACE) /* data.u is the desired workspace */\
|
||||
KEYBINDING(KEYBINDING_MOVE_VIEW_TO_OUTPUT) /* data.u is the desired output */\
|
||||
KEYBINDING(KEYBINDING_MOVE_VIEW_TO_CYCLE_OUTPUT) /* data.b is 0 if forward, 1 if */\
|
||||
\
|
||||
KEYBINDING(KEYBINDING_DUMP)\
|
||||
KEYBINDING(KEYBINDING_SHOW_TIME)\
|
||||
KEYBINDING(KEYBINDING_SHOW_INFO)\
|
||||
KEYBINDING(KEYBINDING_DISPLAY_MESSAGE)\
|
||||
KEYBINDING(KEYBINDING_CURSOR)\
|
||||
\
|
||||
KEYBINDING(KEYBINDING_SWAP_LEFT)\
|
||||
KEYBINDING(KEYBINDING_SWAP_RIGHT)\
|
||||
KEYBINDING(KEYBINDING_SWAP_TOP)\
|
||||
KEYBINDING(KEYBINDING_SWAP_BOTTOM)\
|
||||
\
|
||||
KEYBINDING(KEYBINDING_FOCUS_LEFT)\
|
||||
KEYBINDING(KEYBINDING_FOCUS_RIGHT)\
|
||||
KEYBINDING(KEYBINDING_FOCUS_TOP)\
|
||||
KEYBINDING(KEYBINDING_FOCUS_BOTTOM)\
|
||||
KEYBINDING(KEYBINDING_FOCUS_TILE)\
|
||||
\
|
||||
KEYBINDING(KEYBINDING_DEFINEKEY) /* data.kb is the keybinding definition */\
|
||||
KEYBINDING(KEYBINDING_BACKGROUND) /* data.color is the background color */\
|
||||
KEYBINDING(KEYBINDING_DEFINEMODE) /* data.c is the mode name */\
|
||||
KEYBINDING(KEYBINDING_WORKSPACES) /* data.i is the number of workspaces */\
|
||||
|
||||
|
||||
#define GENERATE_ENUM(ENUM) ENUM,
|
||||
#define GENERATE_STRING(STRING) #STRING,
|
||||
|
||||
/* Important: if you add a keybinding which uses data.c or requires "free"
|
||||
* to be called, don't forget to add it to the function "keybinding_list_free"
|
||||
* in keybinding.c */
|
||||
enum keybinding_action {
|
||||
KEYBINDING_RUN_COMMAND, // data.c is the string to execute
|
||||
KEYBINDING_CLOSE_VIEW,
|
||||
KEYBINDING_SPLIT_VERTICAL,
|
||||
KEYBINDING_SPLIT_HORIZONTAL,
|
||||
KEYBINDING_CHANGE_TTY, // data.u is the desired tty
|
||||
KEYBINDING_LAYOUT_FULLSCREEN,
|
||||
KEYBINDING_CYCLE_VIEWS, // data.b is 0 if forward, 1 if reverse
|
||||
KEYBINDING_CYCLE_TILES, // data.b is 0 if forward, 1 if reverse
|
||||
KEYBINDING_CYCLE_OUTPUT, // data.b is 0 if forward, 1 if reverse
|
||||
KEYBINDING_CONFIGURE_OUTPUT, // data.o_cfg is the desired output
|
||||
// configuration
|
||||
KEYBINDING_CONFIGURE_MESSAGE, // data.m_cfg is the desired config
|
||||
KEYBINDING_CONFIGURE_INPUT, // data.i_cfg is the desired input
|
||||
// configuration
|
||||
KEYBINDING_QUIT,
|
||||
KEYBINDING_NOOP,
|
||||
KEYBINDING_SWITCH_OUTPUT, // data.u is the desired output
|
||||
KEYBINDING_SWITCH_WORKSPACE, // data.u is the desired workspace
|
||||
KEYBINDING_SWITCH_MODE, // data.u is the desired mode
|
||||
KEYBINDING_SWITCH_DEFAULT_MODE, // data.u is the desired mode
|
||||
KEYBINDING_RESIZE_TILE_HORIZONTAL, // data.i is the number of pixels to add
|
||||
// to the current width
|
||||
KEYBINDING_RESIZE_TILE_VERTICAL, // data.i is the number of pixels to add to
|
||||
// the current height
|
||||
KEYBINDING_MOVE_VIEW_TO_WORKSPACE, // data.u is the desired workspace
|
||||
KEYBINDING_MOVE_VIEW_TO_OUTPUT, // data.u is the desired output
|
||||
KEYBINDING_MOVE_VIEW_TO_CYCLE_OUTPUT, // data.b is 0 if forward, 1 if
|
||||
// reverse
|
||||
KEYBINDING_DUMP,
|
||||
KEYBINDING_SHOW_TIME,
|
||||
KEYBINDING_SHOW_INFO,
|
||||
KEYBINDING_DISPLAY_MESSAGE,
|
||||
KEYBINDING_CURSOR,
|
||||
FOREACH_KEYBINDING(GENERATE_ENUM)
|
||||
};
|
||||
|
||||
KEYBINDING_SWAP_LEFT,
|
||||
KEYBINDING_SWAP_RIGHT,
|
||||
KEYBINDING_SWAP_TOP,
|
||||
KEYBINDING_SWAP_BOTTOM,
|
||||
|
||||
KEYBINDING_FOCUS_LEFT,
|
||||
KEYBINDING_FOCUS_RIGHT,
|
||||
KEYBINDING_FOCUS_TOP,
|
||||
KEYBINDING_FOCUS_BOTTOM,
|
||||
KEYBINDING_FOCUS_TILE,
|
||||
|
||||
KEYBINDING_DEFINEKEY, // data.kb is the keybinding definition
|
||||
KEYBINDING_BACKGROUND, // data.color is the background color
|
||||
KEYBINDING_DEFINEMODE, // data.c is the mode name
|
||||
KEYBINDING_WORKSPACES, // data.i is the number of workspaces
|
||||
static const char *keybinding_action_string[] = {
|
||||
FOREACH_KEYBINDING(GENERATE_STRING)
|
||||
};
|
||||
|
||||
union keybinding_params {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue