syntax = "proto3"; import "action.proto"; import "event.proto"; import "file.proto"; import "command.proto"; import "message.proto"; import "resize.proto"; import "plugin_permission.proto"; import "input_mode.proto"; import "key.proto"; import "pane_frame_style.proto"; package api.plugin_command; enum CommandName { Subscribe = 0; Unsubscribe = 1; SetSelectable = 2; GetPluginIds = 3; GetZellijVersion = 4; OpenFile = 5; OpenFileFloating = 6; OpenTerminal = 7; OpenTerminalFloating = 8; OpenCommandPane = 9; OpenCommandPaneFloating = 10; SwitchTabTo = 11; SetTimeout = 12; ExecCmd = 13; PostMessageTo = 14; PostMessageToPlugin = 15; HideSelf = 16; ShowSelf = 17; SwitchToMode = 18; NewTabsWithLayout = 19; NewTab = 20; GoToNextTab = 21; GoToPreviousTab = 22; Resize = 23; ResizeWithDirection = 24; FocusNextPane = 25; FocusPreviousPane = 26; MoveFocus = 27; MoveFocusOrTab = 28; Detach = 29; EditScrollback = 30; Write = 31; WriteChars = 32; ToggleTab = 33; MovePane = 34; MovePaneWithDirection = 35; ClearScreen = 36; ScrollUp = 37; ScrollDown = 38; ScrollToTop = 39; ScrollToBottom = 40; PageScrollUp = 41; PageScrollDown = 42; ToggleFocusFullscreen = 43; TogglePaneFrames = 44; TogglePaneEmbedOrEject = 45; UndoRenamePane = 46; CloseFocus = 47; ToggleActiveTabSync = 48; CloseFocusedTab = 49; UndoRenameTab = 50; QuitZellij = 51; PreviousSwapLayout = 52; NextSwapLayout = 53; GoToTabName = 54; FocusOrCreateTab = 55; GoToTab = 56; StartOrReloadPlugin = 57; CloseTerminalPane = 58; ClosePluginPane = 59; FocusTerminalPane = 60; FocusPluginPane = 61; RenameTerminalPane = 62; RenamePluginPane = 63; RenameTab = 64; ReportCrash = 65; RequestPluginPermissions = 66; SwitchSession = 67; OpenTerminalInPlace = 68; OpenCommandInPlace = 69; OpenFileInPlace = 70; RunCommand = 71; WebRequest = 72; DeleteDeadSession = 73; DeleteAllDeadSessions = 74; RenameSession = 75; UnblockCliPipeInput = 76; BlockCliPipeInput = 77; CliPipeOutput = 78; MessageToPlugin = 79; DisconnectOtherClients = 80; KillSessions = 81; ScanHostFolder = 82; WatchFilesystem = 83; DumpSessionLayout = 84; CloseSelf = 85; NewTabsWithLayoutInfo = 86; Reconfigure = 87; HidePaneWithId = 88; ShowPaneWithId = 89; OpenCommandPaneBackground = 90; RerunCommandPane = 91; ResizePaneIdWithDirection = 92; EditScrollbackForPaneWithId = 93; WriteToPaneId = 94; WriteCharsToPaneId = 95; MovePaneWithPaneId = 96; MovePaneWithPaneIdInDirection = 97; ClearScreenForPaneId = 98; ScrollUpInPaneId = 99; ScrollDownInPaneId = 100; ScrollToTopInPaneId = 101; ScrollToBottomInPaneId = 102; PageScrollUpInPaneId = 103; PageScrollDownInPaneId = 104; TogglePaneIdFullscreen = 105; TogglePaneEmbedOrEjectForPaneId = 106; CloseTabWithIndex = 107; BreakPanesToNewTab = 108; BreakPanesToTabWithIndex = 109; ReloadPlugin = 110; LoadNewPlugin = 111; RebindKeys = 112; ListClients = 113; ChangeHostFolder = 114; SetFloatingPanePinned = 115; StackPanes = 116; ChangeFloatingPanesCoordinates = 117; OpenCommandPaneNearPlugin = 118; OpenTerminalNearPlugin = 119; OpenTerminalFloatingNearPlugin = 120; OpenTerminalInPlaceOfPlugin = 121; OpenCommandPaneFloatingNearPlugin = 122; OpenCommandPaneInPlaceOfPlugin = 123; OpenFileNearPlugin = 124; OpenFileFloatingNearPlugin = 125; OpenFileInPlaceOfPlugin = 126; StartWebServer = 127; GroupAndUngroupPanes = 128; HighlightAndUnhighlightPanes = 129; CloseMultiplePanes = 130; FloatMultiplePanes = 131; EmbedMultiplePanes = 132; ShareCurrentSession = 133; StopSharingCurrentSession = 134; StopWebServer = 135; QueryWebServerStatus = 136; SetSelfMouseSelectionSupport = 137; GenerateWebLoginToken = 138; RevokeWebLoginToken = 139; ListWebLoginTokens = 140; RevokeAllWebLoginTokens = 141; RenameWebLoginToken = 142; InterceptKeyPresses = 143; ClearKeyPressesIntercepts = 144; ReplacePaneWithExistingPane = 155; GetPaneScrollback = 163; RunAction = 164; ShowCursor = 169; CopyToClipboard = 170; SendSigintToPaneId = 171; SendSigkillToPaneId = 172; GetPanePid = 173; OverrideLayout = 174; SaveLayout = 175; DeleteLayout = 176; EditLayout = 177; GenerateRandomName = 178; DumpLayout = 179; ParseLayout = 180; RenameLayout = 181; GetLayoutDir = 182; GetFocusedPaneInfo = 183; TogglePaneBorderless = 184; SetPaneBorderless = 185; SaveSession = 186; CurrentSessionLastSavedTime = 187; GetPaneInfo = 188; GetTabInfo = 189; GetPaneRunningCommand = 190; GetPaneCwd = 191; SwitchTabToId = 192; GoToTabWithId = 193; CloseTabWithId = 194; RenameTabWithId = 195; BreakPanesToTabWithId = 196; GetSessionEnvironmentVariables = 197; OpenCommandPaneInNewTab = 198; OpenPluginPaneInNewTab = 199; OpenEditorPaneInNewTab = 200; OpenCommandPaneInPlaceOfPaneId = 201; OpenTerminalPaneInPlaceOfPaneId = 202; OpenEditPaneInPlaceOfPaneId = 203; HideFloatingPanes = 204; ShowFloatingPanes = 205; SetPaneColor = 206; SetPaneRegexHighlights = 207; ClearPaneHighlights = 208; OpenPluginPaneFloating = 209; ListWindowsVolumes = 210; GetSessionList = 211; KillSessionsAndReply = 212; DeleteDeadSessionAndReply = 213; DeleteAllDeadSessionsAndReply = 214; SetSoftKeyboard = 215; SetTabFit = 216; SetShadowFocus = 219; NewTabUnfocused = 220; NewTiledPaneInTab = 221; ExitMobileMode = 222; FocusLastPane = 223; SetPaneFrameStyle = 224; ToggleFloatingPanes = 225; NewPane = 226; ToggleFocusNoUiFullscreen = 227; FocusHostSession = 228; } message PluginCommand { CommandName name = 1; oneof payload { SubscribePayload subscribe_payload = 2; UnsubscribePayload unsubscribe_payload = 3; bool set_selectable_payload = 4; OpenFilePayload open_file_payload = 5; OpenFilePayload open_file_floating_payload = 6; OpenFilePayload open_terminal_payload = 7; OpenFilePayload open_terminal_floating_payload = 8; OpenCommandPanePayload open_command_pane_payload = 9; OpenCommandPanePayload open_command_pane_floating_payload = 10; SwitchTabToPayload switch_tab_to_payload = 11; SetTimeoutPayload set_timeout_payload = 12; ExecCmdPayload exec_cmd_payload = 13; PluginMessagePayload post_message_to_payload = 14; PluginMessagePayload post_message_to_plugin_payload = 15; bool show_self_payload = 16; action.SwitchToModePayload switch_to_mode_payload = 17; string new_tabs_with_layout_payload = 18; ResizePayload resize_payload = 19; ResizePayload resize_with_direction_payload = 20; MovePayload move_focus_payload = 21; MovePayload move_focus_or_tab_payload = 22; bytes write_payload = 23; string write_chars_payload = 24; MovePayload move_pane_with_direction_payload = 25; string go_to_tab_name_payload = 26; string focus_or_create_tab_payload = 27; uint32 go_to_tab_payload = 28; string start_or_reload_plugin_payload = 29; uint32 close_terminal_pane_payload = 30; uint32 close_plugin_pane_payload = 31; action.PaneIdAndShouldFloat focus_terminal_pane_payload = 32; action.PaneIdAndShouldFloat focus_plugin_pane_payload = 33; IdAndNewName rename_terminal_pane_payload = 34; IdAndNewName rename_plugin_pane_payload = 35; IdAndNewName rename_tab_payload = 36; string report_crash_payload = 37; RequestPluginPermissionPayload request_plugin_permission_payload = 38; SwitchSessionPayload switch_session_payload = 39; OpenFilePayload open_file_in_place_payload = 40; OpenFilePayload open_terminal_in_place_payload = 41; OpenCommandPanePayload open_command_pane_in_place_payload = 42; RunCommandPayload run_command_payload = 43; WebRequestPayload web_request_payload = 44; string delete_dead_session_payload = 45; string rename_session_payload = 46; string unblock_cli_pipe_input_payload = 47; string block_cli_pipe_input_payload = 48; CliPipeOutputPayload cli_pipe_output_payload = 49; MessageToPluginPayload message_to_plugin_payload = 50; KillSessionsPayload kill_sessions_payload = 60; string scan_host_folder_payload = 61; NewTabsWithLayoutInfoPayload new_tabs_with_layout_info_payload = 62; ReconfigurePayload reconfigure_payload = 63; HidePaneWithIdPayload hide_pane_with_id_payload = 64; ShowPaneWithIdPayload show_pane_with_id_payload = 65; OpenCommandPanePayload open_command_pane_background_payload = 66; RerunCommandPanePayload rerun_command_pane_payload = 67; ResizePaneIdWithDirectionPayload resize_pane_id_with_direction_payload = 68; EditScrollbackForPaneWithIdPayload edit_scrollback_for_pane_with_id_payload = 69; WriteToPaneIdPayload write_to_pane_id_payload = 70; WriteCharsToPaneIdPayload write_chars_to_pane_id_payload = 71; MovePaneWithPaneIdPayload move_pane_with_pane_id_payload = 72; MovePaneWithPaneIdInDirectionPayload move_pane_with_pane_id_in_direction_payload = 73; ClearScreenForPaneIdPayload clear_screen_for_pane_id_payload = 74; ScrollUpInPaneIdPayload scroll_up_in_pane_id_payload = 75; ScrollDownInPaneIdPayload scroll_down_in_pane_id_payload = 76; ScrollToTopInPaneIdPayload scroll_to_top_in_pane_id_payload = 77; ScrollToBottomInPaneIdPayload scroll_to_bottom_in_pane_id_payload = 78; PageScrollUpInPaneIdPayload page_scroll_up_in_pane_id_payload = 79; PageScrollDownInPaneIdPayload page_scroll_down_in_pane_id_payload = 80; TogglePaneIdFullscreenPayload toggle_pane_id_fullscreen_payload = 81; TogglePaneEmbedOrEjectForPaneIdPayload toggle_pane_embed_or_eject_for_pane_id_payload = 82; CloseTabWithIndexPayload close_tab_with_index_payload = 83; BreakPanesToNewTabPayload break_panes_to_new_tab_payload = 84; BreakPanesToTabWithIndexPayload break_panes_to_tab_with_index_payload = 85; ReloadPluginPayload reload_plugin_payload = 86; LoadNewPluginPayload load_new_plugin_payload = 87; RebindKeysPayload rebind_keys_payload = 88; ChangeHostFolderPayload change_host_folder_payload = 89; SetFloatingPanePinnedPayload set_floating_pane_pinned_payload = 90; StackPanesPayload stack_panes_payload = 91; ChangeFloatingPanesCoordinatesPayload change_floating_panes_coordinates_payload = 92; OpenCommandPaneNearPluginPayload open_command_pane_near_plugin_payload = 93; OpenTerminalNearPluginPayload open_terminal_near_plugin_payload = 94; OpenTerminalFloatingNearPluginPayload open_terminal_floating_near_plugin_payload = 95; OpenTerminalInPlaceOfPluginPayload open_terminal_in_place_of_plugin_payload = 96; OpenCommandPaneFloatingNearPluginPayload open_command_pane_floating_near_plugin_payload = 97; OpenCommandPaneInPlaceOfPluginPayload open_command_pane_in_place_of_plugin_payload = 98; OpenFileNearPluginPayload open_file_near_plugin_payload = 99; OpenFileFloatingNearPluginPayload open_file_floating_near_plugin_payload = 100; OpenFileInPlaceOfPluginPayload open_file_in_place_of_plugin_payload = 101; GroupAndUngroupPanesPayload group_and_ungroup_panes_payload = 102; HighlightAndUnhighlightPanesPayload highlight_and_unhighlight_panes_payload = 103; CloseMultiplePanesPayload close_multiple_panes_payload = 104; FloatMultiplePanesPayload float_multiple_panes_payload = 105; EmbedMultiplePanesPayload embed_multiple_panes_payload = 106; SetSelfMouseSelectionSupportPayload set_self_mouse_selection_support_payload = 107; GenerateWebLoginTokenPayload generate_web_login_token_payload = 108; RevokeWebLoginTokenPayload revoke_web_login_token_payload = 109; RenameWebLoginTokenPayload rename_web_login_token_payload = 110; ReplacePaneWithExistingPanePayload replace_pane_with_existing_pane_payload = 111; NewTabPayload new_tab_payload = 112; GetPaneScrollbackPayload get_pane_scrollback_payload = 113; RunActionPayload run_action_payload = 114; ShowCursorPayload show_cursor_payload = 119; CopyToClipboardPayload copy_to_clipboard_payload = 120; PaneId send_sigint_to_pane_id_payload = 121; PaneId send_sigkill_to_pane_id_payload = 122; GetPanePidPayload get_pane_pid_payload = 123; OverrideLayoutPayload override_layout_payload = 124; SaveLayoutPayload save_layout_payload = 125; DeleteLayoutPayload delete_layout_payload = 126; EditLayoutPayload edit_layout_payload = 127; GenerateRandomNamePayload generate_random_name_payload = 128; DumpLayoutPayload dump_layout_payload = 129; ParseLayoutPayload parse_layout_payload = 130; RenameLayoutPayload rename_layout_payload = 131; GetLayoutDirPayload get_layout_dir_payload = 132; DumpSessionLayoutPayload dump_session_layout_payload = 133; GetFocusedPaneInfoPayload get_focused_pane_info_payload = 134; TogglePaneBorderlessPayload toggle_pane_borderless_payload = 135; SetPaneBorderlessPayload set_pane_borderless_payload = 136; SaveSessionPayload save_session_payload = 137; CurrentSessionLastSavedTimePayload current_session_last_saved_time_payload = 138; GetPaneInfoPayload get_pane_info_payload = 139; GetTabInfoPayload get_tab_info_payload = 140; GetPaneRunningCommandPayload get_pane_running_command_payload = 141; GetPaneCwdPayload get_pane_cwd_payload = 142; SwitchTabToIdPayload switch_tab_to_id_payload = 143; GoToTabWithIdPayload go_to_tab_with_id_payload = 144; CloseTabWithIdPayload close_tab_with_id_payload = 145; RenameTabWithIdPayload rename_tab_with_id_payload = 146; BreakPanesToTabWithIdPayload break_panes_to_tab_with_id_payload = 147; GetSessionEnvironmentVariablesPayload get_session_environment_variables_payload = 148; OpenCommandPanePayload open_command_pane_in_new_tab_payload = 149; OpenPluginPaneInNewTabPayload open_plugin_pane_in_new_tab_payload = 150; OpenFilePayload open_editor_pane_in_new_tab_payload = 151; OpenCommandPaneInPlaceOfPaneIdPayload open_command_pane_in_place_of_pane_id_payload = 152; OpenTerminalPaneInPlaceOfPaneIdPayload open_terminal_pane_in_place_of_pane_id_payload = 153; OpenEditPaneInPlaceOfPaneIdPayload open_edit_pane_in_place_of_pane_id_payload = 154; HideFloatingPanesPayload hide_floating_panes_payload = 155; ShowFloatingPanesPayload show_floating_panes_payload = 156; SetPaneColorPayload set_pane_color_payload = 157; SetPaneRegexHighlightsPayload set_pane_regex_highlights_payload = 158; ClearPaneHighlightsPayload clear_pane_highlights_payload = 159; OpenPluginPaneFloatingPayload open_plugin_pane_floating_payload = 160; GetSessionListPayload get_session_list_payload = 161; KillSessionsPayload kill_sessions_and_reply_payload = 162; string delete_dead_session_and_reply_payload = 163; SetSoftKeyboardPayload set_soft_keyboard_payload = 164; SetTabFitPayload set_tab_fit_payload = 165; PaneId set_shadow_focus_payload = 167; NewTabUnfocusedPayload new_tab_unfocused_payload = 168; NewTiledPaneInTabPayload new_tiled_pane_in_tab_payload = 169; SetPaneFrameStylePayload set_pane_frame_style_payload = 170; ToggleFloatingPanesPayload toggle_floating_panes_payload = 171; } } message SetPaneFrameStylePayload { pane_frame_style.PaneFrameStyle pane_frame_style = 1; } message ToggleFloatingPanesPayload { optional uint64 tab_id = 1; } message NewTabPayload { optional string name = 1; optional string cwd = 2; } message NewTabUnfocusedPayload { optional string name = 1; optional string cwd = 2; } message NewTiledPaneInTabPayload { uint32 tab_position = 1; } message DumpSessionLayoutPayload { optional uint32 tab_index = 1; } message RunActionPayload { action.Action action = 1; repeated ContextItem context = 2; } message ReplacePaneWithExistingPanePayload { PaneId pane_id_to_replace = 1; PaneId existing_pane_id = 2; bool suppress_replaced_pane = 3; } message RenameWebLoginTokenPayload { string old_name = 1; string new_name = 2; } message RevokeWebLoginTokenPayload { string token_label = 1; } message GenerateWebLoginTokenPayload { optional string token_label = 1; optional bool read_only = 2; } message SetSelfMouseSelectionSupportPayload { bool support_mouse_selection = 1; } message EmbedMultiplePanesPayload { repeated PaneId pane_ids = 1; } message FloatMultiplePanesPayload { repeated PaneId pane_ids = 1; } message CloseMultiplePanesPayload { repeated PaneId pane_ids = 1; } message HighlightAndUnhighlightPanesPayload { repeated PaneId pane_ids_to_highlight = 1; repeated PaneId pane_ids_to_unhighlight = 2; } message GroupAndUngroupPanesPayload { repeated PaneId pane_ids_to_group = 1; repeated PaneId pane_ids_to_ungroup = 2; bool for_all_clients = 3; } message OpenFileInPlaceOfPluginPayload { file.File file_to_open = 1; optional FloatingPaneCoordinates floating_pane_coordinates = 2; repeated ContextItem context = 3; bool close_plugin_after_replace = 4; } message OpenFileFloatingNearPluginPayload { file.File file_to_open = 1; optional FloatingPaneCoordinates floating_pane_coordinates = 2; repeated ContextItem context = 3; } message OpenFileNearPluginPayload { file.File file_to_open = 1; optional FloatingPaneCoordinates floating_pane_coordinates = 2; repeated ContextItem context = 3; } message OpenCommandPaneInPlaceOfPluginPayload { command.Command command_to_run = 1; repeated ContextItem context = 3; bool close_plugin_after_replace = 4; } message OpenCommandPaneFloatingNearPluginPayload { command.Command command_to_run = 1; optional FloatingPaneCoordinates floating_pane_coordinates = 2; repeated ContextItem context = 3; } message OpenTerminalInPlaceOfPluginPayload { file.File file_to_open = 1; repeated ContextItem context = 3; bool close_plugin_after_replace = 4; } message OpenTerminalFloatingNearPluginPayload { file.File file_to_open = 1; optional FloatingPaneCoordinates floating_pane_coordinates = 2; repeated ContextItem context = 3; } message OpenTerminalNearPluginPayload { file.File file_to_open = 1; repeated ContextItem context = 3; } message OpenCommandPaneNearPluginPayload { command.Command command_to_run = 1; optional FloatingPaneCoordinates floating_pane_coordinates = 2; repeated ContextItem context = 3; } message ChangeFloatingPanesCoordinatesPayload { repeated PaneIdAndFloatingPaneCoordinates pane_ids_and_floating_panes_coordinates = 1; } message StackPanesPayload { repeated PaneId pane_ids = 1; } message SetFloatingPanePinnedPayload { PaneId pane_id = 1; bool should_be_pinned = 2; } message TogglePaneBorderlessPayload { PaneId pane_id = 1; } message SetPaneBorderlessPayload { PaneId pane_id = 1; bool borderless = 2; } message ChangeHostFolderPayload { string new_host_folder = 1; } message RebindKeysPayload { repeated KeyToRebind keys_to_rebind = 1; repeated KeyToUnbind keys_to_unbind = 2; bool write_config_to_disk = 3; } message KeyToRebind { input_mode.InputMode input_mode = 1; key.Key key = 2; repeated action.Action actions = 3; } message KeyToUnbind { input_mode.InputMode input_mode = 1; key.Key key = 2; } message LoadNewPluginPayload { string plugin_url = 1; repeated ContextItem plugin_config = 2; bool should_load_plugin_in_background = 3; bool should_skip_plugin_cache = 4; } message ReloadPluginPayload { uint32 plugin_id = 1; } message BreakPanesToTabWithIndexPayload { repeated PaneId pane_ids = 1; uint32 tab_index = 2; bool should_change_focus_to_target_tab = 3; } message BreakPanesToNewTabPayload { repeated PaneId pane_ids = 1; bool should_change_focus_to_new_tab = 2; optional string new_tab_name = 3; } message MovePaneWithPaneIdPayload { PaneId pane_id = 1; } message MovePaneWithPaneIdInDirectionPayload { PaneId pane_id = 1; resize.MoveDirection direction = 2; } message ClearScreenForPaneIdPayload { PaneId pane_id = 1; } message ScrollUpInPaneIdPayload { PaneId pane_id = 1; } message ScrollDownInPaneIdPayload { PaneId pane_id = 1; } message ScrollToTopInPaneIdPayload { PaneId pane_id = 1; } message ScrollToBottomInPaneIdPayload { PaneId pane_id = 1; } message PageScrollUpInPaneIdPayload { PaneId pane_id = 1; } message PageScrollDownInPaneIdPayload { PaneId pane_id = 1; } message TogglePaneIdFullscreenPayload { PaneId pane_id = 1; } message TogglePaneEmbedOrEjectForPaneIdPayload { PaneId pane_id = 1; } message CloseTabWithIndexPayload { uint32 tab_index = 1; } message WriteCharsToPaneIdPayload { string chars_to_write = 1; PaneId pane_id = 2; } message WriteToPaneIdPayload { bytes bytes_to_write = 1; PaneId pane_id = 2; } message EditScrollbackForPaneWithIdPayload { PaneId pane_id = 1; } message ResizePaneIdWithDirectionPayload { resize.Resize resize = 1; PaneId pane_id = 2; } message ReconfigurePayload { string config = 1; bool write_to_disk = 2; } message RerunCommandPanePayload { uint32 terminal_pane_id = 1; } message HidePaneWithIdPayload { PaneId pane_id = 1; } message ShowPaneWithIdPayload { PaneId pane_id = 1; bool should_float_if_hidden = 2; bool should_focus_pane = 3; } message NewTabsWithLayoutInfoPayload { event.LayoutInfo layout_info = 1; } message KillSessionsPayload { repeated string session_names = 1; } message CliPipeOutputPayload { string pipe_name = 1; string output = 2; } message MessageToPluginPayload { optional string plugin_url = 1; repeated ContextItem plugin_config = 2; string message_name = 3; optional string message_payload = 4; repeated ContextItem message_args = 5; optional NewPluginArgs new_plugin_args = 6; optional uint32 destination_plugin_id = 7; optional FloatingPaneCoordinates floating_pane_coordinates = 8; } message NewPluginArgs { optional bool should_float = 1; optional PaneId pane_id_to_replace = 2; optional string pane_title = 3; optional string cwd = 4; bool skip_cache = 5; optional bool should_focus = 6; } message PaneId { PaneType pane_type = 1; uint32 id = 2; } enum PaneType { Terminal = 0; Plugin = 1; } message SwitchSessionPayload { optional string name = 1; optional uint32 tab_position = 2; optional uint32 pane_id = 3; optional bool pane_id_is_plugin = 4; optional event.LayoutInfo layout = 5; optional string cwd = 6; } message RequestPluginPermissionPayload { repeated plugin_permission.PermissionType permissions = 1; } message SubscribePayload { event.EventNameList subscriptions = 1; } message UnsubscribePayload { event.EventNameList subscriptions = 1; } message OpenFilePayload { file.File file_to_open = 1; optional FloatingPaneCoordinates floating_pane_coordinates = 2; repeated ContextItem context = 3; } message OpenCommandPanePayload { command.Command command_to_run = 1; optional FloatingPaneCoordinates floating_pane_coordinates = 2; repeated ContextItem context = 3; } message SwitchTabToPayload { uint32 tab_index = 1; } message SetTimeoutPayload { double seconds = 1; } message ExecCmdPayload { repeated string command_line = 1; } message RunCommandPayload { repeated string command_line = 1; repeated EnvVariable env_variables = 2; string cwd = 3; repeated ContextItem context = 4; } message WebRequestPayload { string url = 1; HttpVerb verb = 2; repeated event.Header headers = 3; bytes body = 4; repeated ContextItem context = 5; } enum HttpVerb { Get = 0; Post = 1; Put = 2; Delete = 3; } message EnvVariable { string name = 1; string value = 2; } message ContextItem { string name = 1; string value = 2; } message PluginMessagePayload { api.message.Message message = 1; } message ResizePayload { resize.Resize resize = 1; } message MovePayload { resize.MoveDirection direction = 1; } message PaneIdAndFloatingPaneCoordinates { PaneId pane_id = 1; FloatingPaneCoordinates floating_pane_coordinates = 2; } message IdAndNewName { uint32 id = 1; // pane id or tab index string new_name = 2; } message FloatingPaneCoordinates { optional FixedOrPercentValue x = 1; optional FixedOrPercentValue y = 2; optional FixedOrPercentValue width = 3; optional FixedOrPercentValue height = 4; optional bool pinned = 5; optional bool borderless = 6; } message FixedOrPercentValue { FixedOrPercent type = 1; uint32 value = 2; } enum FixedOrPercent { Fixed = 0; Percent = 1; } message SwitchTabToIdPayload { uint64 tab_id = 1; } message GoToTabWithIdPayload { uint64 tab_id = 1; } message CloseTabWithIdPayload { uint64 tab_id = 1; } message RenameTabWithIdPayload { uint64 tab_id = 1; string new_name = 2; } message BreakPanesToTabWithIdPayload { repeated PaneId pane_ids = 1; uint64 tab_id = 2; bool should_change_focus_to_target_tab = 3; } message BreakPanesToTabWithIdResponse { oneof result { uint64 tab_id = 1; bool none = 2; } } message CreateTokenResponse { optional string token = 1; optional string token_label = 2; optional string error = 3; } message RevokeTokenResponse { bool successfully_revoked = 1; optional string error = 2; } message ListTokensResponse { // tokens/creation_times/read_only_flags should be synchronized repeated string tokens = 1; repeated string creation_times = 2; repeated bool read_only_flags = 3; optional string error = 4; } message RevokeAllWebTokensResponse { bool successfully_revoked = 1; optional string error = 2; } message RenameWebTokenResponse { bool successfully_renamed = 1; optional string error = 2; } message GetPaneScrollbackPayload { PaneId pane_id = 1; bool get_full_scrollback = 2; } message ShowCursorPayload { optional CursorPosition position = 1; } message CursorPosition { uint32 x = 1; uint32 y = 2; } message CopyToClipboardPayload { string text = 1; } message GetPanePidPayload { PaneId pane_id = 1; } message GetPanePidResponse { oneof result { int32 pid = 1; string error = 2; } } message GetPaneRunningCommandPayload { PaneId pane_id = 1; } message GetPaneRunningCommandResponse { oneof result { RunningCommand command = 1; string error = 2; } } message RunningCommand { repeated string args = 1; } message GetPaneCwdPayload { PaneId pane_id = 1; } message GetPaneCwdResponse { oneof result { string cwd = 1; string error = 2; } } message SaveLayoutResponse { oneof result { bool success = 1; string error = 2; } } message DeleteLayoutResponse { oneof result { bool success = 1; string error = 2; } } message EditLayoutResponse { oneof result { bool success = 1; string error = 2; } } message GenerateRandomNameResponse { string name = 1; } message OverrideLayoutPayload { event.LayoutInfo layout_info = 1; repeated ContextItem context = 2; bool retain_existing_terminal_panes = 3; bool retain_existing_plugin_panes = 4; bool apply_only_to_active_tab = 5; } message SaveLayoutPayload { string layout_name = 1; string layout_kdl = 2; bool overwrite = 3; } message DeleteLayoutPayload { string layout_name = 1; } message EditLayoutPayload { string layout_name = 1; repeated ContextItem context = 2; } message GenerateRandomNamePayload {} message DumpLayoutPayload { string layout_name = 1; } message DumpLayoutResponse { oneof result { string layout_content = 1; string error = 2; } } message DumpSessionLayoutResponse { oneof result { string layout_content = 1; string error = 2; } optional api.event.LayoutMetadata metadata = 3; } message ParseLayoutPayload { string layout_string = 1; } message ParseLayoutResponse { oneof result { api.event.LayoutMetadata metadata = 1; api.event.LayoutParsingError error = 2; } } message RenameLayoutPayload { string old_layout_name = 1; string new_layout_name = 2; } message RenameLayoutResponse { oneof result { bool success = 1; string error = 2; } } message GetLayoutDirPayload {} message GetLayoutDirResponse { string layout_dir = 1; } message GetFocusedPaneInfoPayload {} message GetFocusedPaneInfoResponse { oneof result { FocusedPaneInfo focused_pane_info = 1; string error = 2; } } message FocusedPaneInfo { uint32 focused_tab_index = 1; PaneId focused_pane_id = 2; } message SaveSessionPayload {} message SaveSessionResponse { oneof result { bool success = 1; string error = 2; } } message CurrentSessionLastSavedTimePayload {} message CurrentSessionLastSavedTimeResponse { optional uint64 timestamp_millis = 1; // None if never saved, otherwise milliseconds elapsed since last save } message GetPaneInfoPayload { PaneId pane_id = 1; } message GetPaneInfoResponse { optional event.PaneInfo pane_info = 1; // None if pane not found } message GetTabInfoPayload { uint64 tab_id = 1; } message GetTabInfoResponse { optional event.TabInfo tab_info = 1; // None if tab not found } message NewTabResponse { oneof result { uint64 tab_id = 1; bool none = 2; // Indicates None } } message NewTabUnfocusedResponse { oneof result { uint64 tab_id = 1; bool none = 2; } } message NewTiledPaneInTabResponse { optional PaneId pane_id = 1; } message NewTabsResponse { repeated uint64 tab_ids = 1; // Only includes successfully created tabs } message FocusOrCreateTabResponse { oneof result { uint64 tab_id = 1; bool none = 2; // Indicates None } } message BreakPanesToNewTabResponse { oneof result { uint64 tab_id = 1; bool none = 2; // Indicates None } } message BreakPanesToTabWithIndexResponse { oneof result { uint64 tab_id = 1; bool none = 2; // Indicates None } } message OpenFileResponse { optional PaneId pane_id = 1; } message OpenFileFloatingResponse { optional PaneId pane_id = 1; } message OpenFileInPlaceResponse { optional PaneId pane_id = 1; } message OpenFileNearPluginResponse { optional PaneId pane_id = 1; } message OpenFileFloatingNearPluginResponse { optional PaneId pane_id = 1; } message OpenFileInPlaceOfPluginResponse { optional PaneId pane_id = 1; } message OpenTerminalResponse { optional PaneId pane_id = 1; } message OpenTerminalFloatingResponse { optional PaneId pane_id = 1; } message OpenTerminalInPlaceResponse { optional PaneId pane_id = 1; } message OpenTerminalNearPluginResponse { optional PaneId pane_id = 1; } message OpenTerminalFloatingNearPluginResponse { optional PaneId pane_id = 1; } message OpenTerminalInPlaceOfPluginResponse { optional PaneId pane_id = 1; } message OpenCommandPaneResponse { optional PaneId pane_id = 1; } message OpenCommandPaneFloatingResponse { optional PaneId pane_id = 1; } message OpenCommandPaneInPlaceResponse { optional PaneId pane_id = 1; } message OpenCommandPaneNearPluginResponse { optional PaneId pane_id = 1; } message OpenCommandPaneFloatingNearPluginResponse { optional PaneId pane_id = 1; } message OpenCommandPaneInPlaceOfPluginResponse { optional PaneId pane_id = 1; } message OpenCommandPaneBackgroundResponse { optional PaneId pane_id = 1; } message GetSessionEnvironmentVariablesPayload {} message GetSessionEnvironmentVariablesResponse { repeated EnvVariable env_vars = 1; } message OpenPluginPaneInNewTabPayload { string plugin_url = 1; map configuration = 2; repeated ContextItem context = 3; } message OpenPaneInNewTabResponse { optional uint64 tab_id = 1; optional PaneId pane_id = 2; } message OpenCommandPaneInPlaceOfPaneIdPayload { PaneId pane_id_to_replace = 1; command.Command command_to_run = 2; bool close_replaced_pane = 3; repeated ContextItem context = 4; } message OpenTerminalPaneInPlaceOfPaneIdPayload { PaneId pane_id_to_replace = 1; optional file.File cwd = 2; bool close_replaced_pane = 3; } message OpenEditPaneInPlaceOfPaneIdPayload { PaneId pane_id_to_replace = 1; file.File file_to_open = 2; bool close_replaced_pane = 3; repeated ContextItem context = 4; } message OpenCommandPaneInPlaceOfPaneIdResponse { optional PaneId pane_id = 1; } message OpenTerminalPaneInPlaceOfPaneIdResponse { optional PaneId pane_id = 1; } message OpenEditPaneInPlaceOfPaneIdResponse { optional PaneId pane_id = 1; } message HideFloatingPanesPayload { optional uint32 tab_id = 1; } message ShowFloatingPanesPayload { optional uint32 tab_id = 1; } message ShowFloatingPanesResponse { oneof result { bool success = 1; string error = 2; } } message HideFloatingPanesResponse { oneof result { bool success = 1; string error = 2; } } message SetPaneColorPayload { PaneId pane_id = 1; optional string fg = 2; optional string bg = 3; } message HighlightStyle { oneof style { bool emphasis_0 = 1; bool emphasis_1 = 2; bool emphasis_2 = 3; bool emphasis_3 = 4; CustomRgbHighlight custom_rgb = 5; CustomIndexHighlight custom_index = 6; bool background_emphasis_0 = 7; bool background_emphasis_1 = 8; bool background_emphasis_2 = 9; bool background_emphasis_3 = 10; bool none = 11; } } message CustomRgbHighlight { optional uint32 fg_r = 1; optional uint32 fg_g = 2; optional uint32 fg_b = 3; optional uint32 bg_r = 4; optional uint32 bg_g = 5; optional uint32 bg_b = 6; } message CustomIndexHighlight { optional uint32 fg = 1; optional uint32 bg = 2; } enum HighlightLayer { Hint = 0; Tool = 1; ActionFeedback = 2; } message RegexHighlight { string pattern = 1; HighlightStyle style = 2; repeated ContextItem context = 3; bool on_hover = 4; bool bold = 5; bool italic = 6; bool underline = 7; optional string tooltip_text = 8; HighlightLayer layer = 9; } message SetPaneRegexHighlightsPayload { PaneId pane_id = 1; repeated RegexHighlight highlights = 2; } message ClearPaneHighlightsPayload { PaneId pane_id = 1; } message OpenPluginPaneFloatingPayload { string plugin_url = 1; map configuration = 2; optional FloatingPaneCoordinates floating_pane_coordinates = 3; repeated ContextItem context = 4; } message OpenPluginPaneFloatingResponse { optional PaneId pane_id = 1; } message GetSessionListPayload {} message SessionListSnapshot { repeated event.SessionManifest live_sessions = 1; repeated event.ResurrectableSession resurrectable_sessions = 2; } message GetSessionListResponse { oneof result { SessionListSnapshot snapshot = 1; string error = 2; } } message KillSessionsResponse { optional string error = 1; // absent => success } message DeleteDeadSessionResponse { optional string error = 1; // absent => success } message DeleteAllDeadSessionsResponse { optional string error = 1; // absent => success } message SetSoftKeyboardPayload { bool on = 1; } message Size { uint32 rows = 1; uint32 cols = 2; } message SetTabFitPayload { uint32 tab_id = 1; PaneId pane_id = 2; Size size = 3; }