X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=parser-specs%2Fcommands.spec;h=c751091430ef7ff81aa54346a3a32af99afe963d;hb=a271666fa7c94b78e06db292457b373fac948732;hp=4224707c4c8829122d6c0368bcb583f7cc61f8f6;hpb=13147978c50b4efa5b4eb0b65d8175aa596a76fe;p=i3%2Fi3 diff --git a/parser-specs/commands.spec b/parser-specs/commands.spec index 4224707c..c7510914 100644 --- a/parser-specs/commands.spec +++ b/parser-specs/commands.spec @@ -1,7 +1,7 @@ # vim:ts=2:sw=2:expandtab # # i3 - an improved dynamic tiling window manager -# © 2009-2012 Michael Stapelberg and contributors (see also: LICENSE) +# © 2009 Michael Stapelberg and contributors (see also: LICENSE) # # parser-specs/commands.spec: Specification file for generate-command-parser.pl # which will generate the appropriate header files for our C parser. @@ -19,6 +19,8 @@ state INITIAL: 'exit' -> call cmd_exit() 'restart' -> call cmd_restart() 'reload' -> call cmd_reload() + 'shmlog' -> SHMLOG + 'debuglog' -> DEBUGLOG 'border' -> BORDER 'layout' -> LAYOUT 'append_layout' -> APPEND_LAYOUT @@ -27,24 +29,30 @@ state INITIAL: 'kill' -> KILL 'open' -> call cmd_open() 'fullscreen' -> FULLSCREEN + 'sticky' -> STICKY 'split' -> SPLIT 'floating' -> FLOATING 'mark' -> MARK + 'unmark' -> UNMARK 'resize' -> RESIZE 'rename' -> RENAME 'nop' -> NOP 'scratchpad' -> SCRATCHPAD + 'title_format' -> TITLE_FORMAT 'mode' -> MODE + 'bar' -> BAR state CRITERIA: - ctype = 'class' -> CRITERION - ctype = 'instance' -> CRITERION + ctype = 'class' -> CRITERION + ctype = 'instance' -> CRITERION ctype = 'window_role' -> CRITERION - ctype = 'con_id' -> CRITERION - ctype = 'id' -> CRITERION - ctype = 'con_mark' -> CRITERION - ctype = 'title' -> CRITERION - ctype = 'urgent' -> CRITERION + ctype = 'con_id' -> CRITERION + ctype = 'id' -> CRITERION + ctype = 'window_type' -> CRITERION + ctype = 'con_mark' -> CRITERION + ctype = 'title' -> CRITERION + ctype = 'urgent' -> CRITERION + ctype = 'workspace' -> CRITERION ']' -> call cmd_criteria_match_windows(); INITIAL state CRITERION: @@ -61,7 +69,19 @@ state EXEC: command = string -> call cmd_exec($nosn, $command) -# border normal|none|1pixel|toggle|1pixel +# shmlog |toggle|on|off +state SHMLOG: + # argument may be a number + argument = string + -> call cmd_shmlog($argument) + +# debuglog toggle|on|off +state DEBUGLOG: + argument = 'toggle', 'on', 'off' + -> call cmd_debuglog($argument) + +# border normal|pixel [] +# border none|1pixel|toggle state BORDER: border_style = 'normal', 'pixel' -> BORDER_WIDTH @@ -141,12 +161,33 @@ state KILL: end -> call cmd_kill($kill_mode) +# fullscreen enable|toggle [global] +# fullscreen disable # fullscreen [global] state FULLSCREEN: - fullscreen_mode = 'global' - -> call cmd_fullscreen($fullscreen_mode) + action = 'disable' + -> call cmd_fullscreen($action, "output") + action = 'enable', 'toggle' + -> FULLSCREEN_MODE + action = '' + -> FULLSCREEN_COMPAT + +state FULLSCREEN_MODE: + mode = 'global' + -> call cmd_fullscreen($action, $mode) end - -> call cmd_fullscreen($fullscreen_mode) + -> call cmd_fullscreen($action, "output") + +state FULLSCREEN_COMPAT: + mode = 'global' + -> call cmd_fullscreen("toggle", $mode) + end + -> call cmd_fullscreen("toggle", "output") + +# sticky enable|disable|toggle +state STICKY: + action = 'enable', 'disable', 'toggle' + -> call cmd_sticky($action) # split v|h|vertical|horizontal state SPLIT: @@ -158,25 +199,36 @@ state FLOATING: floating = 'enable', 'disable', 'toggle' -> call cmd_floating($floating) -# mark +# mark [--toggle] state MARK: + toggle = '--toggle' + -> + mark = string + -> call cmd_mark($mark, $toggle) + +# unmark [mark] +state UNMARK: + end + -> call cmd_unmark($mark) mark = string - -> call cmd_mark($mark) + -> call cmd_unmark($mark) # resize state RESIZE: way = 'grow', 'shrink' -> RESIZE_DIRECTION + set = 'set' + -> RESIZE_SET state RESIZE_DIRECTION: direction = 'up', 'down', 'left', 'right', 'width', 'height' -> RESIZE_PX state RESIZE_PX: - resize_px = word + resize_px = number -> RESIZE_TILING end - -> call cmd_resize($way, $direction, "10", "10") + -> call cmd_resize($way, $direction, 10, 10) state RESIZE_TILING: 'px' @@ -184,38 +236,67 @@ state RESIZE_TILING: 'or' -> RESIZE_TILING_OR end - -> call cmd_resize($way, $direction, $resize_px, "10") + -> call cmd_resize($way, $direction, &resize_px, 10) state RESIZE_TILING_OR: - 'ppt' - -> - resize_ppt = word + resize_ppt = number + -> RESIZE_TILING_FINAL + +state RESIZE_TILING_FINAL: + 'ppt', end + -> call cmd_resize($way, $direction, &resize_px, &resize_ppt) + +state RESIZE_SET: + width = number + -> RESIZE_WIDTH + +state RESIZE_WIDTH: + 'px' -> - end - -> call cmd_resize($way, $direction, $resize_px, $resize_ppt) + height = number + -> RESIZE_HEIGHT + +state RESIZE_HEIGHT: + 'px', end + -> call cmd_resize_set(&width, &height) # rename workspace to +# rename workspace to state RENAME: 'workspace' -> RENAME_WORKSPACE state RENAME_WORKSPACE: + old_name = 'to' + -> RENAME_WORKSPACE_LIKELY_TO old_name = word -> RENAME_WORKSPACE_TO +state RENAME_WORKSPACE_LIKELY_TO: + 'to' + -> RENAME_WORKSPACE_NEW_NAME + new_name = word + -> call cmd_rename_workspace(NULL, $new_name) + state RENAME_WORKSPACE_TO: 'to' - -> + -> RENAME_WORKSPACE_NEW_NAME + +state RENAME_WORKSPACE_NEW_NAME: + end + -> call cmd_rename_workspace(NULL, "to") new_name = string -> call cmd_rename_workspace($old_name, $new_name) # move [ [px]] -# move [window|container] [to] workspace [|next|prev|current] +# move [window|container] [to] workspace [|next|prev|next_on_output|prev_on_output|current] # move [window|container] [to] output +# move [window|container] [to] mark # move [window|container] [to] scratchpad # move workspace to [output] # move scratchpad # move [window|container] [to] [absolute] position [ [ [px] [px]] | center ] +# move [window|container] [to] position mouse|cursor|pointer state MOVE: 'window' -> @@ -227,6 +308,8 @@ state MOVE: -> MOVE_WORKSPACE 'output' -> MOVE_TO_OUTPUT + 'mark' + -> MOVE_TO_MARK 'scratchpad' -> call cmd_move_scratchpad() direction = 'left', 'right', 'up', 'down' @@ -249,9 +332,9 @@ state MOVE_DIRECTION_PX: -> call cmd_move_direction($direction, $pixels) state MOVE_WORKSPACE: - 'to' + 'to ' -> MOVE_WORKSPACE_TO_OUTPUT - workspace = 'next', 'prev', 'next_on_output', 'prev_on_output', 'current' + workspace = 'next_on_output', 'prev_on_output', 'next', 'prev', 'current' -> call cmd_move_con_to_workspace($workspace) 'back_and_forth' -> call cmd_move_con_to_workspace_back_and_forth() @@ -268,6 +351,10 @@ state MOVE_TO_OUTPUT: output = string -> call cmd_move_con_to_output($output) +state MOVE_TO_MARK: + mark = string + -> call cmd_move_con_to_mark($mark) + state MOVE_WORKSPACE_TO_OUTPUT: 'output' -> @@ -281,6 +368,8 @@ state MOVE_TO_ABSOLUTE_POSITION: state MOVE_TO_POSITION: 'center' -> call cmd_move_window_to_center($method) + 'mouse', 'cursor', 'pointer' + -> call cmd_move_window_to_mouse() coord_x = word -> MOVE_TO_POSITION_X @@ -302,7 +391,34 @@ state MODE: state NOP: comment = string -> call cmd_nop($comment) + end + -> call cmd_nop(NULL) state SCRATCHPAD: 'show' -> call cmd_scratchpad_show() + +state TITLE_FORMAT: + format = string + -> call cmd_title_format($format) + +# bar (hidden_state hide|show|toggle)|(mode dock|hide|invisible|toggle) [] +state BAR: + bar_type = 'hidden_state' + -> BAR_HIDDEN_STATE + bar_type = 'mode' + -> BAR_MODE + +state BAR_HIDDEN_STATE: + bar_value = 'hide', 'show', 'toggle' + -> BAR_W_ID + +state BAR_MODE: + bar_value = 'dock', 'hide', 'invisible', 'toggle' + -> BAR_W_ID + +state BAR_W_ID: + bar_id = word + -> + end + -> call cmd_bar($bar_type, $bar_value, $bar_id)