X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=parser-specs%2Fcommands.spec;h=a4a01a88d0668385bb5c154d4c058b016771953a;hb=9bfe6a6236ca733a4fc4e072b5014e01d430bfd9;hp=0fba3e313ed809c07932b97e03b168f6c6a583e8;hpb=4f975aa0603d9d4acbe984b52874cc80764b5e37;p=i3%2Fi3 diff --git a/parser-specs/commands.spec b/parser-specs/commands.spec index 0fba3e31..a4a01a88 100644 --- a/parser-specs/commands.spec +++ b/parser-specs/commands.spec @@ -31,6 +31,7 @@ state INITIAL: 'floating' -> FLOATING 'mark' -> MARK 'resize' -> RESIZE + 'rename' -> RENAME 'nop' -> NOP 'scratchpad' -> SCRATCHPAD 'mode' -> MODE @@ -43,6 +44,7 @@ state CRITERIA: ctype = 'id' -> CRITERION ctype = 'con_mark' -> CRITERION ctype = 'title' -> CRITERION + ctype = 'urgent' -> CRITERION ']' -> call cmd_criteria_match_windows(); INITIAL state CRITERION: @@ -59,15 +61,35 @@ state EXEC: command = string -> call cmd_exec($nosn, $command) -# border +# border normal|none|1pixel|toggle|1pixel state BORDER: - border_style = 'normal', 'none', '1pixel', 'toggle' - -> call cmd_border($border_style) + border_style = 'normal', 'pixel' + -> BORDER_WIDTH + border_style = 'none', 'toggle' + -> call cmd_border($border_style, "0") + border_style = '1pixel' + -> call cmd_border($border_style, "1") -# layout +state BORDER_WIDTH: + end + -> call cmd_border($border_style, "2") + border_width = word + -> call cmd_border($border_style, $border_width) + +# layout default|stacked|stacking|tabbed|splitv|splith +# layout toggle [split|all] state LAYOUT: - layout_mode = 'default', 'stacked', 'stacking', 'tabbed' + layout_mode = 'default', 'stacked', 'stacking', 'tabbed', 'splitv', 'splith' -> call cmd_layout($layout_mode) + 'toggle' + -> LAYOUT_TOGGLE + +# layout toggle [split|all] +state LAYOUT_TOGGLE: + end + -> call cmd_layout_toggle($toggle_mode) + toggle_mode = 'split', 'all' + -> call cmd_layout_toggle($toggle_mode) # append_layout state APPEND_LAYOUT: @@ -76,14 +98,21 @@ state APPEND_LAYOUT: # workspace next|prev|next_on_output|prev_on_output # workspace back_and_forth # workspace +# workspace number state WORKSPACE: direction = 'next_on_output', 'prev_on_output', 'next', 'prev' -> call cmd_workspace($direction) 'back_and_forth' -> call cmd_workspace_back_and_forth() + 'number' + -> WORKSPACE_NUMBER workspace = string -> call cmd_workspace_name($workspace) +state WORKSPACE_NUMBER: + workspace = string + -> call cmd_workspace_number($workspace) + # focus left|right|up|down # focus output # focus tiling|floating|mode_toggle @@ -105,16 +134,14 @@ state FOCUS_OUTPUT: output = string -> call cmd_focus_output($output) -# kill window|client -# kill +# kill [window|client] state KILL: kill_mode = 'window', 'client' -> call cmd_kill($kill_mode) end -> call cmd_kill($kill_mode) -# fullscreen global -# fullscreen +# fullscreen [global] state FULLSCREEN: fullscreen_mode = 'global' -> call cmd_fullscreen($fullscreen_mode) @@ -123,7 +150,7 @@ state FULLSCREEN: # split v|h|vertical|horizontal state SPLIT: - direction = 'v', 'h', 'vertical', 'horizontal' + direction = 'horizontal', 'vertical', 'v', 'h' -> call cmd_split($direction) # floating enable|disable|toggle @@ -142,7 +169,7 @@ state RESIZE: -> RESIZE_DIRECTION state RESIZE_DIRECTION: - direction = 'up', 'down', 'left', 'right' + direction = 'up', 'down', 'left', 'right', 'width', 'height' -> RESIZE_PX state RESIZE_PX: @@ -167,12 +194,41 @@ state RESIZE_TILING_OR: end -> call cmd_resize($way, $direction, $resize_px, $resize_ppt) +# 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 +# move [window|container] [to] workspace [|next|prev|next_on_output|prev_on_output|current] # move [window|container] [to] output # move [window|container] [to] scratchpad # move workspace to [output] # move scratchpad +# move [window|container] [to] [absolute] position [ [ [px] [px]] | center ] state MOVE: 'window' -> @@ -188,6 +244,10 @@ state MOVE: -> call cmd_move_scratchpad() direction = 'left', 'right', 'up', 'down' -> MOVE_DIRECTION + method = 'position' + -> MOVE_TO_POSITION + method = 'absolute' + -> MOVE_TO_ABSOLUTE_POSITION state MOVE_DIRECTION: pixels = word @@ -202,13 +262,21 @@ 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' + 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() + 'number' + -> MOVE_WORKSPACE_NUMBER workspace = string -> call cmd_move_con_to_workspace_name($workspace) +state MOVE_WORKSPACE_NUMBER: + number = string + -> call cmd_move_con_to_workspace_number($number) + state MOVE_TO_OUTPUT: output = string -> call cmd_move_con_to_output($output) @@ -219,6 +287,26 @@ state MOVE_WORKSPACE_TO_OUTPUT: output = string -> call cmd_move_workspace_to_output($output) +state MOVE_TO_ABSOLUTE_POSITION: + 'position' + -> MOVE_TO_POSITION + +state MOVE_TO_POSITION: + 'center' + -> call cmd_move_window_to_center($method) + coord_x = word + -> MOVE_TO_POSITION_X + +state MOVE_TO_POSITION_X: + 'px' + -> + coord_y = word + -> MOVE_TO_POSITION_Y + +state MOVE_TO_POSITION_Y: + 'px', end + -> call cmd_move_window_to_position($method, $coord_x, $coord_y) + # mode state MODE: mode = string