X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=parser-specs%2Fcommands.spec;h=a587332817e8b23bde3d48cd8ef434c43924b275;hb=50edf495aa3971bfb67471c3aaf2eb72e7abd443;hp=94dc630a8c1e0ab6e7de6e54508dacfcdb4e1b2a;hpb=05fb9096362e788f032de6eccea2d7fea03317ab;p=i3%2Fi3 diff --git a/parser-specs/commands.spec b/parser-specs/commands.spec index 94dc630a..a5873328 100644 --- a/parser-specs/commands.spec +++ b/parser-specs/commands.spec @@ -29,6 +29,7 @@ state INITIAL: 'kill' -> KILL 'open' -> call cmd_open() 'fullscreen' -> FULLSCREEN + 'sticky' -> STICKY 'split' -> SPLIT 'floating' -> FLOATING 'mark' -> MARK @@ -37,6 +38,7 @@ state INITIAL: 'rename' -> RENAME 'nop' -> NOP 'scratchpad' -> SCRATCHPAD + 'swap' -> SWAP 'title_format' -> TITLE_FORMAT 'mode' -> MODE 'bar' -> BAR @@ -52,6 +54,8 @@ state CRITERIA: ctype = 'title' -> CRITERION ctype = 'urgent' -> CRITERION ctype = 'workspace' -> CRITERION + ctype = 'tiling', 'floating' + -> call cmd_criteria_add($ctype, NULL); CRITERIA ']' -> call cmd_criteria_match_windows(); INITIAL state CRITERION: @@ -85,15 +89,15 @@ state BORDER: border_style = 'normal', 'pixel' -> BORDER_WIDTH border_style = 'none', 'toggle' - -> call cmd_border($border_style, "0") + -> call cmd_border($border_style, 0) border_style = '1pixel' - -> call cmd_border($border_style, "1") + -> call cmd_border($border_style, 1) state BORDER_WIDTH: end - -> call cmd_border($border_style, "2") - border_width = word - -> call cmd_border($border_style, $border_width) + -> call cmd_border($border_style, 2) + border_width = number + -> call cmd_border($border_style, &border_width) # layout default|stacked|stacking|tabbed|splitv|splith # layout toggle [split|all] @@ -107,7 +111,7 @@ state LAYOUT: state LAYOUT_TOGGLE: end -> call cmd_layout_toggle($toggle_mode) - toggle_mode = 'split', 'all' + toggle_mode = string -> call cmd_layout_toggle($toggle_mode) # append_layout @@ -116,9 +120,11 @@ state APPEND_LAYOUT: # workspace next|prev|next_on_output|prev_on_output # workspace back_and_forth -# workspace -# workspace number +# workspace [--no-auto-back-and-forth] +# workspace [--no-auto-back-and-forth] number state WORKSPACE: + no_auto_back_and_forth = '--no-auto-back-and-forth' + -> direction = 'next_on_output', 'prev_on_output', 'next', 'prev' -> call cmd_workspace($direction) 'back_and_forth' @@ -126,11 +132,11 @@ state WORKSPACE: 'number' -> WORKSPACE_NUMBER workspace = string - -> call cmd_workspace_name($workspace) + -> call cmd_workspace_name($workspace, $no_auto_back_and_forth) state WORKSPACE_NUMBER: workspace = string - -> call cmd_workspace_number($workspace) + -> call cmd_workspace_number($workspace, $no_auto_back_and_forth) # focus left|right|up|down # focus output @@ -183,9 +189,14 @@ state FULLSCREEN_COMPAT: end -> call cmd_fullscreen("toggle", "output") -# split v|h|vertical|horizontal +# sticky enable|disable|toggle +state STICKY: + action = 'enable', 'disable', 'toggle' + -> call cmd_sticky($action) + +# split v|h|t|vertical|horizontal|toggle state SPLIT: - direction = 'horizontal', 'vertical', 'v', 'h' + direction = 'horizontal', 'vertical', 'toggle', 'v', 'h', 't' -> call cmd_split($direction) # floating enable|disable|toggle @@ -193,12 +204,14 @@ state FLOATING: floating = 'enable', 'disable', 'toggle' -> call cmd_floating($floating) -# mark [--toggle] +# mark [--add|--replace] [--toggle] state MARK: + mode = '--add', '--replace' + -> toggle = '--toggle' -> mark = string - -> call cmd_mark($mark, $toggle) + -> call cmd_mark($mark, $mode, $toggle) # unmark [mark] state UNMARK: @@ -211,16 +224,18 @@ state UNMARK: 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' @@ -228,15 +243,29 @@ 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: - resize_ppt = word + resize_ppt = number -> RESIZE_TILING_FINAL state RESIZE_TILING_FINAL: 'ppt', end - -> call cmd_resize($way, $direction, $resize_px, $resize_ppt) + -> call cmd_resize($way, $direction, &resize_px, &resize_ppt) + +state RESIZE_SET: + width = number + -> RESIZE_WIDTH + +state RESIZE_WIDTH: + 'px' + -> + height = number + -> RESIZE_HEIGHT + +state RESIZE_HEIGHT: + 'px', end + -> call cmd_resize_set(&width, &height) # rename workspace to # rename workspace to @@ -245,24 +274,28 @@ state RENAME: -> RENAME_WORKSPACE state RENAME_WORKSPACE: - old_name = 'to' + 'to' -> RENAME_WORKSPACE_LIKELY_TO old_name = word -> RENAME_WORKSPACE_TO state RENAME_WORKSPACE_LIKELY_TO: - 'to' - -> RENAME_WORKSPACE_NEW_NAME + 'to ' + -> RENAME_WORKSPACE_LIKELY_TO_NEW_NAME new_name = word -> call cmd_rename_workspace(NULL, $new_name) +state RENAME_WORKSPACE_LIKELY_TO_NEW_NAME: + new_name = string + -> call cmd_rename_workspace("to", $new_name) + end + -> call cmd_rename_workspace(NULL, "to") + state RENAME_WORKSPACE_TO: 'to' - -> RENAME_WORKSPACE_NEW_NAME + -> RENAME_WORKSPACE_TO_NEW_NAME -state RENAME_WORKSPACE_NEW_NAME: - end - -> call cmd_rename_workspace(NULL, "to") +state RENAME_WORKSPACE_TO_NEW_NAME: new_name = string -> call cmd_rename_workspace($old_name, $new_name) @@ -282,6 +315,8 @@ state MOVE: -> 'to' -> + no_auto_back_and_forth = '--no-auto-back-and-forth' + -> 'workspace' -> MOVE_WORKSPACE 'output' @@ -298,16 +333,16 @@ state MOVE: -> MOVE_TO_ABSOLUTE_POSITION state MOVE_DIRECTION: - pixels = word + pixels = number -> MOVE_DIRECTION_PX end - -> call cmd_move_direction($direction, "10") + -> call cmd_move_direction($direction, 10) state MOVE_DIRECTION_PX: 'px' - -> call cmd_move_direction($direction, $pixels) + -> call cmd_move_direction($direction, &pixels) end - -> call cmd_move_direction($direction, $pixels) + -> call cmd_move_direction($direction, &pixels) state MOVE_WORKSPACE: 'to ' @@ -319,11 +354,11 @@ state MOVE_WORKSPACE: 'number' -> MOVE_WORKSPACE_NUMBER workspace = string - -> call cmd_move_con_to_workspace_name($workspace) + -> call cmd_move_con_to_workspace_name($workspace, $no_auto_back_and_forth) state MOVE_WORKSPACE_NUMBER: number = string - -> call cmd_move_con_to_workspace_number($number) + -> call cmd_move_con_to_workspace_number($number, $no_auto_back_and_forth) state MOVE_TO_OUTPUT: output = string @@ -348,18 +383,18 @@ state MOVE_TO_POSITION: -> call cmd_move_window_to_center($method) 'mouse', 'cursor', 'pointer' -> call cmd_move_window_to_mouse() - coord_x = word + coord_x = number -> MOVE_TO_POSITION_X state MOVE_TO_POSITION_X: 'px' -> - coord_y = word + coord_y = number -> MOVE_TO_POSITION_Y state MOVE_TO_POSITION_Y: 'px', end - -> call cmd_move_window_to_position($method, $coord_x, $coord_y) + -> call cmd_move_window_to_position($method, &coord_x, &coord_y) # mode state MODE: @@ -376,6 +411,21 @@ state SCRATCHPAD: 'show' -> call cmd_scratchpad_show() +# swap [container] [with] id +# swap [container] [with] con_id +# swap [container] [with] mark +state SWAP: + 'container' + -> + 'with' + -> + mode = 'id', 'con_id', 'mark' + -> SWAP_ARGUMENT + +state SWAP_ARGUMENT: + arg = string + -> call cmd_swap($mode, $arg) + state TITLE_FORMAT: format = string -> call cmd_title_format($format)