/* * vim:ts=4:sw=4:expandtab * * i3 - an improved dynamic tiling window manager * © 2009 Michael Stapelberg and contributors (see also: LICENSE) * * commands.c: all command functions (see commands_parser.c) * */ #pragma once #include #include "commands_parser.h" /** The beginning of the prototype for every cmd_ function. */ #define I3_CMD Match *current_match, struct CommandResultIR *cmd_output /** * Initializes the specified 'Match' data structure and the initial state of * commands.c for matching target windows of a command. * */ void cmd_criteria_init(I3_CMD); /** * A match specification just finished (the closing square bracket was found), * so we filter the list of owindows. * */ void cmd_criteria_match_windows(I3_CMD); /** * Interprets a ctype=cvalue pair and adds it to the current match * specification. * */ void cmd_criteria_add(I3_CMD, const char *ctype, const char *cvalue); /** * Implementation of 'move [window|container] [to] workspace * next|prev|next_on_output|prev_on_output'. * */ void cmd_move_con_to_workspace(I3_CMD, const char *which); /** * Implementation of 'move [window|container] [to] workspace back_and_forth'. * */ void cmd_move_con_to_workspace_back_and_forth(I3_CMD); /** * Implementation of 'move [--no-auto-back-and-forth] [window|container] [to] workspace '. * */ void cmd_move_con_to_workspace_name(I3_CMD, const char *name, const char *no_auto_back_and_forth); /** * Implementation of 'move [--no-auto-back-and-forth] [window|container] [to] workspace number '. * */ void cmd_move_con_to_workspace_number(I3_CMD, const char *which, const char *no_auto_back_and_forth); /** * Implementation of 'resize set [px] [px]'. * */ void cmd_resize_set(I3_CMD, long cwidth, const char *mode_width, long cheight, const char *mode_height); /** * Implementation of 'resize grow|shrink [ px] [or ppt]'. * */ void cmd_resize(I3_CMD, const char *way, const char *direction, long resize_px, long resize_ppt); /** * Implementation of 'border normal|pixel []', 'border none|1pixel|toggle'. * */ void cmd_border(I3_CMD, const char *border_style_str, long border_width); /** * Implementation of 'nop '. * */ void cmd_nop(I3_CMD, const char *comment); /** * Implementation of 'append_layout '. * */ void cmd_append_layout(I3_CMD, const char *path); /** * Implementation of 'workspace next|prev|next_on_output|prev_on_output'. * */ void cmd_workspace(I3_CMD, const char *which); /** * Implementation of 'workspace [--no-auto-back-and-forth] number ' * */ void cmd_workspace_number(I3_CMD, const char *which, const char *no_auto_back_and_forth); /** * Implementation of 'workspace back_and_forth'. * */ void cmd_workspace_back_and_forth(I3_CMD); /** * Implementation of 'workspace [--no-auto-back-and-forth] ' * */ void cmd_workspace_name(I3_CMD, const char *name, const char *no_auto_back_and_forth); /** * Implementation of 'mark [--add|--replace] [--toggle] ' * */ void cmd_mark(I3_CMD, const char *mark, const char *mode, const char *toggle); /** * Implementation of 'unmark [mark]' * */ void cmd_unmark(I3_CMD, const char *mark); /** * Implementation of 'mode '. * */ void cmd_mode(I3_CMD, const char *mode); /** * Implementation of 'move [window|container] [to] output '. * */ void cmd_move_con_to_output(I3_CMD, const char *name); /** * Implementation of 'move [window|container] [to] mark '. * */ void cmd_move_con_to_mark(I3_CMD, const char *mark); /** * Implementation of 'floating enable|disable|toggle' * */ void cmd_floating(I3_CMD, const char *floating_mode); /** * Implementation of 'move workspace to [output] '. * */ void cmd_move_workspace_to_output(I3_CMD, const char *name); /** * Implementation of 'split v|h|t|vertical|horizontal|toggle'. * */ void cmd_split(I3_CMD, const char *direction); /** * Implementation of 'kill [window|client]'. * */ void cmd_kill(I3_CMD, const char *kill_mode_str); /** * Implementation of 'exec [--no-startup-id] '. * */ void cmd_exec(I3_CMD, const char *nosn, const char *command); /** * Implementation of 'focus left|right|up|down'. * */ void cmd_focus_direction(I3_CMD, const char *direction); /** * Implementation of 'focus tiling|floating|mode_toggle'. * */ void cmd_focus_window_mode(I3_CMD, const char *window_mode); /** * Implementation of 'focus parent|child'. * */ void cmd_focus_level(I3_CMD, const char *level); /** * Implementation of 'focus'. * */ void cmd_focus(I3_CMD); /** * Implementation of 'fullscreen [enable|disable|toggle] [global]'. * */ void cmd_fullscreen(I3_CMD, const char *action, const char *fullscreen_mode); /** * Implementation of 'sticky enable|disable|toggle'. * */ void cmd_sticky(I3_CMD, const char *action); /** * Implementation of 'move [ [px]]'. * */ void cmd_move_direction(I3_CMD, const char *direction, long move_px); /** * Implementation of 'layout default|stacked|stacking|tabbed|splitv|splith'. * */ void cmd_layout(I3_CMD, const char *layout_str); /** * Implementation of 'layout toggle [all|split]'. * */ void cmd_layout_toggle(I3_CMD, const char *toggle_mode); /** * Implementation of 'exit'. * */ void cmd_exit(I3_CMD); /** * Implementation of 'reload'. * */ void cmd_reload(I3_CMD); /** * Implementation of 'restart'. * */ void cmd_restart(I3_CMD); /** * Implementation of 'open'. * */ void cmd_open(I3_CMD); /** * Implementation of 'focus output '. * */ void cmd_focus_output(I3_CMD, const char *name); /** * Implementation of 'move [window|container] [to] [absolute] position [px] [px] * */ void cmd_move_window_to_position(I3_CMD, const char *method, long x, long y); /** * Implementation of 'move [window|container] [to] [absolute] position center * */ void cmd_move_window_to_center(I3_CMD, const char *method); /** * Implementation of 'move [window|container] [to] position mouse' * */ void cmd_move_window_to_mouse(I3_CMD); /** * Implementation of 'move scratchpad'. * */ void cmd_move_scratchpad(I3_CMD); /** * Implementation of 'scratchpad show'. * */ void cmd_scratchpad_show(I3_CMD); /** * Implementation of 'swap [container] [with] id|con_id|mark '. * */ void cmd_swap(I3_CMD, const char *mode, const char *arg); /** * Implementation of 'title_format ' * */ void cmd_title_format(I3_CMD, const char *format); /** * Implementation of 'rename workspace to ' * */ void cmd_rename_workspace(I3_CMD, const char *old_name, const char *new_name); /** * Implementation of 'bar (hidden_state hide|show|toggle)|(mode dock|hide|invisible|toggle) []' * */ void cmd_bar(I3_CMD, const char *bar_type, const char *bar_value, const char *bar_id); /* * Implementation of 'shmlog |toggle|on|off' * */ void cmd_shmlog(I3_CMD, const char *argument); /* * Implementation of 'debuglog toggle|on|off' * */ void cmd_debuglog(I3_CMD, const char *argument);