i3
Macros | Functions
commands.h File Reference
#include "commands_parser.h"
Include dependency graph for commands.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define I3_CMD   Match *current_match, struct CommandResultIR *cmd_output
 The beginning of the prototype for every cmd_ function. More...
 

Functions

void cmd_criteria_init (I3_CMD)
 Initializes the specified 'Match' data structure and the initial state of commands.c for matching target windows of a command. More...
 
void cmd_criteria_match_windows (I3_CMD)
 A match specification just finished (the closing square bracket was found), so we filter the list of owindows. More...
 
void cmd_criteria_add (I3_CMD, char *ctype, char *cvalue)
 Interprets a ctype=cvalue pair and adds it to the current match specification. More...
 
void cmd_move_con_to_workspace (I3_CMD, char *which)
 Implementation of 'move [window|container] [to] workspace next|prev|next_on_output|prev_on_output'. More...
 
void cmd_move_con_to_workspace_back_and_forth (I3_CMD)
 Implementation of 'move [window|container] [to] workspace back_and_forth'. More...
 
void cmd_move_con_to_workspace_name (I3_CMD, char *name)
 Implementation of 'move [window|container] [to] workspace <name>'. More...
 
void cmd_move_con_to_workspace_number (I3_CMD, char *which)
 Implementation of 'move [window|container] [to] workspace number <number>'. More...
 
void cmd_resize (I3_CMD, char *way, char *direction, char *resize_px, char *resize_ppt)
 Implementation of 'resize grow|shrink <direction> [<px> px] [or <ppt> ppt]'. More...
 
void cmd_border (I3_CMD, char *border_style_str, char *border_width)
 Implementation of 'border normal|none|1pixel|toggle'. More...
 
void cmd_nop (I3_CMD, char *comment)
 Implementation of 'nop <comment>'. More...
 
void cmd_append_layout (I3_CMD, char *path)
 Implementation of 'append_layout <path>'. More...
 
void cmd_workspace (I3_CMD, char *which)
 Implementation of 'workspace next|prev|next_on_output|prev_on_output'. More...
 
void cmd_workspace_number (I3_CMD, char *which)
 Implementation of 'workspace number <number>'. More...
 
void cmd_workspace_back_and_forth (I3_CMD)
 Implementation of 'workspace back_and_forth'. More...
 
void cmd_workspace_name (I3_CMD, char *name)
 Implementation of 'workspace <name>'. More...
 
void cmd_mark (I3_CMD, char *mark)
 Implementation of 'mark <mark>'. More...
 
void cmd_unmark (I3_CMD, char *mark)
 Implementation of 'unmark [mark]'. More...
 
void cmd_mode (I3_CMD, char *mode)
 Implementation of 'mode <string>'. More...
 
void cmd_move_con_to_output (I3_CMD, char *name)
 Implementation of 'move [window|container] [to] output <str>'. More...
 
void cmd_floating (I3_CMD, char *floating_mode)
 Implementation of 'floating enable|disable|toggle'. More...
 
void cmd_move_workspace_to_output (I3_CMD, char *name)
 Implementation of 'move workspace to [output] <str>'. More...
 
void cmd_split (I3_CMD, char *direction)
 Implementation of 'split v|h|vertical|horizontal'. More...
 
void cmd_kill (I3_CMD, char *kill_mode_str)
 Implementation of 'kill [window|client]'. More...
 
void cmd_exec (I3_CMD, char *nosn, char *command)
 Implementation of 'exec [–no-startup-id] <command>'. More...
 
void cmd_focus_direction (I3_CMD, char *direction)
 Implementation of 'focus left|right|up|down'. More...
 
void cmd_focus_window_mode (I3_CMD, char *window_mode)
 Implementation of 'focus tiling|floating|mode_toggle'. More...
 
void cmd_focus_level (I3_CMD, char *level)
 Implementation of 'focus parent|child'. More...
 
void cmd_focus (I3_CMD)
 Implementation of 'focus'. More...
 
void cmd_fullscreen (I3_CMD, char *fullscreen_mode)
 Implementation of 'fullscreen [global]'. More...
 
void cmd_move_direction (I3_CMD, char *direction, char *move_px)
 Implementation of 'move <direction> [<pixels> [px]]'. More...
 
void cmd_layout (I3_CMD, char *layout_str)
 Implementation of 'layout default|stacked|stacking|tabbed|splitv|splith'. More...
 
void cmd_layout_toggle (I3_CMD, char *toggle_mode)
 Implementation of 'layout toggle [all|split]'. More...
 
void cmd_exit (I3_CMD)
 Implementation of 'exit'. More...
 
void cmd_reload (I3_CMD)
 Implementation of 'reload'. More...
 
void cmd_restart (I3_CMD)
 Implementation of 'restart'. More...
 
void cmd_open (I3_CMD)
 Implementation of 'open'. More...
 
void cmd_focus_output (I3_CMD, char *name)
 Implementation of 'focus output <output>'. More...
 
void cmd_move_window_to_position (I3_CMD, char *method, char *x, char *y)
 Implementation of 'move [window|container] [to] [absolute] position <px> [px] <px> [px]. More...
 
void cmd_move_window_to_center (I3_CMD, char *method)
 Implementation of 'move [window|container] [to] [absolute] position center. More...
 
void cmd_move_scratchpad (I3_CMD)
 Implementation of 'move scratchpad'. More...
 
void cmd_scratchpad_show (I3_CMD)
 Implementation of 'scratchpad show'. More...
 
void cmd_rename_workspace (I3_CMD, char *old_name, char *new_name)
 Implementation of 'rename workspace <name> to <name>'. More...
 
void cmd_bar (I3_CMD, char *bar_type, char *bar_value, char *bar_id)
 Implementation of 'bar (hidden_state hide|show|toggle)|(mode dock|hide|invisible|toggle) [<bar_id>]'. More...
 
void cmd_shmlog (I3_CMD, char *argument)
 
void cmd_debuglog (I3_CMD, char *argument)
 

Macro Definition Documentation

#define I3_CMD   Match *current_match, struct CommandResultIR *cmd_output

The beginning of the prototype for every cmd_ function.

Definition at line 15 of file commands.h.

Function Documentation

void cmd_append_layout ( I3_CMD  ,
char *  path 
)

Implementation of 'append_layout <path>'.

Definition at line 883 of file commands.c.

References con_accepts_window(), croot, DLOG, focused, LOG, Con::parent, render_con(), restore_open_placeholder_windows(), tree_append_json(), Con::type, yerror, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_bar ( I3_CMD  ,
char *  bar_type,
char *  bar_value,
char *  bar_id 
)

Implementation of 'bar (hidden_state hide|show|toggle)|(mode dock|hide|invisible|toggle) [<bar_id>]'.

Definition at line 2045 of file commands.c.

References cmd_bar_hidden_state(), cmd_bar_mode(), ELOG, update_barconfig(), and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_border ( I3_CMD  ,
char *  border_style_str,
char *  border_width 
)

Implementation of 'border normal|none|1pixel|toggle'.

Definition at line 820 of file commands.c.

References Con::border_style, BS_NONE, BS_NORMAL, BS_PIXEL, owindow::con, con_set_border_style(), DLOG, ELOG, HANDLE_EMPTY_MATCH, Con::name, TAILQ_FOREACH, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_criteria_add ( I3_CMD  ,
char *  ctype,
char *  cvalue 
)

Interprets a ctype=cvalue pair and adds it to the current match specification.

Definition at line 337 of file commands.c.

References Match::class, Match::con_id, current_match, DLOG, ELOG, Match::id, Match::instance, Match::mark, regex_new(), Match::title, Match::urgent, and Match::window_role.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_criteria_init ( I3_CMD  )

Initializes the specified 'Match' data structure and the initial state of commands.c for matching target windows of a command.

Referenced by GENERATED_call(), and parse_command().

void cmd_criteria_match_windows ( I3_CMD  )

A match specification just finished (the closing square bracket was found), so we filter the list of owindows.

Definition at line 288 of file commands.c.

References owindow::con, Match::con_id, current_match, DLOG, Match::mark, Con::mark, match_matches_window(), Con::name, regex_matches(), TAILQ_END, TAILQ_FIRST, TAILQ_FOREACH, TAILQ_INIT, TAILQ_INSERT_TAIL, TAILQ_NEXT, and Con::window.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_debuglog ( I3_CMD  ,
char *  argument 
)

Definition at line 2098 of file commands.c.

References get_debug_logging(), LOG, set_debug_logging(), and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_exec ( I3_CMD  ,
char *  nosn,
char *  command 
)

Implementation of 'exec [–no-startup-id] <command>'.

Definition at line 1353 of file commands.c.

References DLOG, start_application(), and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_exit ( I3_CMD  )

Implementation of 'exit'.

Definition at line 1652 of file commands.c.

References config, conn, ipc_shutdown(), Config::ipc_socket_path, and LOG.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_floating ( I3_CMD  ,
char *  floating_mode 
)

Implementation of 'floating enable|disable|toggle'.

Definition at line 1149 of file commands.c.

References owindow::con, DLOG, floating_disable(), floating_enable(), HANDLE_EMPTY_MATCH, Con::name, TAILQ_FOREACH, toggle_floating_mode(), and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_focus ( I3_CMD  )

Implementation of 'focus'.

Definition at line 1453 of file commands.c.

References owindow::con, con_focus(), con_fullscreen_permits_focusing(), con_get_workspace(), current_match, DLOG, ELOG, focused, LOG, match_is_empty(), Con::name, scratchpad_show(), TAILQ_FOREACH, workspace_get(), workspace_show(), yerror, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_focus_direction ( I3_CMD  ,
char *  direction 
)

Implementation of 'focus left|right|up|down'.

Definition at line 1367 of file commands.c.

References DLOG, ELOG, HORIZ, tree_next(), VERT, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_focus_level ( I3_CMD  ,
char *  level 
)

Implementation of 'focus parent|child'.

Definition at line 1425 of file commands.c.

References con_fullscreen_permits_focusing(), DLOG, ELOG, focused, level_down(), level_up(), Con::parent, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_focus_output ( I3_CMD  ,
char *  name 
)

Implementation of 'focus output <output>'.

Definition at line 1725 of file commands.c.

References owindow::con, xoutput::con, DLOG, get_output_from_string(), get_output_of_con(), GREP_FIRST, HANDLE_EMPTY_MATCH, LOG, Workspace_Assignment::output, output_get_content(), TAILQ_FOREACH, workspace_is_visible(), workspace_show(), and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_focus_window_mode ( I3_CMD  ,
char *  window_mode 
)

Implementation of 'focus tiling|floating|mode_toggle'.

Definition at line 1393 of file commands.c.

References con_descend_focused(), con_focus(), con_get_workspace(), DLOG, focused, TAILQ_FIRST, TAILQ_FOREACH, Con::type, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_fullscreen ( I3_CMD  ,
char *  fullscreen_mode 
)

Implementation of 'fullscreen [global]'.

Definition at line 1529 of file commands.c.

References CF_GLOBAL, CF_OUTPUT, owindow::con, con_toggle_fullscreen(), DLOG, HANDLE_EMPTY_MATCH, Con::name, TAILQ_FOREACH, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_kill ( I3_CMD  ,
char *  kill_mode_str 
)

Implementation of 'kill [window|client]'.

Definition at line 1316 of file commands.c.

References owindow::con, current_match, DLOG, ELOG, KILL_CLIENT, KILL_WINDOW, match_is_empty(), Con::name, TAILQ_FOREACH, tree_close(), tree_close_con(), and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_layout ( I3_CMD  ,
char *  layout_str 
)

Implementation of 'layout default|stacked|stacking|tabbed|splitv|splith'.

Definition at line 1583 of file commands.c.

References owindow::con, con_set_layout(), current_match, DLOG, ELOG, focused, L_DEFAULT, L_SPLITH, L_SPLITV, L_STACKED, L_TABBED, match_is_empty(), Con::name, TAILQ_FOREACH, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_layout_toggle ( I3_CMD  ,
char *  toggle_mode 
)

Implementation of 'layout toggle [all|split]'.

Definition at line 1625 of file commands.c.

References owindow::con, con_toggle_layout(), current_match, DLOG, focused, match_is_empty(), Con::name, TAILQ_FOREACH, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_mark ( I3_CMD  ,
char *  mark 
)

Implementation of 'mark <mark>'.

Definition at line 1027 of file commands.c.

References all_cons, owindow::con, DLOG, FREE, HANDLE_EMPTY_MATCH, Con::mark, Con::name, sstrdup(), TAILQ_FOREACH, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_mode ( I3_CMD  ,
char *  mode 
)

Implementation of 'mode <string>'.

Definition at line 1080 of file commands.c.

References DLOG, switch_mode(), and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_move_con_to_output ( I3_CMD  ,
char *  name 
)

Implementation of 'move [window|container] [to] output <str>'.

Definition at line 1092 of file commands.c.

References owindow::con, xoutput::con, con_move_to_workspace(), D_DOWN, D_LEFT, D_RIGHT, D_UP, DLOG, get_output_by_name(), get_output_next_wrap(), get_output_of_con(), GREP_FIRST, HANDLE_EMPTY_MATCH, LOG, Con::name, output_get_content(), TAILQ_FOREACH, workspace_is_visible(), and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_move_con_to_workspace ( I3_CMD  ,
char *  which 
)

Implementation of 'move [window|container] [to] workspace next|prev|next_on_output|prev_on_output'.

Definition at line 416 of file commands.c.

References owindow::con, con_get_workspace(), con_has_children(), con_move_to_workspace(), current_match, DLOG, ELOG, focused, HANDLE_EMPTY_MATCH, match_is_empty(), Con::name, TAILQ_EMPTY, TAILQ_FOREACH, Con::type, workspace_next(), workspace_next_on_output(), workspace_prev(), workspace_prev_on_output(), and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_move_con_to_workspace_back_and_forth ( I3_CMD  )

Implementation of 'move [window|container] [to] workspace back_and_forth'.

Definition at line 465 of file commands.c.

References owindow::con, con_move_to_workspace(), DLOG, HANDLE_EMPTY_MATCH, Con::name, TAILQ_FOREACH, workspace_back_and_forth_get(), yerror, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_move_con_to_workspace_name ( I3_CMD  ,
char *  name 
)

Implementation of 'move [window|container] [to] workspace <name>'.

Definition at line 492 of file commands.c.

References owindow::con, con_has_children(), con_move_to_workspace(), current_match, DLOG, ELOG, focused, HANDLE_EMPTY_MATCH, LOG, match_is_empty(), maybe_auto_back_and_forth_workspace(), Con::name, TAILQ_EMPTY, TAILQ_FOREACH, Con::type, workspace_get(), and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_move_con_to_workspace_number ( I3_CMD  ,
char *  which 
)

Implementation of 'move [window|container] [to] workspace number <number>'.

Definition at line 536 of file commands.c.

References owindow::con, con_has_children(), con_move_to_workspace(), croot, current_match, DLOG, focused, GREP_FIRST, HANDLE_EMPTY_MATCH, LOG, match_is_empty(), maybe_auto_back_and_forth_workspace(), Con::name, Con::num, output_get_content(), TAILQ_EMPTY, TAILQ_FOREACH, Con::type, workspace_get(), yerror, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_move_direction ( I3_CMD  ,
char *  direction,
char *  move_px 
)

Implementation of 'move <direction> [<pixels> [px]]'.

Definition at line 1551 of file commands.c.

References con_is_floating(), D_DOWN, D_LEFT, D_RIGHT, D_UP, DLOG, floating_reposition(), focused, Con::parent, Con::rect, tree_move(), Rect::x, Rect::y, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_move_scratchpad ( I3_CMD  )

Implementation of 'move scratchpad'.

Definition at line 1841 of file commands.c.

References owindow::con, DLOG, HANDLE_EMPTY_MATCH, Con::name, scratchpad_move(), TAILQ_FOREACH, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_move_window_to_center ( I3_CMD  ,
char *  method 
)

Implementation of 'move [window|container] [to] [absolute] position center.

Definition at line 1804 of file commands.c.

References con_get_workspace(), con_is_floating(), croot, DLOG, ELOG, floating_maybe_reassign_ws(), floating_reposition(), focused, Rect::height, Con::parent, Con::rect, Rect::width, Rect::x, Rect::y, yerror, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_move_window_to_position ( I3_CMD  ,
char *  method,
char *  x,
char *  y 
)

Implementation of 'move [window|container] [to] [absolute] position <px> [px] <px> [px].

Definition at line 1767 of file commands.c.

References con_is_floating(), DLOG, ELOG, floating_maybe_reassign_ws(), floating_reposition(), focused, Con::parent, Con::rect, x, Rect::x, y, Rect::y, yerror, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_move_workspace_to_output ( I3_CMD  ,
char *  name 
)
void cmd_nop ( I3_CMD  ,
char *  comment 
)

Implementation of 'nop <comment>'.

Definition at line 873 of file commands.c.

References LOG.

Referenced by GENERATED_call().

void cmd_open ( I3_CMD  )

Implementation of 'open'.

Definition at line 1705 of file commands.c.

References owindow::con, con_focus(), L_SPLITH, Con::layout, LOG, tree_open_con(), y, and ystr.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_reload ( I3_CMD  )

Implementation of 'reload'.

Definition at line 1666 of file commands.c.

References command_error_nagbar_pid, config_error_nagbar_pid, conn, ipc_send_event(), kill_nagbar(), load_configuration(), LOG, update_barconfig(), x_set_i3_atoms(), and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_rename_workspace ( I3_CMD  ,
char *  old_name,
char *  new_name 
)

Implementation of 'rename workspace <name> to <name>'.

Definition at line 1883 of file commands.c.

References con_attach(), con_detach(), con_focus(), con_get_workspace(), croot, focused, FREE, GREP_FIRST, ipc_send_event(), LOG, Con::name, Con::num, Workspace_Assignment::output, output_get_content(), Con::parent, sstrdup(), TAILQ_FOREACH, yerror, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_resize ( I3_CMD  ,
char *  way,
char *  direction,
char *  resize_px,
char *  resize_ppt 
)

Implementation of 'resize grow|shrink <direction> [<px> px] [or <ppt> ppt]'.

Definition at line 775 of file commands.c.

References cmd_resize_floating(), cmd_resize_tiling_direction(), cmd_resize_tiling_width_height(), owindow::con, con_inside_floating(), current_match, DLOG, Window::dock, HANDLE_EMPTY_MATCH, TAILQ_FOREACH, Con::window, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_restart ( I3_CMD  )

Implementation of 'restart'.

Definition at line 1685 of file commands.c.

References config, i3_restart(), ipc_shutdown(), Config::ipc_socket_path, LOG, purge_zerobyte_logfile(), and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_scratchpad_show ( I3_CMD  )

Implementation of 'scratchpad show'.

Definition at line 1861 of file commands.c.

References owindow::con, current_match, DLOG, match_is_empty(), Con::name, scratchpad_show(), TAILQ_FOREACH, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_shmlog ( I3_CMD  ,
char *  argument 
)

Definition at line 2067 of file commands.c.

References default_shmlog_size, init_logging(), LOG, shmlog_size, update_shmlog_atom(), and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_split ( I3_CMD  ,
char *  direction 
)

Implementation of 'split v|h|vertical|horizontal'.

Definition at line 1294 of file commands.c.

References owindow::con, current_match, DLOG, focused, HORIZ, LOG, match_is_empty(), Con::name, TAILQ_FOREACH, tree_split(), VERT, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_unmark ( I3_CMD  ,
char *  mark 
)

Implementation of 'unmark [mark]'.

Definition at line 1055 of file commands.c.

References all_cons, owindow::con, DLOG, FREE, Con::mark, TAILQ_FOREACH, and ysuccess.

Referenced by GENERATED_call().

void cmd_workspace ( I3_CMD  ,
char *  which 
)

Implementation of 'workspace next|prev|next_on_output|prev_on_output'.

Definition at line 924 of file commands.c.

References DLOG, ELOG, workspace_next(), workspace_next_on_output(), workspace_prev(), workspace_prev_on_output(), workspace_show(), and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_workspace_back_and_forth ( I3_CMD  )

Implementation of 'workspace back_and_forth'.

Definition at line 994 of file commands.c.

References workspace_back_and_forth(), and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_workspace_name ( I3_CMD  ,
char *  name 
)

Implementation of 'workspace <name>'.

Definition at line 1006 of file commands.c.

References DLOG, LOG, maybe_back_and_forth(), workspace_show_by_name(), and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function:

void cmd_workspace_number ( I3_CMD  ,
char *  which 
)

Implementation of 'workspace number <number>'.

Definition at line 954 of file commands.c.

References croot, GREP_FIRST, LOG, maybe_back_and_forth(), Con::name, Con::num, output_get_content(), TAILQ_FOREACH, workspace_show(), workspace_show_by_name(), yerror, and ysuccess.

Referenced by GENERATED_call().

Here is the call graph for this function: