diff --git a/api/library/python/iterm2/iterm2/_version.py b/api/library/python/iterm2/iterm2/_version.py index 0b28dcc55a..ffd9769e31 100644 --- a/api/library/python/iterm2/iterm2/_version.py +++ b/api/library/python/iterm2/iterm2/_version.py @@ -1,2 +1,2 @@ """Gives the module version.""" -__version__ = "1.28" +__version__ = "1.29" diff --git a/api/library/python/iterm2/iterm2/api_pb2.py b/api/library/python/iterm2/iterm2/api_pb2.py index f5cd627409..f974b31776 100644 --- a/api/library/python/iterm2/iterm2/api_pb2.py +++ b/api/library/python/iterm2/iterm2/api_pb2.py @@ -20,7 +20,7 @@ name='api.proto', package='iterm2', syntax='proto2', - serialized_pb=_b('\n\tapi.proto\x12\x06iterm2\"\xd9\x10\n\x17\x43lientOriginatedMessage\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x36\n\x12get_buffer_request\x18\x64 \x01(\x0b\x32\x18.iterm2.GetBufferRequestH\x00\x12\x36\n\x12get_prompt_request\x18\x65 \x01(\x0b\x32\x18.iterm2.GetPromptRequestH\x00\x12\x39\n\x13transaction_request\x18\x66 \x01(\x0b\x32\x1a.iterm2.TransactionRequestH\x00\x12;\n\x14notification_request\x18g \x01(\x0b\x32\x1b.iterm2.NotificationRequestH\x00\x12<\n\x15register_tool_request\x18h \x01(\x0b\x32\x1b.iterm2.RegisterToolRequestH\x00\x12I\n\x1cset_profile_property_request\x18i \x01(\x0b\x32!.iterm2.SetProfilePropertyRequestH\x00\x12<\n\x15list_sessions_request\x18j \x01(\x0b\x32\x1b.iterm2.ListSessionsRequestH\x00\x12\x34\n\x11send_text_request\x18k \x01(\x0b\x32\x17.iterm2.SendTextRequestH\x00\x12\x36\n\x12\x63reate_tab_request\x18l \x01(\x0b\x32\x18.iterm2.CreateTabRequestH\x00\x12\x36\n\x12split_pane_request\x18m \x01(\x0b\x32\x18.iterm2.SplitPaneRequestH\x00\x12I\n\x1cget_profile_property_request\x18n \x01(\x0b\x32!.iterm2.GetProfilePropertyRequestH\x00\x12:\n\x14set_property_request\x18o \x01(\x0b\x32\x1a.iterm2.SetPropertyRequestH\x00\x12:\n\x14get_property_request\x18p \x01(\x0b\x32\x1a.iterm2.GetPropertyRequestH\x00\x12/\n\x0einject_request\x18q \x01(\x0b\x32\x15.iterm2.InjectRequestH\x00\x12\x33\n\x10\x61\x63tivate_request\x18r \x01(\x0b\x32\x17.iterm2.ActivateRequestH\x00\x12\x33\n\x10variable_request\x18s \x01(\x0b\x32\x17.iterm2.VariableRequestH\x00\x12\x44\n\x19saved_arrangement_request\x18t \x01(\x0b\x32\x1f.iterm2.SavedArrangementRequestH\x00\x12-\n\rfocus_request\x18u \x01(\x0b\x32\x14.iterm2.FocusRequestH\x00\x12<\n\x15list_profiles_request\x18v \x01(\x0b\x32\x1b.iterm2.ListProfilesRequestH\x00\x12X\n$server_originated_rpc_result_request\x18w \x01(\x0b\x32(.iterm2.ServerOriginatedRPCResultRequestH\x00\x12@\n\x17restart_session_request\x18x \x01(\x0b\x32\x1d.iterm2.RestartSessionRequestH\x00\x12\x34\n\x11menu_item_request\x18y \x01(\x0b\x32\x17.iterm2.MenuItemRequestH\x00\x12=\n\x16set_tab_layout_request\x18z \x01(\x0b\x32\x1b.iterm2.SetTabLayoutRequestH\x00\x12K\n\x1dget_broadcast_domains_request\x18{ \x01(\x0b\x32\".iterm2.GetBroadcastDomainsRequestH\x00\x12+\n\x0ctmux_request\x18| \x01(\x0b\x32\x13.iterm2.TmuxRequestH\x00\x12:\n\x14reorder_tabs_request\x18} \x01(\x0b\x32\x1a.iterm2.ReorderTabsRequestH\x00\x12\x39\n\x13preferences_request\x18~ \x01(\x0b\x32\x1a.iterm2.PreferencesRequestH\x00\x12:\n\x14\x63olor_preset_request\x18\x7f \x01(\x0b\x32\x1a.iterm2.ColorPresetRequestH\x00\x12\x36\n\x11selection_request\x18\x80\x01 \x01(\x0b\x32\x18.iterm2.SelectionRequestH\x00\x12J\n\x1cstatus_bar_component_request\x18\x81\x01 \x01(\x0b\x32!.iterm2.StatusBarComponentRequestH\x00\x12L\n\x1dset_broadcast_domains_request\x18\x82\x01 \x01(\x0b\x32\".iterm2.SetBroadcastDomainsRequestH\x00\x12.\n\rclose_request\x18\x83\x01 \x01(\x0b\x32\x14.iterm2.CloseRequestH\x00\x12\x41\n\x17invoke_function_request\x18\x84\x01 \x01(\x0b\x32\x1d.iterm2.InvokeFunctionRequestH\x00\x12;\n\x14list_prompts_request\x18\x85\x01 \x01(\x0b\x32\x1a.iterm2.ListPromptsRequestH\x00\x42\x0c\n\nsubmessage\"\xdd\x11\n\x17ServerOriginatedMessage\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x12\x38\n\x13get_buffer_response\x18\x64 \x01(\x0b\x32\x19.iterm2.GetBufferResponseH\x00\x12\x38\n\x13get_prompt_response\x18\x65 \x01(\x0b\x32\x19.iterm2.GetPromptResponseH\x00\x12;\n\x14transaction_response\x18\x66 \x01(\x0b\x32\x1b.iterm2.TransactionResponseH\x00\x12=\n\x15notification_response\x18g \x01(\x0b\x32\x1c.iterm2.NotificationResponseH\x00\x12>\n\x16register_tool_response\x18h \x01(\x0b\x32\x1c.iterm2.RegisterToolResponseH\x00\x12K\n\x1dset_profile_property_response\x18i \x01(\x0b\x32\".iterm2.SetProfilePropertyResponseH\x00\x12>\n\x16list_sessions_response\x18j \x01(\x0b\x32\x1c.iterm2.ListSessionsResponseH\x00\x12\x36\n\x12send_text_response\x18k \x01(\x0b\x32\x18.iterm2.SendTextResponseH\x00\x12\x38\n\x13\x63reate_tab_response\x18l \x01(\x0b\x32\x19.iterm2.CreateTabResponseH\x00\x12\x38\n\x13split_pane_response\x18m \x01(\x0b\x32\x19.iterm2.SplitPaneResponseH\x00\x12K\n\x1dget_profile_property_response\x18n \x01(\x0b\x32\".iterm2.GetProfilePropertyResponseH\x00\x12<\n\x15set_property_response\x18o \x01(\x0b\x32\x1b.iterm2.SetPropertyResponseH\x00\x12<\n\x15get_property_response\x18p \x01(\x0b\x32\x1b.iterm2.GetPropertyResponseH\x00\x12\x31\n\x0finject_response\x18q \x01(\x0b\x32\x16.iterm2.InjectResponseH\x00\x12\x35\n\x11\x61\x63tivate_response\x18r \x01(\x0b\x32\x18.iterm2.ActivateResponseH\x00\x12\x35\n\x11variable_response\x18s \x01(\x0b\x32\x18.iterm2.VariableResponseH\x00\x12\x46\n\x1asaved_arrangement_response\x18t \x01(\x0b\x32 .iterm2.SavedArrangementResponseH\x00\x12/\n\x0e\x66ocus_response\x18u \x01(\x0b\x32\x15.iterm2.FocusResponseH\x00\x12>\n\x16list_profiles_response\x18v \x01(\x0b\x32\x1c.iterm2.ListProfilesResponseH\x00\x12Z\n%server_originated_rpc_result_response\x18w \x01(\x0b\x32).iterm2.ServerOriginatedRPCResultResponseH\x00\x12\x42\n\x18restart_session_response\x18x \x01(\x0b\x32\x1e.iterm2.RestartSessionResponseH\x00\x12\x36\n\x12menu_item_response\x18y \x01(\x0b\x32\x18.iterm2.MenuItemResponseH\x00\x12?\n\x17set_tab_layout_response\x18z \x01(\x0b\x32\x1c.iterm2.SetTabLayoutResponseH\x00\x12M\n\x1eget_broadcast_domains_response\x18{ \x01(\x0b\x32#.iterm2.GetBroadcastDomainsResponseH\x00\x12-\n\rtmux_response\x18| \x01(\x0b\x32\x14.iterm2.TmuxResponseH\x00\x12<\n\x15reorder_tabs_response\x18} \x01(\x0b\x32\x1b.iterm2.ReorderTabsResponseH\x00\x12;\n\x14preferences_response\x18~ \x01(\x0b\x32\x1b.iterm2.PreferencesResponseH\x00\x12<\n\x15\x63olor_preset_response\x18\x7f \x01(\x0b\x32\x1b.iterm2.ColorPresetResponseH\x00\x12\x38\n\x12selection_response\x18\x80\x01 \x01(\x0b\x32\x19.iterm2.SelectionResponseH\x00\x12L\n\x1dstatus_bar_component_response\x18\x81\x01 \x01(\x0b\x32\".iterm2.StatusBarComponentResponseH\x00\x12N\n\x1eset_broadcast_domains_response\x18\x82\x01 \x01(\x0b\x32#.iterm2.SetBroadcastDomainsResponseH\x00\x12\x30\n\x0e\x63lose_response\x18\x83\x01 \x01(\x0b\x32\x15.iterm2.CloseResponseH\x00\x12\x43\n\x18invoke_function_response\x18\x84\x01 \x01(\x0b\x32\x1e.iterm2.InvokeFunctionResponseH\x00\x12=\n\x15list_prompts_response\x18\x85\x01 \x01(\x0b\x32\x1b.iterm2.ListPromptsResponseH\x00\x12-\n\x0cnotification\x18\xe8\x07 \x01(\x0b\x32\x14.iterm2.NotificationH\x00\x42\x0c\n\nsubmessage\"\xcf\x03\n\x15InvokeFunctionRequest\x12\x30\n\x03tab\x18\x01 \x01(\x0b\x32!.iterm2.InvokeFunctionRequest.TabH\x00\x12\x38\n\x07session\x18\x02 \x01(\x0b\x32%.iterm2.InvokeFunctionRequest.SessionH\x00\x12\x36\n\x06window\x18\x03 \x01(\x0b\x32$.iterm2.InvokeFunctionRequest.WindowH\x00\x12\x30\n\x03\x61pp\x18\x04 \x01(\x0b\x32!.iterm2.InvokeFunctionRequest.AppH\x00\x12\x36\n\x06method\x18\x07 \x01(\x0b\x32$.iterm2.InvokeFunctionRequest.MethodH\x00\x12\x12\n\ninvocation\x18\x05 \x01(\t\x12\x13\n\x07timeout\x18\x06 \x01(\x01:\x02-1\x1a\x15\n\x03Tab\x12\x0e\n\x06tab_id\x18\x01 \x01(\t\x1a\x1d\n\x07Session\x12\x12\n\nsession_id\x18\x01 \x01(\t\x1a\x1b\n\x06Window\x12\x11\n\twindow_id\x18\x01 \x01(\t\x1a\x05\n\x03\x41pp\x1a\x1a\n\x06Method\x12\x10\n\x08receiver\x18\x01 \x01(\tB\t\n\x07\x63ontext\"\xd9\x02\n\x16InvokeFunctionResponse\x12\x35\n\x05\x65rror\x18\x01 \x01(\x0b\x32$.iterm2.InvokeFunctionResponse.ErrorH\x00\x12\x39\n\x07success\x18\x02 \x01(\x0b\x32&.iterm2.InvokeFunctionResponse.SuccessH\x00\x1aT\n\x05\x45rror\x12\x35\n\x06status\x18\x01 \x01(\x0e\x32%.iterm2.InvokeFunctionResponse.Status\x12\x14\n\x0c\x65rror_reason\x18\x02 \x01(\t\x1a\x1e\n\x07Success\x12\x13\n\x0bjson_result\x18\x01 \x01(\t\"H\n\x06Status\x12\x0b\n\x07TIMEOUT\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\x15\n\x11REQUEST_MALFORMED\x10\x03\x12\x0e\n\nINVALID_ID\x10\x04\x42\r\n\x0b\x64isposition\"\xad\x02\n\x0c\x43loseRequest\x12.\n\x04tabs\x18\x01 \x01(\x0b\x32\x1e.iterm2.CloseRequest.CloseTabsH\x00\x12\x36\n\x08sessions\x18\x02 \x01(\x0b\x32\".iterm2.CloseRequest.CloseSessionsH\x00\x12\x34\n\x07windows\x18\x03 \x01(\x0b\x32!.iterm2.CloseRequest.CloseWindowsH\x00\x12\r\n\x05\x66orce\x18\x04 \x01(\x08\x1a\x1c\n\tCloseTabs\x12\x0f\n\x07tab_ids\x18\x01 \x03(\t\x1a$\n\rCloseSessions\x12\x13\n\x0bsession_ids\x18\x01 \x03(\t\x1a\"\n\x0c\x43loseWindows\x12\x12\n\nwindow_ids\x18\x01 \x03(\tB\x08\n\x06target\"s\n\rCloseResponse\x12.\n\x08statuses\x18\x01 \x03(\x0e\x32\x1c.iterm2.CloseResponse.Status\"2\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\r\n\tNOT_FOUND\x10\x01\x12\x11\n\rUSER_DECLINED\x10\x02\"P\n\x1aSetBroadcastDomainsRequest\x12\x32\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32\x17.iterm2.BroadcastDomain\"\xc7\x01\n\x1bSetBroadcastDomainsResponse\x12:\n\x06status\x18\x01 \x01(\x0e\x32*.iterm2.SetBroadcastDomainsResponse.Status\"l\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\"\n\x1e\x42ROADCAST_DOMAINS_NOT_DISJOINT\x10\x02\x12\x1f\n\x1bSESSIONS_NOT_IN_SAME_WINDOW\x10\x03\"\xce\x01\n\x19StatusBarComponentRequest\x12\x45\n\x0copen_popover\x18\x01 \x01(\x0b\x32-.iterm2.StatusBarComponentRequest.OpenPopoverH\x00\x12\x12\n\nidentifier\x18\x02 \x01(\t\x1aK\n\x0bOpenPopover\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x0c\n\x04html\x18\x02 \x01(\t\x12\x1a\n\x04size\x18\x03 \x01(\x0b\x32\x0c.iterm2.SizeB\t\n\x07request\"\xaf\x01\n\x1aStatusBarComponentResponse\x12\x39\n\x06status\x18\x01 \x01(\x0e\x32).iterm2.StatusBarComponentResponse.Status\"V\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\x16\n\x12INVALID_IDENTIFIER\x10\x03\"]\n\x12WindowedCoordRange\x12\'\n\x0b\x63oord_range\x18\x01 \x01(\x0b\x32\x12.iterm2.CoordRange\x12\x1e\n\x07\x63olumns\x18\x02 \x01(\x0b\x32\r.iterm2.Range\"\x8a\x01\n\x0cSubSelection\x12\x38\n\x14windowed_coord_range\x18\x01 \x01(\x0b\x32\x1a.iterm2.WindowedCoordRange\x12-\n\x0eselection_mode\x18\x02 \x01(\x0e\x32\x15.iterm2.SelectionMode\x12\x11\n\tconnected\x18\x03 \x01(\x08\"9\n\tSelection\x12,\n\x0esub_selections\x18\x01 \x03(\x0b\x32\x14.iterm2.SubSelection\"\xb7\x02\n\x10SelectionRequest\x12M\n\x15get_selection_request\x18\x01 \x01(\x0b\x32,.iterm2.SelectionRequest.GetSelectionRequestH\x00\x12M\n\x15set_selection_request\x18\x02 \x01(\x0b\x32,.iterm2.SelectionRequest.SetSelectionRequestH\x00\x1a)\n\x13GetSelectionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x1aO\n\x13SetSelectionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12$\n\tselection\x18\x02 \x01(\x0b\x32\x11.iterm2.SelectionB\t\n\x07request\"\x9c\x03\n\x11SelectionResponse\x12\x30\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.SelectionResponse.Status\x12P\n\x16get_selection_response\x18\x02 \x01(\x0b\x32..iterm2.SelectionResponse.GetSelectionResponseH\x00\x12P\n\x16set_selection_response\x18\x03 \x01(\x0b\x32..iterm2.SelectionResponse.SetSelectionResponseH\x00\x1a<\n\x14GetSelectionResponse\x12$\n\tselection\x18\x02 \x01(\x0b\x32\x11.iterm2.Selection\x1a\x16\n\x14SetSelectionResponse\"O\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x13\n\x0fINVALID_SESSION\x10\x01\x12\x11\n\rINVALID_RANGE\x10\x02\x12\x15\n\x11REQUEST_MALFORMED\x10\x03\x42\n\n\x08response\"\xc5\x01\n\x12\x43olorPresetRequest\x12>\n\x0clist_presets\x18\x01 \x01(\x0b\x32&.iterm2.ColorPresetRequest.ListPresetsH\x00\x12:\n\nget_preset\x18\x02 \x01(\x0b\x32$.iterm2.ColorPresetRequest.GetPresetH\x00\x1a\r\n\x0bListPresets\x1a\x19\n\tGetPreset\x12\x0c\n\x04name\x18\x01 \x01(\tB\t\n\x07request\"\xf4\x03\n\x13\x43olorPresetResponse\x12?\n\x0clist_presets\x18\x01 \x01(\x0b\x32\'.iterm2.ColorPresetResponse.ListPresetsH\x00\x12;\n\nget_preset\x18\x02 \x01(\x0b\x32%.iterm2.ColorPresetResponse.GetPresetH\x00\x12\x32\n\x06status\x18\x03 \x01(\x0e\x32\".iterm2.ColorPresetResponse.Status\x1a\x1b\n\x0bListPresets\x12\x0c\n\x04name\x18\x01 \x03(\t\x1a\xc2\x01\n\tGetPreset\x12J\n\x0e\x63olor_settings\x18\x01 \x03(\x0b\x32\x32.iterm2.ColorPresetResponse.GetPreset.ColorSetting\x1ai\n\x0c\x43olorSetting\x12\x0b\n\x03red\x18\x01 \x01(\x02\x12\r\n\x05green\x18\x02 \x01(\x02\x12\x0c\n\x04\x62lue\x18\x03 \x01(\x02\x12\r\n\x05\x61lpha\x18\x04 \x01(\x02\x12\x13\n\x0b\x63olor_space\x18\x05 \x01(\t\x12\x0b\n\x03key\x18\x06 \x01(\t\"=\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x14\n\x10PRESET_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x42\n\n\x08response\"\xcb\x04\n\x12PreferencesRequest\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".iterm2.PreferencesRequest.Request\x1a\xfe\x03\n\x07Request\x12R\n\x16set_preference_request\x18\x01 \x01(\x0b\x32\x30.iterm2.PreferencesRequest.Request.SetPreferenceH\x00\x12R\n\x16get_preference_request\x18\x02 \x01(\x0b\x32\x30.iterm2.PreferencesRequest.Request.GetPreferenceH\x00\x12[\n\x1bset_default_profile_request\x18\x03 \x01(\x0b\x32\x34.iterm2.PreferencesRequest.Request.SetDefaultProfileH\x00\x12[\n\x1bget_default_profile_request\x18\x04 \x01(\x0b\x32\x34.iterm2.PreferencesRequest.Request.GetDefaultProfileH\x00\x1a\x30\n\rSetPreference\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x12\n\njson_value\x18\x02 \x01(\t\x1a\x1c\n\rGetPreference\x12\x0b\n\x03key\x18\x01 \x01(\t\x1a!\n\x11SetDefaultProfile\x12\x0c\n\x04guid\x18\x01 \x01(\t\x1a\x13\n\x11GetDefaultProfileB\t\n\x07request\"\xbf\x07\n\x13PreferencesResponse\x12\x33\n\x07results\x18\x01 \x03(\x0b\x32\".iterm2.PreferencesResponse.Result\x1a\xf2\x06\n\x06Result\x12U\n\x14unrecognized_request\x18\x01 \x01(\x0b\x32\x35.iterm2.PreferencesResponse.Result.UnrecognizedResultH\x00\x12W\n\x15set_preference_result\x18\x02 \x01(\x0b\x32\x36.iterm2.PreferencesResponse.Result.SetPreferenceResultH\x00\x12W\n\x15get_preference_result\x18\x03 \x01(\x0b\x32\x36.iterm2.PreferencesResponse.Result.GetPreferenceResultH\x00\x12`\n\x1aset_default_profile_result\x18\x04 \x01(\x0b\x32:.iterm2.PreferencesResponse.Result.SetDefaultProfileResultH\x00\x12`\n\x1aget_default_profile_result\x18\x05 \x01(\x0b\x32:.iterm2.PreferencesResponse.Result.GetDefaultProfileResultH\x00\x1a\x97\x01\n\x13SetPreferenceResult\x12M\n\x06status\x18\x01 \x01(\x0e\x32=.iterm2.PreferencesResponse.Result.SetPreferenceResult.Status\"1\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x0c\n\x08\x42\x41\x44_JSON\x10\x01\x12\x11\n\rINVALID_VALUE\x10\x02\x1a)\n\x13GetPreferenceResult\x12\x12\n\njson_value\x18\x01 \x01(\t\x1a\x8c\x01\n\x17SetDefaultProfileResult\x12Q\n\x06status\x18\x01 \x01(\x0e\x32\x41.iterm2.PreferencesResponse.Result.SetDefaultProfileResult.Status\"\x1e\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x0c\n\x08\x42\x41\x44_GUID\x10\x01\x1a\x14\n\x12UnrecognizedResult\x1a\'\n\x17GetDefaultProfileResult\x12\x0c\n\x04guid\x18\x01 \x01(\tB\x08\n\x06result\"\x82\x01\n\x12ReorderTabsRequest\x12:\n\x0b\x61ssignments\x18\x03 \x03(\x0b\x32%.iterm2.ReorderTabsRequest.Assignment\x1a\x30\n\nAssignment\x12\x11\n\twindow_id\x18\x01 \x01(\t\x12\x0f\n\x07tab_ids\x18\x02 \x03(\t\"\x9e\x01\n\x13ReorderTabsResponse\x12\x32\n\x06status\x18\x04 \x01(\x0e\x32\".iterm2.ReorderTabsResponse.Status\"S\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x16\n\x12INVALID_ASSIGNMENT\x10\x01\x12\x15\n\x11INVALID_WINDOW_ID\x10\x02\x12\x12\n\x0eINVALID_TAB_ID\x10\x03\"\xe3\x03\n\x0bTmuxRequest\x12?\n\x10list_connections\x18\x01 \x01(\x0b\x32#.iterm2.TmuxRequest.ListConnectionsH\x00\x12\x37\n\x0csend_command\x18\x02 \x01(\x0b\x32\x1f.iterm2.TmuxRequest.SendCommandH\x00\x12\x42\n\x12set_window_visible\x18\x03 \x01(\x0b\x32$.iterm2.TmuxRequest.SetWindowVisibleH\x00\x12\x39\n\rcreate_window\x18\x04 \x01(\x0b\x32 .iterm2.TmuxRequest.CreateWindowH\x00\x1a\x11\n\x0fListConnections\x1a\x35\n\x0bSendCommand\x12\x15\n\rconnection_id\x18\x01 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x02 \x01(\t\x1aM\n\x10SetWindowVisible\x12\x15\n\rconnection_id\x18\x01 \x01(\t\x12\x11\n\twindow_id\x18\x02 \x01(\t\x12\x0f\n\x07visible\x18\x03 \x01(\x08\x1a\x37\n\x0c\x43reateWindow\x12\x15\n\rconnection_id\x18\x01 \x01(\t\x12\x10\n\x08\x61\x66\x66inity\x18\x02 \x01(\tB\t\n\x07payload\"\x89\x05\n\x0cTmuxResponse\x12@\n\x10list_connections\x18\x01 \x01(\x0b\x32$.iterm2.TmuxResponse.ListConnectionsH\x00\x12\x38\n\x0csend_command\x18\x02 \x01(\x0b\x32 .iterm2.TmuxResponse.SendCommandH\x00\x12\x43\n\x12set_window_visible\x18\x03 \x01(\x0b\x32%.iterm2.TmuxResponse.SetWindowVisibleH\x00\x12:\n\rcreate_window\x18\x05 \x01(\x0b\x32!.iterm2.TmuxResponse.CreateWindowH\x00\x12+\n\x06status\x18\x04 \x01(\x0e\x32\x1b.iterm2.TmuxResponse.Status\x1a\x97\x01\n\x0fListConnections\x12\x44\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32/.iterm2.TmuxResponse.ListConnections.Connection\x1a>\n\nConnection\x12\x15\n\rconnection_id\x18\x01 \x01(\t\x12\x19\n\x11owning_session_id\x18\x02 \x01(\t\x1a\x1d\n\x0bSendCommand\x12\x0e\n\x06output\x18\x01 \x01(\t\x1a\x12\n\x10SetWindowVisible\x1a\x1e\n\x0c\x43reateWindow\x12\x0e\n\x06tab_id\x18\x01 \x01(\t\"W\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x13\n\x0fINVALID_REQUEST\x10\x01\x12\x19\n\x15INVALID_CONNECTION_ID\x10\x02\x12\x15\n\x11INVALID_WINDOW_ID\x10\x03\x42\t\n\x07payload\"\x1c\n\x1aGetBroadcastDomainsRequest\"&\n\x0f\x42roadcastDomain\x12\x13\n\x0bsession_ids\x18\x01 \x03(\t\"Q\n\x1bGetBroadcastDomainsResponse\x12\x32\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32\x17.iterm2.BroadcastDomain\"J\n\x13SetTabLayoutRequest\x12#\n\x04root\x18\x01 \x01(\x0b\x32\x15.iterm2.SplitTreeNode\x12\x0e\n\x06tab_id\x18\x02 \x01(\t\"\x8f\x01\n\x14SetTabLayoutResponse\x12\x33\n\x06status\x18\x01 \x01(\x0e\x32#.iterm2.SetTabLayoutResponse.Status\"B\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x0e\n\nBAD_TAB_ID\x10\x01\x12\x0e\n\nWRONG_TREE\x10\x02\x12\x10\n\x0cINVALID_SIZE\x10\x03\"9\n\x0fMenuItemRequest\x12\x12\n\nidentifier\x18\x01 \x01(\t\x12\x12\n\nquery_only\x18\x02 \x01(\x08\"\x99\x01\n\x10MenuItemResponse\x12/\n\x06status\x18\x01 \x01(\x0e\x32\x1f.iterm2.MenuItemResponse.Status\x12\x0f\n\x07\x63hecked\x18\x02 \x01(\x08\x12\x0f\n\x07\x65nabled\x18\x03 \x01(\x08\"2\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x12\n\x0e\x42\x41\x44_IDENTIFIER\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\"C\n\x15RestartSessionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x16\n\x0eonly_if_exited\x18\x02 \x01(\x08\"\x95\x01\n\x16RestartSessionResponse\x12\x35\n\x06status\x18\x01 \x01(\x0e\x32%.iterm2.RestartSessionResponse.Status\"D\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x1b\n\x17SESSION_NOT_RESTARTABLE\x10\x02\"p\n ServerOriginatedRPCResultRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x18\n\x0ejson_exception\x18\x02 \x01(\tH\x00\x12\x14\n\njson_value\x18\x03 \x01(\tH\x00\x42\x08\n\x06result\"#\n!ServerOriginatedRPCResultResponse\"8\n\x13ListProfilesRequest\x12\x12\n\nproperties\x18\x01 \x03(\t\x12\r\n\x05guids\x18\x02 \x03(\t\"\x86\x01\n\x14ListProfilesResponse\x12\x36\n\x08profiles\x18\x01 \x03(\x0b\x32$.iterm2.ListProfilesResponse.Profile\x1a\x36\n\x07Profile\x12+\n\nproperties\x18\x01 \x03(\x0b\x32\x17.iterm2.ProfileProperty\"\x0e\n\x0c\x46ocusRequest\"H\n\rFocusResponse\x12\x37\n\rnotifications\x18\x01 \x03(\x0b\x32 .iterm2.FocusChangedNotification\"\x9d\x01\n\x17SavedArrangementRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x36\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32&.iterm2.SavedArrangementRequest.Action\x12\x11\n\twindow_id\x18\x03 \x01(\t\")\n\x06\x41\x63tion\x12\x0b\n\x07RESTORE\x10\x00\x12\x08\n\x04SAVE\x10\x01\x12\x08\n\x04LIST\x10\x02\"\xbc\x01\n\x18SavedArrangementResponse\x12\x37\n\x06status\x18\x01 \x01(\x0e\x32\'.iterm2.SavedArrangementResponse.Status\x12\r\n\x05names\x18\x02 \x03(\t\"X\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x19\n\x15\x41RRANGEMENT_NOT_FOUND\x10\x01\x12\x14\n\x10WINDOW_NOT_FOUND\x10\x02\x12\x15\n\x11REQUEST_MALFORMED\x10\x03\"\xc1\x01\n\x0fVariableRequest\x12\x14\n\nsession_id\x18\x01 \x01(\tH\x00\x12\x10\n\x06tab_id\x18\x04 \x01(\tH\x00\x12\r\n\x03\x61pp\x18\x05 \x01(\x08H\x00\x12\x13\n\twindow_id\x18\x06 \x01(\tH\x00\x12(\n\x03set\x18\x02 \x03(\x0b\x32\x1b.iterm2.VariableRequest.Set\x12\x0b\n\x03get\x18\x03 \x03(\t\x1a\"\n\x03Set\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\tB\x07\n\x05scope\"\xe5\x01\n\x10VariableResponse\x12/\n\x06status\x18\x01 \x01(\x0e\x32\x1f.iterm2.VariableResponse.Status\x12\x0e\n\x06values\x18\x02 \x03(\t\"\x8f\x01\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x10\n\x0cINVALID_NAME\x10\x02\x12\x11\n\rMISSING_SCOPE\x10\x03\x12\x11\n\rTAB_NOT_FOUND\x10\x04\x12\x18\n\x14MULTI_GET_DISALLOWED\x10\x05\x12\x14\n\x10WINDOW_NOT_FOUND\x10\x06\"\x96\x02\n\x0f\x41\x63tivateRequest\x12\x13\n\twindow_id\x18\x01 \x01(\tH\x00\x12\x10\n\x06tab_id\x18\x02 \x01(\tH\x00\x12\x14\n\nsession_id\x18\x03 \x01(\tH\x00\x12\x1a\n\x12order_window_front\x18\x04 \x01(\x08\x12\x12\n\nselect_tab\x18\x05 \x01(\x08\x12\x16\n\x0eselect_session\x18\x06 \x01(\x08\x12\x31\n\x0c\x61\x63tivate_app\x18\x07 \x01(\x0b\x32\x1b.iterm2.ActivateRequest.App\x1a=\n\x03\x41pp\x12\x19\n\x11raise_all_windows\x18\x01 \x01(\x08\x12\x1b\n\x13ignoring_other_apps\x18\x02 \x01(\x08\x42\x0c\n\nidentifier\"}\n\x10\x41\x63tivateResponse\x12/\n\x06status\x18\x01 \x01(\x0e\x32\x1f.iterm2.ActivateResponse.Status\"8\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x12\n\x0e\x42\x41\x44_IDENTIFIER\x10\x01\x12\x12\n\x0eINVALID_OPTION\x10\x02\"1\n\rInjectRequest\x12\x12\n\nsession_id\x18\x01 \x03(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"h\n\x0eInjectResponse\x12-\n\x06status\x18\x01 \x03(\x0e\x32\x1d.iterm2.InjectResponse.Status\"\'\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\"[\n\x12GetPropertyRequest\x12\x13\n\twindow_id\x18\x01 \x01(\tH\x00\x12\x14\n\nsession_id\x18\x03 \x01(\tH\x00\x12\x0c\n\x04name\x18\x02 \x01(\tB\x0c\n\nidentifier\"\x9a\x01\n\x13GetPropertyResponse\x12\x32\n\x06status\x18\x01 \x01(\x0e\x32\".iterm2.GetPropertyResponse.Status\x12\x12\n\njson_value\x18\x02 \x01(\t\";\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11UNRECOGNIZED_NAME\x10\x01\x12\x12\n\x0eINVALID_TARGET\x10\x02\"o\n\x12SetPropertyRequest\x12\x13\n\twindow_id\x18\x01 \x01(\tH\x00\x12\x14\n\nsession_id\x18\x05 \x01(\tH\x00\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x12\n\njson_value\x18\x04 \x01(\tB\x0c\n\nidentifier\"\xc3\x01\n\x13SetPropertyResponse\x12\x32\n\x06status\x18\x01 \x01(\x0e\x32\".iterm2.SetPropertyResponse.Status\"x\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11UNRECOGNIZED_NAME\x10\x01\x12\x11\n\rINVALID_VALUE\x10\x02\x12\x12\n\x0eINVALID_TARGET\x10\x03\x12\x0c\n\x08\x44\x45\x46\x45RRED\x10\x04\x12\x0e\n\nIMPOSSIBLE\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06\"\xd8\x01\n\x13RegisterToolRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nidentifier\x18\x02 \x01(\t\x12+\n\x1creveal_if_already_registered\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x46\n\ttool_type\x18\x03 \x01(\x0e\x32$.iterm2.RegisterToolRequest.ToolType:\rWEB_VIEW_TOOL\x12\x0b\n\x03URL\x18\x04 \x01(\t\"\x1d\n\x08ToolType\x12\x11\n\rWEB_VIEW_TOOL\x10\x01\"\xdb\x0b\n\x16RPCRegistrationRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x46\n\targuments\x18\x02 \x03(\x0b\x32\x33.iterm2.RPCRegistrationRequest.RPCArgumentSignature\x12<\n\x08\x64\x65\x66\x61ults\x18\x04 \x03(\x0b\x32*.iterm2.RPCRegistrationRequest.RPCArgument\x12\x0f\n\x07timeout\x18\x03 \x01(\x02\x12:\n\x04role\x18\x05 \x01(\x0e\x32#.iterm2.RPCRegistrationRequest.Role:\x07GENERIC\x12Y\n\x18session_title_attributes\x18\x07 \x01(\x0b\x32\x35.iterm2.RPCRegistrationRequest.SessionTitleAttributesH\x00\x12\x66\n\x1fstatus_bar_component_attributes\x18\x08 \x01(\x0b\x32;.iterm2.RPCRegistrationRequest.StatusBarComponentAttributesH\x00\x12W\n\x17\x63ontext_menu_attributes\x18\t \x01(\x0b\x32\x34.iterm2.RPCRegistrationRequest.ContextMenuAttributesH\x00\x12\x18\n\x0c\x64isplay_name\x18\x06 \x01(\tB\x02\x18\x01\x1a$\n\x14RPCArgumentSignature\x12\x0c\n\x04name\x18\x01 \x01(\t\x1a)\n\x0bRPCArgument\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x1aI\n\x16SessionTitleAttributes\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\t\x12\x19\n\x11unique_identifier\x18\x06 \x01(\t\x1a\xd5\x04\n\x1cStatusBarComponentAttributes\x12\x19\n\x11short_description\x18\x01 \x01(\t\x12\x1c\n\x14\x64\x65tailed_description\x18\x02 \x01(\t\x12O\n\x05knobs\x18\x03 \x03(\x0b\x32@.iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Knob\x12\x10\n\x08\x65xemplar\x18\x04 \x01(\t\x12\x16\n\x0eupdate_cadence\x18\x05 \x01(\x02\x12\x19\n\x11unique_identifier\x18\x06 \x01(\t\x12O\n\x05icons\x18\x07 \x03(\x0b\x32@.iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Icon\x1a\xef\x01\n\x04Knob\x12\x0c\n\x04name\x18\x01 \x01(\t\x12S\n\x04type\x18\x02 \x01(\x0e\x32\x45.iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Knob.Type\x12\x13\n\x0bplaceholder\x18\x03 \x01(\t\x12\x1a\n\x12json_default_value\x18\x04 \x01(\t\x12\x0b\n\x03key\x18\x05 \x01(\t\"F\n\x04Type\x12\x0c\n\x08\x43heckbox\x10\x01\x12\n\n\x06String\x10\x02\x12\x19\n\x15PositiveFloatingPoint\x10\x03\x12\t\n\x05\x43olor\x10\x04\x1a#\n\x04Icon\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\r\n\x05scale\x18\x02 \x01(\x02\x1aH\n\x15\x43ontextMenuAttributes\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\t\x12\x19\n\x11unique_identifier\x18\x02 \x01(\t\"R\n\x04Role\x12\x0b\n\x07GENERIC\x10\x01\x12\x11\n\rSESSION_TITLE\x10\x02\x12\x18\n\x14STATUS_BAR_COMPONENT\x10\x03\x12\x10\n\x0c\x43ONTEXT_MENU\x10\x04\x42\x18\n\x16RoleSpecificAttributes\"\x8b\x01\n\x14RegisterToolResponse\x12\x33\n\x06status\x18\x01 \x01(\x0e\x32#.iterm2.RegisterToolResponse.Status\">\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11REQUEST_MALFORMED\x10\x01\x12\x15\n\x11PERMISSION_DENIED\x10\x02\"\xbe\x01\n\x10KeystrokePattern\x12-\n\x12required_modifiers\x18\x01 \x03(\x0e\x32\x11.iterm2.Modifiers\x12.\n\x13\x66orbidden_modifiers\x18\x02 \x03(\x0e\x32\x11.iterm2.Modifiers\x12\x10\n\x08keycodes\x18\x03 \x03(\x05\x12\x12\n\ncharacters\x18\x04 \x03(\t\x12%\n\x1d\x63haracters_ignoring_modifiers\x18\x05 \x03(\t\"e\n\x17KeystrokeMonitorRequest\x12\x38\n\x12patterns_to_ignore\x18\x01 \x03(\x0b\x32\x18.iterm2.KeystrokePatternB\x02\x18\x01\x12\x10\n\x08\x61\x64vanced\x18\x02 \x01(\x08\"N\n\x16KeystrokeFilterRequest\x12\x34\n\x12patterns_to_ignore\x18\x01 \x03(\x0b\x32\x18.iterm2.KeystrokePattern\"`\n\x16VariableMonitorRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12$\n\x05scope\x18\x02 \x01(\x0e\x32\x15.iterm2.VariableScope\x12\x12\n\nidentifier\x18\x03 \x01(\t\"$\n\x14ProfileChangeRequest\x12\x0c\n\x04guid\x18\x01 \x01(\t\"@\n\x14PromptMonitorRequest\x12(\n\x05modes\x18\x01 \x03(\x0e\x32\x19.iterm2.PromptMonitorMode\"\x8d\x04\n\x13NotificationRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x11\n\tsubscribe\x18\x02 \x01(\x08\x12\x33\n\x11notification_type\x18\x03 \x01(\x0e\x32\x18.iterm2.NotificationType\x12\x42\n\x18rpc_registration_request\x18\x04 \x01(\x0b\x32\x1e.iterm2.RPCRegistrationRequestH\x00\x12\x44\n\x19keystroke_monitor_request\x18\x05 \x01(\x0b\x32\x1f.iterm2.KeystrokeMonitorRequestH\x00\x12\x42\n\x18variable_monitor_request\x18\x06 \x01(\x0b\x32\x1e.iterm2.VariableMonitorRequestH\x00\x12>\n\x16profile_change_request\x18\x07 \x01(\x0b\x32\x1c.iterm2.ProfileChangeRequestH\x00\x12\x42\n\x18keystroke_filter_request\x18\x08 \x01(\x0b\x32\x1e.iterm2.KeystrokeFilterRequestH\x00\x12>\n\x16prompt_monitor_request\x18\t \x01(\x0b\x32\x1c.iterm2.PromptMonitorRequestH\x00\x42\x0b\n\targuments\"\xf5\x01\n\x14NotificationResponse\x12\x33\n\x06status\x18\x01 \x01(\x0e\x32#.iterm2.NotificationResponse.Status\"\xa7\x01\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\x12\n\x0eNOT_SUBSCRIBED\x10\x03\x12\x16\n\x12\x41LREADY_SUBSCRIBED\x10\x04\x12#\n\x1f\x44UPLICATE_SERVER_ORIGINATED_RPC\x10\x05\x12\x16\n\x12INVALID_IDENTIFIER\x10\x06\"\xca\x07\n\x0cNotification\x12=\n\x16keystroke_notification\x18\x01 \x01(\x0b\x32\x1d.iterm2.KeystrokeNotification\x12\x44\n\x1ascreen_update_notification\x18\x02 \x01(\x0b\x32 .iterm2.ScreenUpdateNotification\x12\x37\n\x13prompt_notification\x18\x03 \x01(\x0b\x32\x1a.iterm2.PromptNotification\x12L\n\x1clocation_change_notification\x18\x04 \x01(\x0b\x32\".iterm2.LocationChangeNotificationB\x02\x18\x01\x12U\n#custom_escape_sequence_notification\x18\x05 \x01(\x0b\x32(.iterm2.CustomEscapeSequenceNotification\x12@\n\x18new_session_notification\x18\x06 \x01(\x0b\x32\x1e.iterm2.NewSessionNotification\x12L\n\x1eterminate_session_notification\x18\x07 \x01(\x0b\x32$.iterm2.TerminateSessionNotification\x12\x46\n\x1blayout_changed_notification\x18\x08 \x01(\x0b\x32!.iterm2.LayoutChangedNotification\x12\x44\n\x1a\x66ocus_changed_notification\x18\t \x01(\x0b\x32 .iterm2.FocusChangedNotification\x12S\n\"server_originated_rpc_notification\x18\n \x01(\x0b\x32\'.iterm2.ServerOriginatedRPCNotification\x12N\n\x19\x62roadcast_domains_changed\x18\x0b \x01(\x0b\x32+.iterm2.BroadcastDomainsChangedNotification\x12J\n\x1dvariable_changed_notification\x18\x0c \x01(\x0b\x32#.iterm2.VariableChangedNotification\x12H\n\x1cprofile_changed_notification\x18\r \x01(\x0b\x32\".iterm2.ProfileChangedNotification\"*\n\x1aProfileChangedNotification\x12\x0c\n\x04guid\x18\x01 \x01(\t\"}\n\x1bVariableChangedNotification\x12$\n\x05scope\x18\x01 \x01(\x0e\x32\x15.iterm2.VariableScope\x12\x12\n\nidentifier\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x16\n\x0ejson_new_value\x18\x04 \x01(\t\"Y\n#BroadcastDomainsChangedNotification\x12\x32\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32\x17.iterm2.BroadcastDomain\"\x90\x01\n\x13ServerOriginatedRPC\x12\x0c\n\x04name\x18\x02 \x01(\t\x12:\n\targuments\x18\x03 \x03(\x0b\x32\'.iterm2.ServerOriginatedRPC.RPCArgument\x1a/\n\x0bRPCArgument\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\njson_value\x18\x02 \x01(\t\"_\n\x1fServerOriginatedRPCNotification\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12(\n\x03rpc\x18\x02 \x01(\x0b\x32\x1b.iterm2.ServerOriginatedRPC\"\x85\x02\n\x15KeystrokeNotification\x12\x12\n\ncharacters\x18\x01 \x01(\t\x12#\n\x1b\x63haractersIgnoringModifiers\x18\x02 \x01(\t\x12$\n\tmodifiers\x18\x03 \x03(\x0e\x32\x11.iterm2.Modifiers\x12\x0f\n\x07keyCode\x18\x04 \x01(\x05\x12\x0f\n\x07session\x18\x05 \x01(\t\x12\x34\n\x06\x61\x63tion\x18\x06 \x01(\x0e\x32$.iterm2.KeystrokeNotification.Action\"5\n\x06\x41\x63tion\x12\x0c\n\x08KEY_DOWN\x10\x00\x12\n\n\x06KEY_UP\x10\x01\x12\x11\n\rFLAGS_CHANGED\x10\x02\"+\n\x18ScreenUpdateNotification\x12\x0f\n\x07session\x18\x01 \x01(\t\"Z\n\x18PromptNotificationPrompt\x12\x13\n\x0bplaceholder\x18\x01 \x01(\t\x12)\n\x06prompt\x18\x02 \x01(\x0b\x32\x19.iterm2.GetPromptResponse\"1\n\x1ePromptNotificationCommandStart\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\t\".\n\x1cPromptNotificationCommandEnd\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xfa\x01\n\x12PromptNotification\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x32\n\x06prompt\x18\x02 \x01(\x0b\x32 .iterm2.PromptNotificationPromptH\x00\x12?\n\rcommand_start\x18\x03 \x01(\x0b\x32&.iterm2.PromptNotificationCommandStartH\x00\x12;\n\x0b\x63ommand_end\x18\x04 \x01(\x0b\x32$.iterm2.PromptNotificationCommandEndH\x00\x12\x18\n\x10unique_prompt_id\x18\x05 \x01(\tB\x07\n\x05\x65vent\"f\n\x1aLocationChangeNotification\x12\x11\n\thost_name\x18\x01 \x01(\t\x12\x11\n\tuser_name\x18\x02 \x01(\t\x12\x11\n\tdirectory\x18\x03 \x01(\t\x12\x0f\n\x07session\x18\x04 \x01(\t\"]\n CustomEscapeSequenceNotification\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x17\n\x0fsender_identity\x18\x02 \x01(\t\x12\x0f\n\x07payload\x18\x03 \x01(\t\",\n\x16NewSessionNotification\x12\x12\n\nsession_id\x18\x01 \x01(\t\"\x84\x03\n\x18\x46ocusChangedNotification\x12\x1c\n\x12\x61pplication_active\x18\x01 \x01(\x08H\x00\x12\x39\n\x06window\x18\x02 \x01(\x0b\x32\'.iterm2.FocusChangedNotification.WindowH\x00\x12\x16\n\x0cselected_tab\x18\x03 \x01(\tH\x00\x12\x11\n\x07session\x18\x04 \x01(\tH\x00\x1a\xda\x01\n\x06Window\x12K\n\rwindow_status\x18\x01 \x01(\x0e\x32\x34.iterm2.FocusChangedNotification.Window.WindowStatus\x12\x11\n\twindow_id\x18\x02 \x01(\t\"p\n\x0cWindowStatus\x12\x1e\n\x1aTERMINAL_WINDOW_BECAME_KEY\x10\x00\x12\x1e\n\x1aTERMINAL_WINDOW_IS_CURRENT\x10\x01\x12 \n\x1cTERMINAL_WINDOW_RESIGNED_KEY\x10\x02\x42\x07\n\x05\x65vent\"2\n\x1cTerminateSessionNotification\x12\x12\n\nsession_id\x18\x01 \x01(\t\"Y\n\x19LayoutChangedNotification\x12<\n\x16list_sessions_response\x18\x01 \x01(\x0b\x32\x1c.iterm2.ListSessionsResponse\"J\n\x10GetBufferRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12%\n\nline_range\x18\x02 \x01(\x0b\x32\x11.iterm2.LineRange\"\xe8\x02\n\x11GetBufferResponse\x12\x34\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.GetBufferResponse.Status:\x02OK\x12 \n\x05range\x18\x02 \x01(\x0b\x32\r.iterm2.RangeB\x02\x18\x01\x12&\n\x08\x63ontents\x18\x03 \x03(\x0b\x32\x14.iterm2.LineContents\x12\x1d\n\x06\x63ursor\x18\x04 \x01(\x0b\x32\r.iterm2.Coord\x12\"\n\x16num_lines_above_screen\x18\x05 \x01(\x03\x42\x02\x18\x01\x12\x38\n\x14windowed_coord_range\x18\x06 \x01(\x0b\x32\x1a.iterm2.WindowedCoordRange\"V\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x16\n\x12INVALID_LINE_RANGE\x10\x02\x12\x15\n\x11REQUEST_MALFORMED\x10\x03\"=\n\x10GetPromptRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x18\n\x10unique_prompt_id\x18\x02 \x01(\t\"\xe3\x03\n\x11GetPromptResponse\x12\x34\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.GetPromptResponse.Status:\x02OK\x12(\n\x0cprompt_range\x18\x02 \x01(\x0b\x32\x12.iterm2.CoordRange\x12)\n\rcommand_range\x18\x03 \x01(\x0b\x32\x12.iterm2.CoordRange\x12(\n\x0coutput_range\x18\x04 \x01(\x0b\x32\x12.iterm2.CoordRange\x12\x19\n\x11working_directory\x18\x05 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x06 \x01(\t\x12\x35\n\x0cprompt_state\x18\x07 \x01(\x0e\x32\x1f.iterm2.GetPromptResponse.State\x12\x13\n\x0b\x65xit_status\x18\t \x01(\r\x12\x18\n\x10unique_prompt_id\x18\n \x01(\t\"V\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\x16\n\x12PROMPT_UNAVAILABLE\x10\x03\"/\n\x05State\x12\x0b\n\x07\x45\x44ITING\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\x0c\n\x08\x46INISHED\x10\x02\"V\n\x12ListPromptsRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x17\n\x0f\x66irst_unique_id\x18\x02 \x01(\t\x12\x16\n\x0elast_unique_id\x18\x03 \x01(\t\"\x90\x01\n\x13ListPromptsResponse\x12\x36\n\x06status\x18\x01 \x01(\x0e\x32\".iterm2.ListPromptsResponse.Status:\x02OK\x12\x18\n\x10unique_prompt_id\x18\x02 \x03(\t\"\'\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\":\n\x19GetProfilePropertyRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x0c\n\x04keys\x18\x02 \x03(\t\"2\n\x0fProfileProperty\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x12\n\njson_value\x18\x02 \x01(\t\"\xd3\x01\n\x1aGetProfilePropertyResponse\x12=\n\x06status\x18\x01 \x01(\x0e\x32).iterm2.GetProfilePropertyResponse.Status:\x02OK\x12+\n\nproperties\x18\x03 \x03(\x0b\x32\x17.iterm2.ProfileProperty\"I\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\t\n\x05\x45RROR\x10\x03\"\xa7\x02\n\x19SetProfilePropertyRequest\x12\x11\n\x07session\x18\x01 \x01(\tH\x00\x12?\n\tguid_list\x18\x02 \x01(\x0b\x32*.iterm2.SetProfilePropertyRequest.GuidListH\x00\x12\x0b\n\x03key\x18\x03 \x01(\t\x12\x12\n\njson_value\x18\x04 \x01(\t\x12\x41\n\x0b\x61ssignments\x18\x05 \x03(\x0b\x32,.iterm2.SetProfilePropertyRequest.Assignment\x1a\x19\n\x08GuidList\x12\r\n\x05guids\x18\x01 \x03(\t\x1a-\n\nAssignment\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x12\n\njson_value\x18\x02 \x01(\tB\x08\n\x06target\"\xa9\x01\n\x1aSetProfilePropertyResponse\x12=\n\x06status\x18\x01 \x01(\x0e\x32).iterm2.SetProfilePropertyResponse.Status:\x02OK\"L\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\x0c\n\x08\x42\x41\x44_GUID\x10\x03\"#\n\x12TransactionRequest\x12\r\n\x05\x62\x65gin\x18\x01 \x01(\x08\"\x8f\x01\n\x13TransactionResponse\x12\x36\n\x06status\x18\x01 \x01(\x0e\x32\".iterm2.TransactionResponse.Status:\x02OK\"@\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x12\n\x0eNO_TRANSACTION\x10\x01\x12\x1a\n\x16\x41LREADY_IN_TRANSACTION\x10\x02\"{\n\tLineRange\x12\x1c\n\x14screen_contents_only\x18\x01 \x01(\x08\x12\x16\n\x0etrailing_lines\x18\x02 \x01(\x05\x12\x38\n\x14windowed_coord_range\x18\x03 \x01(\x0b\x32\x1a.iterm2.WindowedCoordRange\")\n\x05Range\x12\x10\n\x08location\x18\x01 \x01(\x03\x12\x0e\n\x06length\x18\x02 \x01(\x03\"F\n\nCoordRange\x12\x1c\n\x05start\x18\x01 \x01(\x0b\x32\r.iterm2.Coord\x12\x1a\n\x03\x65nd\x18\x02 \x01(\x0b\x32\r.iterm2.Coord\"\x1d\n\x05\x43oord\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x03\"\xeb\x01\n\x0cLineContents\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x37\n\x14\x63ode_points_per_cell\x18\x02 \x03(\x0b\x32\x19.iterm2.CodePointsPerCell\x12N\n\x0c\x63ontinuation\x18\x03 \x01(\x0e\x32!.iterm2.LineContents.Continuation:\x15\x43ONTINUATION_HARD_EOL\"D\n\x0c\x43ontinuation\x12\x19\n\x15\x43ONTINUATION_HARD_EOL\x10\x01\x12\x19\n\x15\x43ONTINUATION_SOFT_EOL\x10\x02\"@\n\x11\x43odePointsPerCell\x12\x1a\n\x0fnum_code_points\x18\x01 \x01(\x05:\x01\x31\x12\x0f\n\x07repeats\x18\x02 \x01(\x05\"\x15\n\x13ListSessionsRequest\"L\n\x0fSendTextRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x1a\n\x12suppress_broadcast\x18\x03 \x01(\x08\"l\n\x10SendTextResponse\x12/\n\x06status\x18\x01 \x01(\x0e\x32\x1f.iterm2.SendTextResponse.Status\"\'\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\"%\n\x04Size\x12\r\n\x05width\x18\x01 \x01(\x05\x12\x0e\n\x06height\x18\x02 \x01(\x05\"\x1d\n\x05Point\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05\"B\n\x05\x46rame\x12\x1d\n\x06origin\x18\x01 \x01(\x0b\x32\r.iterm2.Point\x12\x1a\n\x04size\x18\x02 \x01(\x0b\x32\x0c.iterm2.Size\"y\n\x0eSessionSummary\x12\x19\n\x11unique_identifier\x18\x01 \x01(\t\x12\x1c\n\x05\x66rame\x18\x02 \x01(\x0b\x32\r.iterm2.Frame\x12\x1f\n\tgrid_size\x18\x03 \x01(\x0b\x32\x0c.iterm2.Size\x12\r\n\x05title\x18\x04 \x01(\t\"\xc1\x01\n\rSplitTreeNode\x12\x10\n\x08vertical\x18\x01 \x01(\x08\x12\x32\n\x05links\x18\x02 \x03(\x0b\x32#.iterm2.SplitTreeNode.SplitTreeLink\x1aj\n\rSplitTreeLink\x12)\n\x07session\x18\x01 \x01(\x0b\x32\x16.iterm2.SessionSummaryH\x00\x12%\n\x04node\x18\x02 \x01(\x0b\x32\x15.iterm2.SplitTreeNodeH\x00\x42\x07\n\x05\x63hild\"\x9d\x03\n\x14ListSessionsResponse\x12\x34\n\x07windows\x18\x01 \x03(\x0b\x32#.iterm2.ListSessionsResponse.Window\x12/\n\x0f\x62uried_sessions\x18\x02 \x03(\x0b\x32\x16.iterm2.SessionSummary\x1ay\n\x06Window\x12.\n\x04tabs\x18\x01 \x03(\x0b\x32 .iterm2.ListSessionsResponse.Tab\x12\x11\n\twindow_id\x18\x02 \x01(\t\x12\x1c\n\x05\x66rame\x18\x03 \x01(\x0b\x32\r.iterm2.Frame\x12\x0e\n\x06number\x18\x04 \x01(\x05\x1a\xa2\x01\n\x03Tab\x12#\n\x04root\x18\x03 \x01(\x0b\x32\x15.iterm2.SplitTreeNode\x12\x0e\n\x06tab_id\x18\x02 \x01(\t\x12\x16\n\x0etmux_window_id\x18\x04 \x01(\t\x12\x1a\n\x12tmux_connection_id\x18\x05 \x01(\t\x12\x32\n\x12minimized_sessions\x18\x06 \x03(\x0b\x32\x16.iterm2.SessionSummary\"\x9f\x01\n\x10\x43reateTabRequest\x12\x14\n\x0cprofile_name\x18\x01 \x01(\t\x12\x11\n\twindow_id\x18\x02 \x01(\t\x12\x11\n\ttab_index\x18\x03 \x01(\r\x12\x13\n\x07\x63ommand\x18\x04 \x01(\tB\x02\x18\x01\x12:\n\x19\x63ustom_profile_properties\x18\x05 \x03(\x0b\x32\x17.iterm2.ProfileProperty\"\xf0\x01\n\x11\x43reateTabResponse\x12\x30\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.CreateTabResponse.Status\x12\x11\n\twindow_id\x18\x02 \x01(\t\x12\x0e\n\x06tab_id\x18\x03 \x01(\x05\x12\x12\n\nsession_id\x18\x04 \x01(\t\"r\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x18\n\x14INVALID_PROFILE_NAME\x10\x01\x12\x15\n\x11INVALID_WINDOW_ID\x10\x02\x12\x15\n\x11INVALID_TAB_INDEX\x10\x03\x12\x18\n\x14MISSING_SUBSTITUTION\x10\x04\"\xfe\x01\n\x10SplitPaneRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12@\n\x0fsplit_direction\x18\x02 \x01(\x0e\x32\'.iterm2.SplitPaneRequest.SplitDirection\x12\x15\n\x06\x62\x65\x66ore\x18\x03 \x01(\x08:\x05\x66\x61lse\x12\x14\n\x0cprofile_name\x18\x04 \x01(\t\x12:\n\x19\x63ustom_profile_properties\x18\x05 \x03(\x0b\x32\x17.iterm2.ProfileProperty\".\n\x0eSplitDirection\x12\x0c\n\x08VERTICAL\x10\x00\x12\x0e\n\nHORIZONTAL\x10\x01\"\xd5\x01\n\x11SplitPaneResponse\x12\x30\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.SplitPaneResponse.Status\x12\x12\n\nsession_id\x18\x02 \x03(\t\"z\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x18\n\x14INVALID_PROFILE_NAME\x10\x02\x12\x10\n\x0c\x43\x41NNOT_SPLIT\x10\x03\x12%\n!MALFORMED_CUSTOM_PROFILE_PROPERTY\x10\x04*V\n\rSelectionMode\x12\r\n\tCHARACTER\x10\x00\x12\x08\n\x04WORD\x10\x01\x12\x08\n\x04LINE\x10\x02\x12\t\n\x05SMART\x10\x03\x12\x07\n\x03\x42OX\x10\x04\x12\x0e\n\nWHOLE_LINE\x10\x05*\xb4\x03\n\x10NotificationType\x12\x17\n\x13NOTIFY_ON_KEYSTROKE\x10\x01\x12\x1b\n\x17NOTIFY_ON_SCREEN_UPDATE\x10\x02\x12\x14\n\x10NOTIFY_ON_PROMPT\x10\x03\x12!\n\x19NOTIFY_ON_LOCATION_CHANGE\x10\x04\x1a\x02\x08\x01\x12$\n NOTIFY_ON_CUSTOM_ESCAPE_SEQUENCE\x10\x05\x12\x1d\n\x19NOTIFY_ON_VARIABLE_CHANGE\x10\x0c\x12\x14\n\x10KEYSTROKE_FILTER\x10\x0e\x12\x19\n\x15NOTIFY_ON_NEW_SESSION\x10\x06\x12\x1f\n\x1bNOTIFY_ON_TERMINATE_SESSION\x10\x07\x12\x1b\n\x17NOTIFY_ON_LAYOUT_CHANGE\x10\x08\x12\x1a\n\x16NOTIFY_ON_FOCUS_CHANGE\x10\t\x12#\n\x1fNOTIFY_ON_SERVER_ORIGINATED_RPC\x10\n\x12\x1e\n\x1aNOTIFY_ON_BROADCAST_CHANGE\x10\x0b\x12\x1c\n\x18NOTIFY_ON_PROFILE_CHANGE\x10\r*V\n\tModifiers\x12\x0b\n\x07\x43ONTROL\x10\x01\x12\n\n\x06OPTION\x10\x02\x12\x0b\n\x07\x43OMMAND\x10\x03\x12\t\n\x05SHIFT\x10\x04\x12\x0c\n\x08\x46UNCTION\x10\x05\x12\n\n\x06NUMPAD\x10\x06*:\n\rVariableScope\x12\x0b\n\x07SESSION\x10\x01\x12\x07\n\x03TAB\x10\x02\x12\n\n\x06WINDOW\x10\x03\x12\x07\n\x03\x41PP\x10\x04*C\n\x11PromptMonitorMode\x12\n\n\x06PROMPT\x10\x01\x12\x11\n\rCOMMAND_START\x10\x02\x12\x0f\n\x0b\x43OMMAND_END\x10\x03\x42\x06\xa2\x02\x03ITM') + serialized_pb=_b('\n\tapi.proto\x12\x06iterm2\"\xd9\x10\n\x17\x43lientOriginatedMessage\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x36\n\x12get_buffer_request\x18\x64 \x01(\x0b\x32\x18.iterm2.GetBufferRequestH\x00\x12\x36\n\x12get_prompt_request\x18\x65 \x01(\x0b\x32\x18.iterm2.GetPromptRequestH\x00\x12\x39\n\x13transaction_request\x18\x66 \x01(\x0b\x32\x1a.iterm2.TransactionRequestH\x00\x12;\n\x14notification_request\x18g \x01(\x0b\x32\x1b.iterm2.NotificationRequestH\x00\x12<\n\x15register_tool_request\x18h \x01(\x0b\x32\x1b.iterm2.RegisterToolRequestH\x00\x12I\n\x1cset_profile_property_request\x18i \x01(\x0b\x32!.iterm2.SetProfilePropertyRequestH\x00\x12<\n\x15list_sessions_request\x18j \x01(\x0b\x32\x1b.iterm2.ListSessionsRequestH\x00\x12\x34\n\x11send_text_request\x18k \x01(\x0b\x32\x17.iterm2.SendTextRequestH\x00\x12\x36\n\x12\x63reate_tab_request\x18l \x01(\x0b\x32\x18.iterm2.CreateTabRequestH\x00\x12\x36\n\x12split_pane_request\x18m \x01(\x0b\x32\x18.iterm2.SplitPaneRequestH\x00\x12I\n\x1cget_profile_property_request\x18n \x01(\x0b\x32!.iterm2.GetProfilePropertyRequestH\x00\x12:\n\x14set_property_request\x18o \x01(\x0b\x32\x1a.iterm2.SetPropertyRequestH\x00\x12:\n\x14get_property_request\x18p \x01(\x0b\x32\x1a.iterm2.GetPropertyRequestH\x00\x12/\n\x0einject_request\x18q \x01(\x0b\x32\x15.iterm2.InjectRequestH\x00\x12\x33\n\x10\x61\x63tivate_request\x18r \x01(\x0b\x32\x17.iterm2.ActivateRequestH\x00\x12\x33\n\x10variable_request\x18s \x01(\x0b\x32\x17.iterm2.VariableRequestH\x00\x12\x44\n\x19saved_arrangement_request\x18t \x01(\x0b\x32\x1f.iterm2.SavedArrangementRequestH\x00\x12-\n\rfocus_request\x18u \x01(\x0b\x32\x14.iterm2.FocusRequestH\x00\x12<\n\x15list_profiles_request\x18v \x01(\x0b\x32\x1b.iterm2.ListProfilesRequestH\x00\x12X\n$server_originated_rpc_result_request\x18w \x01(\x0b\x32(.iterm2.ServerOriginatedRPCResultRequestH\x00\x12@\n\x17restart_session_request\x18x \x01(\x0b\x32\x1d.iterm2.RestartSessionRequestH\x00\x12\x34\n\x11menu_item_request\x18y \x01(\x0b\x32\x17.iterm2.MenuItemRequestH\x00\x12=\n\x16set_tab_layout_request\x18z \x01(\x0b\x32\x1b.iterm2.SetTabLayoutRequestH\x00\x12K\n\x1dget_broadcast_domains_request\x18{ \x01(\x0b\x32\".iterm2.GetBroadcastDomainsRequestH\x00\x12+\n\x0ctmux_request\x18| \x01(\x0b\x32\x13.iterm2.TmuxRequestH\x00\x12:\n\x14reorder_tabs_request\x18} \x01(\x0b\x32\x1a.iterm2.ReorderTabsRequestH\x00\x12\x39\n\x13preferences_request\x18~ \x01(\x0b\x32\x1a.iterm2.PreferencesRequestH\x00\x12:\n\x14\x63olor_preset_request\x18\x7f \x01(\x0b\x32\x1a.iterm2.ColorPresetRequestH\x00\x12\x36\n\x11selection_request\x18\x80\x01 \x01(\x0b\x32\x18.iterm2.SelectionRequestH\x00\x12J\n\x1cstatus_bar_component_request\x18\x81\x01 \x01(\x0b\x32!.iterm2.StatusBarComponentRequestH\x00\x12L\n\x1dset_broadcast_domains_request\x18\x82\x01 \x01(\x0b\x32\".iterm2.SetBroadcastDomainsRequestH\x00\x12.\n\rclose_request\x18\x83\x01 \x01(\x0b\x32\x14.iterm2.CloseRequestH\x00\x12\x41\n\x17invoke_function_request\x18\x84\x01 \x01(\x0b\x32\x1d.iterm2.InvokeFunctionRequestH\x00\x12;\n\x14list_prompts_request\x18\x85\x01 \x01(\x0b\x32\x1a.iterm2.ListPromptsRequestH\x00\x42\x0c\n\nsubmessage\"\xdd\x11\n\x17ServerOriginatedMessage\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x12\x38\n\x13get_buffer_response\x18\x64 \x01(\x0b\x32\x19.iterm2.GetBufferResponseH\x00\x12\x38\n\x13get_prompt_response\x18\x65 \x01(\x0b\x32\x19.iterm2.GetPromptResponseH\x00\x12;\n\x14transaction_response\x18\x66 \x01(\x0b\x32\x1b.iterm2.TransactionResponseH\x00\x12=\n\x15notification_response\x18g \x01(\x0b\x32\x1c.iterm2.NotificationResponseH\x00\x12>\n\x16register_tool_response\x18h \x01(\x0b\x32\x1c.iterm2.RegisterToolResponseH\x00\x12K\n\x1dset_profile_property_response\x18i \x01(\x0b\x32\".iterm2.SetProfilePropertyResponseH\x00\x12>\n\x16list_sessions_response\x18j \x01(\x0b\x32\x1c.iterm2.ListSessionsResponseH\x00\x12\x36\n\x12send_text_response\x18k \x01(\x0b\x32\x18.iterm2.SendTextResponseH\x00\x12\x38\n\x13\x63reate_tab_response\x18l \x01(\x0b\x32\x19.iterm2.CreateTabResponseH\x00\x12\x38\n\x13split_pane_response\x18m \x01(\x0b\x32\x19.iterm2.SplitPaneResponseH\x00\x12K\n\x1dget_profile_property_response\x18n \x01(\x0b\x32\".iterm2.GetProfilePropertyResponseH\x00\x12<\n\x15set_property_response\x18o \x01(\x0b\x32\x1b.iterm2.SetPropertyResponseH\x00\x12<\n\x15get_property_response\x18p \x01(\x0b\x32\x1b.iterm2.GetPropertyResponseH\x00\x12\x31\n\x0finject_response\x18q \x01(\x0b\x32\x16.iterm2.InjectResponseH\x00\x12\x35\n\x11\x61\x63tivate_response\x18r \x01(\x0b\x32\x18.iterm2.ActivateResponseH\x00\x12\x35\n\x11variable_response\x18s \x01(\x0b\x32\x18.iterm2.VariableResponseH\x00\x12\x46\n\x1asaved_arrangement_response\x18t \x01(\x0b\x32 .iterm2.SavedArrangementResponseH\x00\x12/\n\x0e\x66ocus_response\x18u \x01(\x0b\x32\x15.iterm2.FocusResponseH\x00\x12>\n\x16list_profiles_response\x18v \x01(\x0b\x32\x1c.iterm2.ListProfilesResponseH\x00\x12Z\n%server_originated_rpc_result_response\x18w \x01(\x0b\x32).iterm2.ServerOriginatedRPCResultResponseH\x00\x12\x42\n\x18restart_session_response\x18x \x01(\x0b\x32\x1e.iterm2.RestartSessionResponseH\x00\x12\x36\n\x12menu_item_response\x18y \x01(\x0b\x32\x18.iterm2.MenuItemResponseH\x00\x12?\n\x17set_tab_layout_response\x18z \x01(\x0b\x32\x1c.iterm2.SetTabLayoutResponseH\x00\x12M\n\x1eget_broadcast_domains_response\x18{ \x01(\x0b\x32#.iterm2.GetBroadcastDomainsResponseH\x00\x12-\n\rtmux_response\x18| \x01(\x0b\x32\x14.iterm2.TmuxResponseH\x00\x12<\n\x15reorder_tabs_response\x18} \x01(\x0b\x32\x1b.iterm2.ReorderTabsResponseH\x00\x12;\n\x14preferences_response\x18~ \x01(\x0b\x32\x1b.iterm2.PreferencesResponseH\x00\x12<\n\x15\x63olor_preset_response\x18\x7f \x01(\x0b\x32\x1b.iterm2.ColorPresetResponseH\x00\x12\x38\n\x12selection_response\x18\x80\x01 \x01(\x0b\x32\x19.iterm2.SelectionResponseH\x00\x12L\n\x1dstatus_bar_component_response\x18\x81\x01 \x01(\x0b\x32\".iterm2.StatusBarComponentResponseH\x00\x12N\n\x1eset_broadcast_domains_response\x18\x82\x01 \x01(\x0b\x32#.iterm2.SetBroadcastDomainsResponseH\x00\x12\x30\n\x0e\x63lose_response\x18\x83\x01 \x01(\x0b\x32\x15.iterm2.CloseResponseH\x00\x12\x43\n\x18invoke_function_response\x18\x84\x01 \x01(\x0b\x32\x1e.iterm2.InvokeFunctionResponseH\x00\x12=\n\x15list_prompts_response\x18\x85\x01 \x01(\x0b\x32\x1b.iterm2.ListPromptsResponseH\x00\x12-\n\x0cnotification\x18\xe8\x07 \x01(\x0b\x32\x14.iterm2.NotificationH\x00\x42\x0c\n\nsubmessage\"\xcf\x03\n\x15InvokeFunctionRequest\x12\x30\n\x03tab\x18\x01 \x01(\x0b\x32!.iterm2.InvokeFunctionRequest.TabH\x00\x12\x38\n\x07session\x18\x02 \x01(\x0b\x32%.iterm2.InvokeFunctionRequest.SessionH\x00\x12\x36\n\x06window\x18\x03 \x01(\x0b\x32$.iterm2.InvokeFunctionRequest.WindowH\x00\x12\x30\n\x03\x61pp\x18\x04 \x01(\x0b\x32!.iterm2.InvokeFunctionRequest.AppH\x00\x12\x36\n\x06method\x18\x07 \x01(\x0b\x32$.iterm2.InvokeFunctionRequest.MethodH\x00\x12\x12\n\ninvocation\x18\x05 \x01(\t\x12\x13\n\x07timeout\x18\x06 \x01(\x01:\x02-1\x1a\x15\n\x03Tab\x12\x0e\n\x06tab_id\x18\x01 \x01(\t\x1a\x1d\n\x07Session\x12\x12\n\nsession_id\x18\x01 \x01(\t\x1a\x1b\n\x06Window\x12\x11\n\twindow_id\x18\x01 \x01(\t\x1a\x05\n\x03\x41pp\x1a\x1a\n\x06Method\x12\x10\n\x08receiver\x18\x01 \x01(\tB\t\n\x07\x63ontext\"\xd9\x02\n\x16InvokeFunctionResponse\x12\x35\n\x05\x65rror\x18\x01 \x01(\x0b\x32$.iterm2.InvokeFunctionResponse.ErrorH\x00\x12\x39\n\x07success\x18\x02 \x01(\x0b\x32&.iterm2.InvokeFunctionResponse.SuccessH\x00\x1aT\n\x05\x45rror\x12\x35\n\x06status\x18\x01 \x01(\x0e\x32%.iterm2.InvokeFunctionResponse.Status\x12\x14\n\x0c\x65rror_reason\x18\x02 \x01(\t\x1a\x1e\n\x07Success\x12\x13\n\x0bjson_result\x18\x01 \x01(\t\"H\n\x06Status\x12\x0b\n\x07TIMEOUT\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\x15\n\x11REQUEST_MALFORMED\x10\x03\x12\x0e\n\nINVALID_ID\x10\x04\x42\r\n\x0b\x64isposition\"\xad\x02\n\x0c\x43loseRequest\x12.\n\x04tabs\x18\x01 \x01(\x0b\x32\x1e.iterm2.CloseRequest.CloseTabsH\x00\x12\x36\n\x08sessions\x18\x02 \x01(\x0b\x32\".iterm2.CloseRequest.CloseSessionsH\x00\x12\x34\n\x07windows\x18\x03 \x01(\x0b\x32!.iterm2.CloseRequest.CloseWindowsH\x00\x12\r\n\x05\x66orce\x18\x04 \x01(\x08\x1a\x1c\n\tCloseTabs\x12\x0f\n\x07tab_ids\x18\x01 \x03(\t\x1a$\n\rCloseSessions\x12\x13\n\x0bsession_ids\x18\x01 \x03(\t\x1a\"\n\x0c\x43loseWindows\x12\x12\n\nwindow_ids\x18\x01 \x03(\tB\x08\n\x06target\"s\n\rCloseResponse\x12.\n\x08statuses\x18\x01 \x03(\x0e\x32\x1c.iterm2.CloseResponse.Status\"2\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\r\n\tNOT_FOUND\x10\x01\x12\x11\n\rUSER_DECLINED\x10\x02\"P\n\x1aSetBroadcastDomainsRequest\x12\x32\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32\x17.iterm2.BroadcastDomain\"\xc7\x01\n\x1bSetBroadcastDomainsResponse\x12:\n\x06status\x18\x01 \x01(\x0e\x32*.iterm2.SetBroadcastDomainsResponse.Status\"l\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\"\n\x1e\x42ROADCAST_DOMAINS_NOT_DISJOINT\x10\x02\x12\x1f\n\x1bSESSIONS_NOT_IN_SAME_WINDOW\x10\x03\"\xce\x01\n\x19StatusBarComponentRequest\x12\x45\n\x0copen_popover\x18\x01 \x01(\x0b\x32-.iterm2.StatusBarComponentRequest.OpenPopoverH\x00\x12\x12\n\nidentifier\x18\x02 \x01(\t\x1aK\n\x0bOpenPopover\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x0c\n\x04html\x18\x02 \x01(\t\x12\x1a\n\x04size\x18\x03 \x01(\x0b\x32\x0c.iterm2.SizeB\t\n\x07request\"\xaf\x01\n\x1aStatusBarComponentResponse\x12\x39\n\x06status\x18\x01 \x01(\x0e\x32).iterm2.StatusBarComponentResponse.Status\"V\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\x16\n\x12INVALID_IDENTIFIER\x10\x03\"]\n\x12WindowedCoordRange\x12\'\n\x0b\x63oord_range\x18\x01 \x01(\x0b\x32\x12.iterm2.CoordRange\x12\x1e\n\x07\x63olumns\x18\x02 \x01(\x0b\x32\r.iterm2.Range\"\x8a\x01\n\x0cSubSelection\x12\x38\n\x14windowed_coord_range\x18\x01 \x01(\x0b\x32\x1a.iterm2.WindowedCoordRange\x12-\n\x0eselection_mode\x18\x02 \x01(\x0e\x32\x15.iterm2.SelectionMode\x12\x11\n\tconnected\x18\x03 \x01(\x08\"9\n\tSelection\x12,\n\x0esub_selections\x18\x01 \x03(\x0b\x32\x14.iterm2.SubSelection\"\xb7\x02\n\x10SelectionRequest\x12M\n\x15get_selection_request\x18\x01 \x01(\x0b\x32,.iterm2.SelectionRequest.GetSelectionRequestH\x00\x12M\n\x15set_selection_request\x18\x02 \x01(\x0b\x32,.iterm2.SelectionRequest.SetSelectionRequestH\x00\x1a)\n\x13GetSelectionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x1aO\n\x13SetSelectionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12$\n\tselection\x18\x02 \x01(\x0b\x32\x11.iterm2.SelectionB\t\n\x07request\"\x9c\x03\n\x11SelectionResponse\x12\x30\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.SelectionResponse.Status\x12P\n\x16get_selection_response\x18\x02 \x01(\x0b\x32..iterm2.SelectionResponse.GetSelectionResponseH\x00\x12P\n\x16set_selection_response\x18\x03 \x01(\x0b\x32..iterm2.SelectionResponse.SetSelectionResponseH\x00\x1a<\n\x14GetSelectionResponse\x12$\n\tselection\x18\x02 \x01(\x0b\x32\x11.iterm2.Selection\x1a\x16\n\x14SetSelectionResponse\"O\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x13\n\x0fINVALID_SESSION\x10\x01\x12\x11\n\rINVALID_RANGE\x10\x02\x12\x15\n\x11REQUEST_MALFORMED\x10\x03\x42\n\n\x08response\"\xc5\x01\n\x12\x43olorPresetRequest\x12>\n\x0clist_presets\x18\x01 \x01(\x0b\x32&.iterm2.ColorPresetRequest.ListPresetsH\x00\x12:\n\nget_preset\x18\x02 \x01(\x0b\x32$.iterm2.ColorPresetRequest.GetPresetH\x00\x1a\r\n\x0bListPresets\x1a\x19\n\tGetPreset\x12\x0c\n\x04name\x18\x01 \x01(\tB\t\n\x07request\"\xf4\x03\n\x13\x43olorPresetResponse\x12?\n\x0clist_presets\x18\x01 \x01(\x0b\x32\'.iterm2.ColorPresetResponse.ListPresetsH\x00\x12;\n\nget_preset\x18\x02 \x01(\x0b\x32%.iterm2.ColorPresetResponse.GetPresetH\x00\x12\x32\n\x06status\x18\x03 \x01(\x0e\x32\".iterm2.ColorPresetResponse.Status\x1a\x1b\n\x0bListPresets\x12\x0c\n\x04name\x18\x01 \x03(\t\x1a\xc2\x01\n\tGetPreset\x12J\n\x0e\x63olor_settings\x18\x01 \x03(\x0b\x32\x32.iterm2.ColorPresetResponse.GetPreset.ColorSetting\x1ai\n\x0c\x43olorSetting\x12\x0b\n\x03red\x18\x01 \x01(\x02\x12\r\n\x05green\x18\x02 \x01(\x02\x12\x0c\n\x04\x62lue\x18\x03 \x01(\x02\x12\r\n\x05\x61lpha\x18\x04 \x01(\x02\x12\x13\n\x0b\x63olor_space\x18\x05 \x01(\t\x12\x0b\n\x03key\x18\x06 \x01(\t\"=\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x14\n\x10PRESET_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x42\n\n\x08response\"\xcb\x04\n\x12PreferencesRequest\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".iterm2.PreferencesRequest.Request\x1a\xfe\x03\n\x07Request\x12R\n\x16set_preference_request\x18\x01 \x01(\x0b\x32\x30.iterm2.PreferencesRequest.Request.SetPreferenceH\x00\x12R\n\x16get_preference_request\x18\x02 \x01(\x0b\x32\x30.iterm2.PreferencesRequest.Request.GetPreferenceH\x00\x12[\n\x1bset_default_profile_request\x18\x03 \x01(\x0b\x32\x34.iterm2.PreferencesRequest.Request.SetDefaultProfileH\x00\x12[\n\x1bget_default_profile_request\x18\x04 \x01(\x0b\x32\x34.iterm2.PreferencesRequest.Request.GetDefaultProfileH\x00\x1a\x30\n\rSetPreference\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x12\n\njson_value\x18\x02 \x01(\t\x1a\x1c\n\rGetPreference\x12\x0b\n\x03key\x18\x01 \x01(\t\x1a!\n\x11SetDefaultProfile\x12\x0c\n\x04guid\x18\x01 \x01(\t\x1a\x13\n\x11GetDefaultProfileB\t\n\x07request\"\xbf\x07\n\x13PreferencesResponse\x12\x33\n\x07results\x18\x01 \x03(\x0b\x32\".iterm2.PreferencesResponse.Result\x1a\xf2\x06\n\x06Result\x12U\n\x14unrecognized_request\x18\x01 \x01(\x0b\x32\x35.iterm2.PreferencesResponse.Result.UnrecognizedResultH\x00\x12W\n\x15set_preference_result\x18\x02 \x01(\x0b\x32\x36.iterm2.PreferencesResponse.Result.SetPreferenceResultH\x00\x12W\n\x15get_preference_result\x18\x03 \x01(\x0b\x32\x36.iterm2.PreferencesResponse.Result.GetPreferenceResultH\x00\x12`\n\x1aset_default_profile_result\x18\x04 \x01(\x0b\x32:.iterm2.PreferencesResponse.Result.SetDefaultProfileResultH\x00\x12`\n\x1aget_default_profile_result\x18\x05 \x01(\x0b\x32:.iterm2.PreferencesResponse.Result.GetDefaultProfileResultH\x00\x1a\x97\x01\n\x13SetPreferenceResult\x12M\n\x06status\x18\x01 \x01(\x0e\x32=.iterm2.PreferencesResponse.Result.SetPreferenceResult.Status\"1\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x0c\n\x08\x42\x41\x44_JSON\x10\x01\x12\x11\n\rINVALID_VALUE\x10\x02\x1a)\n\x13GetPreferenceResult\x12\x12\n\njson_value\x18\x01 \x01(\t\x1a\x8c\x01\n\x17SetDefaultProfileResult\x12Q\n\x06status\x18\x01 \x01(\x0e\x32\x41.iterm2.PreferencesResponse.Result.SetDefaultProfileResult.Status\"\x1e\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x0c\n\x08\x42\x41\x44_GUID\x10\x01\x1a\x14\n\x12UnrecognizedResult\x1a\'\n\x17GetDefaultProfileResult\x12\x0c\n\x04guid\x18\x01 \x01(\tB\x08\n\x06result\"\x82\x01\n\x12ReorderTabsRequest\x12:\n\x0b\x61ssignments\x18\x03 \x03(\x0b\x32%.iterm2.ReorderTabsRequest.Assignment\x1a\x30\n\nAssignment\x12\x11\n\twindow_id\x18\x01 \x01(\t\x12\x0f\n\x07tab_ids\x18\x02 \x03(\t\"\x9e\x01\n\x13ReorderTabsResponse\x12\x32\n\x06status\x18\x04 \x01(\x0e\x32\".iterm2.ReorderTabsResponse.Status\"S\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x16\n\x12INVALID_ASSIGNMENT\x10\x01\x12\x15\n\x11INVALID_WINDOW_ID\x10\x02\x12\x12\n\x0eINVALID_TAB_ID\x10\x03\"\xe3\x03\n\x0bTmuxRequest\x12?\n\x10list_connections\x18\x01 \x01(\x0b\x32#.iterm2.TmuxRequest.ListConnectionsH\x00\x12\x37\n\x0csend_command\x18\x02 \x01(\x0b\x32\x1f.iterm2.TmuxRequest.SendCommandH\x00\x12\x42\n\x12set_window_visible\x18\x03 \x01(\x0b\x32$.iterm2.TmuxRequest.SetWindowVisibleH\x00\x12\x39\n\rcreate_window\x18\x04 \x01(\x0b\x32 .iterm2.TmuxRequest.CreateWindowH\x00\x1a\x11\n\x0fListConnections\x1a\x35\n\x0bSendCommand\x12\x15\n\rconnection_id\x18\x01 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x02 \x01(\t\x1aM\n\x10SetWindowVisible\x12\x15\n\rconnection_id\x18\x01 \x01(\t\x12\x11\n\twindow_id\x18\x02 \x01(\t\x12\x0f\n\x07visible\x18\x03 \x01(\x08\x1a\x37\n\x0c\x43reateWindow\x12\x15\n\rconnection_id\x18\x01 \x01(\t\x12\x10\n\x08\x61\x66\x66inity\x18\x02 \x01(\tB\t\n\x07payload\"\x89\x05\n\x0cTmuxResponse\x12@\n\x10list_connections\x18\x01 \x01(\x0b\x32$.iterm2.TmuxResponse.ListConnectionsH\x00\x12\x38\n\x0csend_command\x18\x02 \x01(\x0b\x32 .iterm2.TmuxResponse.SendCommandH\x00\x12\x43\n\x12set_window_visible\x18\x03 \x01(\x0b\x32%.iterm2.TmuxResponse.SetWindowVisibleH\x00\x12:\n\rcreate_window\x18\x05 \x01(\x0b\x32!.iterm2.TmuxResponse.CreateWindowH\x00\x12+\n\x06status\x18\x04 \x01(\x0e\x32\x1b.iterm2.TmuxResponse.Status\x1a\x97\x01\n\x0fListConnections\x12\x44\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32/.iterm2.TmuxResponse.ListConnections.Connection\x1a>\n\nConnection\x12\x15\n\rconnection_id\x18\x01 \x01(\t\x12\x19\n\x11owning_session_id\x18\x02 \x01(\t\x1a\x1d\n\x0bSendCommand\x12\x0e\n\x06output\x18\x01 \x01(\t\x1a\x12\n\x10SetWindowVisible\x1a\x1e\n\x0c\x43reateWindow\x12\x0e\n\x06tab_id\x18\x01 \x01(\t\"W\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x13\n\x0fINVALID_REQUEST\x10\x01\x12\x19\n\x15INVALID_CONNECTION_ID\x10\x02\x12\x15\n\x11INVALID_WINDOW_ID\x10\x03\x42\t\n\x07payload\"\x1c\n\x1aGetBroadcastDomainsRequest\"&\n\x0f\x42roadcastDomain\x12\x13\n\x0bsession_ids\x18\x01 \x03(\t\"Q\n\x1bGetBroadcastDomainsResponse\x12\x32\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32\x17.iterm2.BroadcastDomain\"J\n\x13SetTabLayoutRequest\x12#\n\x04root\x18\x01 \x01(\x0b\x32\x15.iterm2.SplitTreeNode\x12\x0e\n\x06tab_id\x18\x02 \x01(\t\"\x8f\x01\n\x14SetTabLayoutResponse\x12\x33\n\x06status\x18\x01 \x01(\x0e\x32#.iterm2.SetTabLayoutResponse.Status\"B\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x0e\n\nBAD_TAB_ID\x10\x01\x12\x0e\n\nWRONG_TREE\x10\x02\x12\x10\n\x0cINVALID_SIZE\x10\x03\"9\n\x0fMenuItemRequest\x12\x12\n\nidentifier\x18\x01 \x01(\t\x12\x12\n\nquery_only\x18\x02 \x01(\x08\"\x99\x01\n\x10MenuItemResponse\x12/\n\x06status\x18\x01 \x01(\x0e\x32\x1f.iterm2.MenuItemResponse.Status\x12\x0f\n\x07\x63hecked\x18\x02 \x01(\x08\x12\x0f\n\x07\x65nabled\x18\x03 \x01(\x08\"2\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x12\n\x0e\x42\x41\x44_IDENTIFIER\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\"C\n\x15RestartSessionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x16\n\x0eonly_if_exited\x18\x02 \x01(\x08\"\x95\x01\n\x16RestartSessionResponse\x12\x35\n\x06status\x18\x01 \x01(\x0e\x32%.iterm2.RestartSessionResponse.Status\"D\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x1b\n\x17SESSION_NOT_RESTARTABLE\x10\x02\"p\n ServerOriginatedRPCResultRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x18\n\x0ejson_exception\x18\x02 \x01(\tH\x00\x12\x14\n\njson_value\x18\x03 \x01(\tH\x00\x42\x08\n\x06result\"#\n!ServerOriginatedRPCResultResponse\"8\n\x13ListProfilesRequest\x12\x12\n\nproperties\x18\x01 \x03(\t\x12\r\n\x05guids\x18\x02 \x03(\t\"\x86\x01\n\x14ListProfilesResponse\x12\x36\n\x08profiles\x18\x01 \x03(\x0b\x32$.iterm2.ListProfilesResponse.Profile\x1a\x36\n\x07Profile\x12+\n\nproperties\x18\x01 \x03(\x0b\x32\x17.iterm2.ProfileProperty\"\x0e\n\x0c\x46ocusRequest\"H\n\rFocusResponse\x12\x37\n\rnotifications\x18\x01 \x03(\x0b\x32 .iterm2.FocusChangedNotification\"\x9d\x01\n\x17SavedArrangementRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x36\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32&.iterm2.SavedArrangementRequest.Action\x12\x11\n\twindow_id\x18\x03 \x01(\t\")\n\x06\x41\x63tion\x12\x0b\n\x07RESTORE\x10\x00\x12\x08\n\x04SAVE\x10\x01\x12\x08\n\x04LIST\x10\x02\"\xbc\x01\n\x18SavedArrangementResponse\x12\x37\n\x06status\x18\x01 \x01(\x0e\x32\'.iterm2.SavedArrangementResponse.Status\x12\r\n\x05names\x18\x02 \x03(\t\"X\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x19\n\x15\x41RRANGEMENT_NOT_FOUND\x10\x01\x12\x14\n\x10WINDOW_NOT_FOUND\x10\x02\x12\x15\n\x11REQUEST_MALFORMED\x10\x03\"\xc1\x01\n\x0fVariableRequest\x12\x14\n\nsession_id\x18\x01 \x01(\tH\x00\x12\x10\n\x06tab_id\x18\x04 \x01(\tH\x00\x12\r\n\x03\x61pp\x18\x05 \x01(\x08H\x00\x12\x13\n\twindow_id\x18\x06 \x01(\tH\x00\x12(\n\x03set\x18\x02 \x03(\x0b\x32\x1b.iterm2.VariableRequest.Set\x12\x0b\n\x03get\x18\x03 \x03(\t\x1a\"\n\x03Set\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\tB\x07\n\x05scope\"\xe5\x01\n\x10VariableResponse\x12/\n\x06status\x18\x01 \x01(\x0e\x32\x1f.iterm2.VariableResponse.Status\x12\x0e\n\x06values\x18\x02 \x03(\t\"\x8f\x01\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x10\n\x0cINVALID_NAME\x10\x02\x12\x11\n\rMISSING_SCOPE\x10\x03\x12\x11\n\rTAB_NOT_FOUND\x10\x04\x12\x18\n\x14MULTI_GET_DISALLOWED\x10\x05\x12\x14\n\x10WINDOW_NOT_FOUND\x10\x06\"\x96\x02\n\x0f\x41\x63tivateRequest\x12\x13\n\twindow_id\x18\x01 \x01(\tH\x00\x12\x10\n\x06tab_id\x18\x02 \x01(\tH\x00\x12\x14\n\nsession_id\x18\x03 \x01(\tH\x00\x12\x1a\n\x12order_window_front\x18\x04 \x01(\x08\x12\x12\n\nselect_tab\x18\x05 \x01(\x08\x12\x16\n\x0eselect_session\x18\x06 \x01(\x08\x12\x31\n\x0c\x61\x63tivate_app\x18\x07 \x01(\x0b\x32\x1b.iterm2.ActivateRequest.App\x1a=\n\x03\x41pp\x12\x19\n\x11raise_all_windows\x18\x01 \x01(\x08\x12\x1b\n\x13ignoring_other_apps\x18\x02 \x01(\x08\x42\x0c\n\nidentifier\"}\n\x10\x41\x63tivateResponse\x12/\n\x06status\x18\x01 \x01(\x0e\x32\x1f.iterm2.ActivateResponse.Status\"8\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x12\n\x0e\x42\x41\x44_IDENTIFIER\x10\x01\x12\x12\n\x0eINVALID_OPTION\x10\x02\"1\n\rInjectRequest\x12\x12\n\nsession_id\x18\x01 \x03(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"h\n\x0eInjectResponse\x12-\n\x06status\x18\x01 \x03(\x0e\x32\x1d.iterm2.InjectResponse.Status\"\'\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\"[\n\x12GetPropertyRequest\x12\x13\n\twindow_id\x18\x01 \x01(\tH\x00\x12\x14\n\nsession_id\x18\x03 \x01(\tH\x00\x12\x0c\n\x04name\x18\x02 \x01(\tB\x0c\n\nidentifier\"\x9a\x01\n\x13GetPropertyResponse\x12\x32\n\x06status\x18\x01 \x01(\x0e\x32\".iterm2.GetPropertyResponse.Status\x12\x12\n\njson_value\x18\x02 \x01(\t\";\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11UNRECOGNIZED_NAME\x10\x01\x12\x12\n\x0eINVALID_TARGET\x10\x02\"o\n\x12SetPropertyRequest\x12\x13\n\twindow_id\x18\x01 \x01(\tH\x00\x12\x14\n\nsession_id\x18\x05 \x01(\tH\x00\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x12\n\njson_value\x18\x04 \x01(\tB\x0c\n\nidentifier\"\xc3\x01\n\x13SetPropertyResponse\x12\x32\n\x06status\x18\x01 \x01(\x0e\x32\".iterm2.SetPropertyResponse.Status\"x\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11UNRECOGNIZED_NAME\x10\x01\x12\x11\n\rINVALID_VALUE\x10\x02\x12\x12\n\x0eINVALID_TARGET\x10\x03\x12\x0c\n\x08\x44\x45\x46\x45RRED\x10\x04\x12\x0e\n\nIMPOSSIBLE\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06\"\xd8\x01\n\x13RegisterToolRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nidentifier\x18\x02 \x01(\t\x12+\n\x1creveal_if_already_registered\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x46\n\ttool_type\x18\x03 \x01(\x0e\x32$.iterm2.RegisterToolRequest.ToolType:\rWEB_VIEW_TOOL\x12\x0b\n\x03URL\x18\x04 \x01(\t\"\x1d\n\x08ToolType\x12\x11\n\rWEB_VIEW_TOOL\x10\x01\"\xdf\x0c\n\x16RPCRegistrationRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x46\n\targuments\x18\x02 \x03(\x0b\x32\x33.iterm2.RPCRegistrationRequest.RPCArgumentSignature\x12<\n\x08\x64\x65\x66\x61ults\x18\x04 \x03(\x0b\x32*.iterm2.RPCRegistrationRequest.RPCArgument\x12\x0f\n\x07timeout\x18\x03 \x01(\x02\x12:\n\x04role\x18\x05 \x01(\x0e\x32#.iterm2.RPCRegistrationRequest.Role:\x07GENERIC\x12Y\n\x18session_title_attributes\x18\x07 \x01(\x0b\x32\x35.iterm2.RPCRegistrationRequest.SessionTitleAttributesH\x00\x12\x66\n\x1fstatus_bar_component_attributes\x18\x08 \x01(\x0b\x32;.iterm2.RPCRegistrationRequest.StatusBarComponentAttributesH\x00\x12W\n\x17\x63ontext_menu_attributes\x18\t \x01(\x0b\x32\x34.iterm2.RPCRegistrationRequest.ContextMenuAttributesH\x00\x12\x18\n\x0c\x64isplay_name\x18\x06 \x01(\tB\x02\x18\x01\x1a$\n\x14RPCArgumentSignature\x12\x0c\n\x04name\x18\x01 \x01(\t\x1a)\n\x0bRPCArgument\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x1aI\n\x16SessionTitleAttributes\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\t\x12\x19\n\x11unique_identifier\x18\x06 \x01(\t\x1a\xd9\x05\n\x1cStatusBarComponentAttributes\x12\x19\n\x11short_description\x18\x01 \x01(\t\x12\x1c\n\x14\x64\x65tailed_description\x18\x02 \x01(\t\x12O\n\x05knobs\x18\x03 \x03(\x0b\x32@.iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Knob\x12\x10\n\x08\x65xemplar\x18\x04 \x01(\t\x12\x16\n\x0eupdate_cadence\x18\x05 \x01(\x02\x12\x19\n\x11unique_identifier\x18\x06 \x01(\t\x12O\n\x05icons\x18\x07 \x03(\x0b\x32@.iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Icon\x12^\n\x06\x66ormat\x18\x08 \x01(\x0e\x32\x42.iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Format:\nPLAIN_TEXT\x1a\xef\x01\n\x04Knob\x12\x0c\n\x04name\x18\x01 \x01(\t\x12S\n\x04type\x18\x02 \x01(\x0e\x32\x45.iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Knob.Type\x12\x13\n\x0bplaceholder\x18\x03 \x01(\t\x12\x1a\n\x12json_default_value\x18\x04 \x01(\t\x12\x0b\n\x03key\x18\x05 \x01(\t\"F\n\x04Type\x12\x0c\n\x08\x43heckbox\x10\x01\x12\n\n\x06String\x10\x02\x12\x19\n\x15PositiveFloatingPoint\x10\x03\x12\t\n\x05\x43olor\x10\x04\x1a#\n\x04Icon\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\r\n\x05scale\x18\x02 \x01(\x02\"\"\n\x06\x46ormat\x12\x0e\n\nPLAIN_TEXT\x10\x00\x12\x08\n\x04HTML\x10\x01\x1aH\n\x15\x43ontextMenuAttributes\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\t\x12\x19\n\x11unique_identifier\x18\x02 \x01(\t\"R\n\x04Role\x12\x0b\n\x07GENERIC\x10\x01\x12\x11\n\rSESSION_TITLE\x10\x02\x12\x18\n\x14STATUS_BAR_COMPONENT\x10\x03\x12\x10\n\x0c\x43ONTEXT_MENU\x10\x04\x42\x18\n\x16RoleSpecificAttributes\"\x8b\x01\n\x14RegisterToolResponse\x12\x33\n\x06status\x18\x01 \x01(\x0e\x32#.iterm2.RegisterToolResponse.Status\">\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11REQUEST_MALFORMED\x10\x01\x12\x15\n\x11PERMISSION_DENIED\x10\x02\"\xbe\x01\n\x10KeystrokePattern\x12-\n\x12required_modifiers\x18\x01 \x03(\x0e\x32\x11.iterm2.Modifiers\x12.\n\x13\x66orbidden_modifiers\x18\x02 \x03(\x0e\x32\x11.iterm2.Modifiers\x12\x10\n\x08keycodes\x18\x03 \x03(\x05\x12\x12\n\ncharacters\x18\x04 \x03(\t\x12%\n\x1d\x63haracters_ignoring_modifiers\x18\x05 \x03(\t\"e\n\x17KeystrokeMonitorRequest\x12\x38\n\x12patterns_to_ignore\x18\x01 \x03(\x0b\x32\x18.iterm2.KeystrokePatternB\x02\x18\x01\x12\x10\n\x08\x61\x64vanced\x18\x02 \x01(\x08\"N\n\x16KeystrokeFilterRequest\x12\x34\n\x12patterns_to_ignore\x18\x01 \x03(\x0b\x32\x18.iterm2.KeystrokePattern\"`\n\x16VariableMonitorRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12$\n\x05scope\x18\x02 \x01(\x0e\x32\x15.iterm2.VariableScope\x12\x12\n\nidentifier\x18\x03 \x01(\t\"$\n\x14ProfileChangeRequest\x12\x0c\n\x04guid\x18\x01 \x01(\t\"@\n\x14PromptMonitorRequest\x12(\n\x05modes\x18\x01 \x03(\x0e\x32\x19.iterm2.PromptMonitorMode\"\x8d\x04\n\x13NotificationRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x11\n\tsubscribe\x18\x02 \x01(\x08\x12\x33\n\x11notification_type\x18\x03 \x01(\x0e\x32\x18.iterm2.NotificationType\x12\x42\n\x18rpc_registration_request\x18\x04 \x01(\x0b\x32\x1e.iterm2.RPCRegistrationRequestH\x00\x12\x44\n\x19keystroke_monitor_request\x18\x05 \x01(\x0b\x32\x1f.iterm2.KeystrokeMonitorRequestH\x00\x12\x42\n\x18variable_monitor_request\x18\x06 \x01(\x0b\x32\x1e.iterm2.VariableMonitorRequestH\x00\x12>\n\x16profile_change_request\x18\x07 \x01(\x0b\x32\x1c.iterm2.ProfileChangeRequestH\x00\x12\x42\n\x18keystroke_filter_request\x18\x08 \x01(\x0b\x32\x1e.iterm2.KeystrokeFilterRequestH\x00\x12>\n\x16prompt_monitor_request\x18\t \x01(\x0b\x32\x1c.iterm2.PromptMonitorRequestH\x00\x42\x0b\n\targuments\"\xf5\x01\n\x14NotificationResponse\x12\x33\n\x06status\x18\x01 \x01(\x0e\x32#.iterm2.NotificationResponse.Status\"\xa7\x01\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\x12\n\x0eNOT_SUBSCRIBED\x10\x03\x12\x16\n\x12\x41LREADY_SUBSCRIBED\x10\x04\x12#\n\x1f\x44UPLICATE_SERVER_ORIGINATED_RPC\x10\x05\x12\x16\n\x12INVALID_IDENTIFIER\x10\x06\"\xca\x07\n\x0cNotification\x12=\n\x16keystroke_notification\x18\x01 \x01(\x0b\x32\x1d.iterm2.KeystrokeNotification\x12\x44\n\x1ascreen_update_notification\x18\x02 \x01(\x0b\x32 .iterm2.ScreenUpdateNotification\x12\x37\n\x13prompt_notification\x18\x03 \x01(\x0b\x32\x1a.iterm2.PromptNotification\x12L\n\x1clocation_change_notification\x18\x04 \x01(\x0b\x32\".iterm2.LocationChangeNotificationB\x02\x18\x01\x12U\n#custom_escape_sequence_notification\x18\x05 \x01(\x0b\x32(.iterm2.CustomEscapeSequenceNotification\x12@\n\x18new_session_notification\x18\x06 \x01(\x0b\x32\x1e.iterm2.NewSessionNotification\x12L\n\x1eterminate_session_notification\x18\x07 \x01(\x0b\x32$.iterm2.TerminateSessionNotification\x12\x46\n\x1blayout_changed_notification\x18\x08 \x01(\x0b\x32!.iterm2.LayoutChangedNotification\x12\x44\n\x1a\x66ocus_changed_notification\x18\t \x01(\x0b\x32 .iterm2.FocusChangedNotification\x12S\n\"server_originated_rpc_notification\x18\n \x01(\x0b\x32\'.iterm2.ServerOriginatedRPCNotification\x12N\n\x19\x62roadcast_domains_changed\x18\x0b \x01(\x0b\x32+.iterm2.BroadcastDomainsChangedNotification\x12J\n\x1dvariable_changed_notification\x18\x0c \x01(\x0b\x32#.iterm2.VariableChangedNotification\x12H\n\x1cprofile_changed_notification\x18\r \x01(\x0b\x32\".iterm2.ProfileChangedNotification\"*\n\x1aProfileChangedNotification\x12\x0c\n\x04guid\x18\x01 \x01(\t\"}\n\x1bVariableChangedNotification\x12$\n\x05scope\x18\x01 \x01(\x0e\x32\x15.iterm2.VariableScope\x12\x12\n\nidentifier\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x16\n\x0ejson_new_value\x18\x04 \x01(\t\"Y\n#BroadcastDomainsChangedNotification\x12\x32\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32\x17.iterm2.BroadcastDomain\"\x90\x01\n\x13ServerOriginatedRPC\x12\x0c\n\x04name\x18\x02 \x01(\t\x12:\n\targuments\x18\x03 \x03(\x0b\x32\'.iterm2.ServerOriginatedRPC.RPCArgument\x1a/\n\x0bRPCArgument\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\njson_value\x18\x02 \x01(\t\"_\n\x1fServerOriginatedRPCNotification\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12(\n\x03rpc\x18\x02 \x01(\x0b\x32\x1b.iterm2.ServerOriginatedRPC\"\x85\x02\n\x15KeystrokeNotification\x12\x12\n\ncharacters\x18\x01 \x01(\t\x12#\n\x1b\x63haractersIgnoringModifiers\x18\x02 \x01(\t\x12$\n\tmodifiers\x18\x03 \x03(\x0e\x32\x11.iterm2.Modifiers\x12\x0f\n\x07keyCode\x18\x04 \x01(\x05\x12\x0f\n\x07session\x18\x05 \x01(\t\x12\x34\n\x06\x61\x63tion\x18\x06 \x01(\x0e\x32$.iterm2.KeystrokeNotification.Action\"5\n\x06\x41\x63tion\x12\x0c\n\x08KEY_DOWN\x10\x00\x12\n\n\x06KEY_UP\x10\x01\x12\x11\n\rFLAGS_CHANGED\x10\x02\"+\n\x18ScreenUpdateNotification\x12\x0f\n\x07session\x18\x01 \x01(\t\"Z\n\x18PromptNotificationPrompt\x12\x13\n\x0bplaceholder\x18\x01 \x01(\t\x12)\n\x06prompt\x18\x02 \x01(\x0b\x32\x19.iterm2.GetPromptResponse\"1\n\x1ePromptNotificationCommandStart\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\t\".\n\x1cPromptNotificationCommandEnd\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xfa\x01\n\x12PromptNotification\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x32\n\x06prompt\x18\x02 \x01(\x0b\x32 .iterm2.PromptNotificationPromptH\x00\x12?\n\rcommand_start\x18\x03 \x01(\x0b\x32&.iterm2.PromptNotificationCommandStartH\x00\x12;\n\x0b\x63ommand_end\x18\x04 \x01(\x0b\x32$.iterm2.PromptNotificationCommandEndH\x00\x12\x18\n\x10unique_prompt_id\x18\x05 \x01(\tB\x07\n\x05\x65vent\"f\n\x1aLocationChangeNotification\x12\x11\n\thost_name\x18\x01 \x01(\t\x12\x11\n\tuser_name\x18\x02 \x01(\t\x12\x11\n\tdirectory\x18\x03 \x01(\t\x12\x0f\n\x07session\x18\x04 \x01(\t\"]\n CustomEscapeSequenceNotification\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x17\n\x0fsender_identity\x18\x02 \x01(\t\x12\x0f\n\x07payload\x18\x03 \x01(\t\",\n\x16NewSessionNotification\x12\x12\n\nsession_id\x18\x01 \x01(\t\"\x84\x03\n\x18\x46ocusChangedNotification\x12\x1c\n\x12\x61pplication_active\x18\x01 \x01(\x08H\x00\x12\x39\n\x06window\x18\x02 \x01(\x0b\x32\'.iterm2.FocusChangedNotification.WindowH\x00\x12\x16\n\x0cselected_tab\x18\x03 \x01(\tH\x00\x12\x11\n\x07session\x18\x04 \x01(\tH\x00\x1a\xda\x01\n\x06Window\x12K\n\rwindow_status\x18\x01 \x01(\x0e\x32\x34.iterm2.FocusChangedNotification.Window.WindowStatus\x12\x11\n\twindow_id\x18\x02 \x01(\t\"p\n\x0cWindowStatus\x12\x1e\n\x1aTERMINAL_WINDOW_BECAME_KEY\x10\x00\x12\x1e\n\x1aTERMINAL_WINDOW_IS_CURRENT\x10\x01\x12 \n\x1cTERMINAL_WINDOW_RESIGNED_KEY\x10\x02\x42\x07\n\x05\x65vent\"2\n\x1cTerminateSessionNotification\x12\x12\n\nsession_id\x18\x01 \x01(\t\"Y\n\x19LayoutChangedNotification\x12<\n\x16list_sessions_response\x18\x01 \x01(\x0b\x32\x1c.iterm2.ListSessionsResponse\"J\n\x10GetBufferRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12%\n\nline_range\x18\x02 \x01(\x0b\x32\x11.iterm2.LineRange\"\xe8\x02\n\x11GetBufferResponse\x12\x34\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.GetBufferResponse.Status:\x02OK\x12 \n\x05range\x18\x02 \x01(\x0b\x32\r.iterm2.RangeB\x02\x18\x01\x12&\n\x08\x63ontents\x18\x03 \x03(\x0b\x32\x14.iterm2.LineContents\x12\x1d\n\x06\x63ursor\x18\x04 \x01(\x0b\x32\r.iterm2.Coord\x12\"\n\x16num_lines_above_screen\x18\x05 \x01(\x03\x42\x02\x18\x01\x12\x38\n\x14windowed_coord_range\x18\x06 \x01(\x0b\x32\x1a.iterm2.WindowedCoordRange\"V\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x16\n\x12INVALID_LINE_RANGE\x10\x02\x12\x15\n\x11REQUEST_MALFORMED\x10\x03\"=\n\x10GetPromptRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x18\n\x10unique_prompt_id\x18\x02 \x01(\t\"\xe3\x03\n\x11GetPromptResponse\x12\x34\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.GetPromptResponse.Status:\x02OK\x12(\n\x0cprompt_range\x18\x02 \x01(\x0b\x32\x12.iterm2.CoordRange\x12)\n\rcommand_range\x18\x03 \x01(\x0b\x32\x12.iterm2.CoordRange\x12(\n\x0coutput_range\x18\x04 \x01(\x0b\x32\x12.iterm2.CoordRange\x12\x19\n\x11working_directory\x18\x05 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x06 \x01(\t\x12\x35\n\x0cprompt_state\x18\x07 \x01(\x0e\x32\x1f.iterm2.GetPromptResponse.State\x12\x13\n\x0b\x65xit_status\x18\t \x01(\r\x12\x18\n\x10unique_prompt_id\x18\n \x01(\t\"V\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\x16\n\x12PROMPT_UNAVAILABLE\x10\x03\"/\n\x05State\x12\x0b\n\x07\x45\x44ITING\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\x0c\n\x08\x46INISHED\x10\x02\"V\n\x12ListPromptsRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x17\n\x0f\x66irst_unique_id\x18\x02 \x01(\t\x12\x16\n\x0elast_unique_id\x18\x03 \x01(\t\"\x90\x01\n\x13ListPromptsResponse\x12\x36\n\x06status\x18\x01 \x01(\x0e\x32\".iterm2.ListPromptsResponse.Status:\x02OK\x12\x18\n\x10unique_prompt_id\x18\x02 \x03(\t\"\'\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\":\n\x19GetProfilePropertyRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x0c\n\x04keys\x18\x02 \x03(\t\"2\n\x0fProfileProperty\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x12\n\njson_value\x18\x02 \x01(\t\"\xd3\x01\n\x1aGetProfilePropertyResponse\x12=\n\x06status\x18\x01 \x01(\x0e\x32).iterm2.GetProfilePropertyResponse.Status:\x02OK\x12+\n\nproperties\x18\x03 \x03(\x0b\x32\x17.iterm2.ProfileProperty\"I\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\t\n\x05\x45RROR\x10\x03\"\xa7\x02\n\x19SetProfilePropertyRequest\x12\x11\n\x07session\x18\x01 \x01(\tH\x00\x12?\n\tguid_list\x18\x02 \x01(\x0b\x32*.iterm2.SetProfilePropertyRequest.GuidListH\x00\x12\x0b\n\x03key\x18\x03 \x01(\t\x12\x12\n\njson_value\x18\x04 \x01(\t\x12\x41\n\x0b\x61ssignments\x18\x05 \x03(\x0b\x32,.iterm2.SetProfilePropertyRequest.Assignment\x1a\x19\n\x08GuidList\x12\r\n\x05guids\x18\x01 \x03(\t\x1a-\n\nAssignment\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x12\n\njson_value\x18\x02 \x01(\tB\x08\n\x06target\"\xa9\x01\n\x1aSetProfilePropertyResponse\x12=\n\x06status\x18\x01 \x01(\x0e\x32).iterm2.SetProfilePropertyResponse.Status:\x02OK\"L\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\x0c\n\x08\x42\x41\x44_GUID\x10\x03\"#\n\x12TransactionRequest\x12\r\n\x05\x62\x65gin\x18\x01 \x01(\x08\"\x8f\x01\n\x13TransactionResponse\x12\x36\n\x06status\x18\x01 \x01(\x0e\x32\".iterm2.TransactionResponse.Status:\x02OK\"@\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x12\n\x0eNO_TRANSACTION\x10\x01\x12\x1a\n\x16\x41LREADY_IN_TRANSACTION\x10\x02\"{\n\tLineRange\x12\x1c\n\x14screen_contents_only\x18\x01 \x01(\x08\x12\x16\n\x0etrailing_lines\x18\x02 \x01(\x05\x12\x38\n\x14windowed_coord_range\x18\x03 \x01(\x0b\x32\x1a.iterm2.WindowedCoordRange\")\n\x05Range\x12\x10\n\x08location\x18\x01 \x01(\x03\x12\x0e\n\x06length\x18\x02 \x01(\x03\"F\n\nCoordRange\x12\x1c\n\x05start\x18\x01 \x01(\x0b\x32\r.iterm2.Coord\x12\x1a\n\x03\x65nd\x18\x02 \x01(\x0b\x32\r.iterm2.Coord\"\x1d\n\x05\x43oord\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x03\"\xeb\x01\n\x0cLineContents\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x37\n\x14\x63ode_points_per_cell\x18\x02 \x03(\x0b\x32\x19.iterm2.CodePointsPerCell\x12N\n\x0c\x63ontinuation\x18\x03 \x01(\x0e\x32!.iterm2.LineContents.Continuation:\x15\x43ONTINUATION_HARD_EOL\"D\n\x0c\x43ontinuation\x12\x19\n\x15\x43ONTINUATION_HARD_EOL\x10\x01\x12\x19\n\x15\x43ONTINUATION_SOFT_EOL\x10\x02\"@\n\x11\x43odePointsPerCell\x12\x1a\n\x0fnum_code_points\x18\x01 \x01(\x05:\x01\x31\x12\x0f\n\x07repeats\x18\x02 \x01(\x05\"\x15\n\x13ListSessionsRequest\"L\n\x0fSendTextRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x1a\n\x12suppress_broadcast\x18\x03 \x01(\x08\"l\n\x10SendTextResponse\x12/\n\x06status\x18\x01 \x01(\x0e\x32\x1f.iterm2.SendTextResponse.Status\"\'\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\"%\n\x04Size\x12\r\n\x05width\x18\x01 \x01(\x05\x12\x0e\n\x06height\x18\x02 \x01(\x05\"\x1d\n\x05Point\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05\"B\n\x05\x46rame\x12\x1d\n\x06origin\x18\x01 \x01(\x0b\x32\r.iterm2.Point\x12\x1a\n\x04size\x18\x02 \x01(\x0b\x32\x0c.iterm2.Size\"y\n\x0eSessionSummary\x12\x19\n\x11unique_identifier\x18\x01 \x01(\t\x12\x1c\n\x05\x66rame\x18\x02 \x01(\x0b\x32\r.iterm2.Frame\x12\x1f\n\tgrid_size\x18\x03 \x01(\x0b\x32\x0c.iterm2.Size\x12\r\n\x05title\x18\x04 \x01(\t\"\xc1\x01\n\rSplitTreeNode\x12\x10\n\x08vertical\x18\x01 \x01(\x08\x12\x32\n\x05links\x18\x02 \x03(\x0b\x32#.iterm2.SplitTreeNode.SplitTreeLink\x1aj\n\rSplitTreeLink\x12)\n\x07session\x18\x01 \x01(\x0b\x32\x16.iterm2.SessionSummaryH\x00\x12%\n\x04node\x18\x02 \x01(\x0b\x32\x15.iterm2.SplitTreeNodeH\x00\x42\x07\n\x05\x63hild\"\x9d\x03\n\x14ListSessionsResponse\x12\x34\n\x07windows\x18\x01 \x03(\x0b\x32#.iterm2.ListSessionsResponse.Window\x12/\n\x0f\x62uried_sessions\x18\x02 \x03(\x0b\x32\x16.iterm2.SessionSummary\x1ay\n\x06Window\x12.\n\x04tabs\x18\x01 \x03(\x0b\x32 .iterm2.ListSessionsResponse.Tab\x12\x11\n\twindow_id\x18\x02 \x01(\t\x12\x1c\n\x05\x66rame\x18\x03 \x01(\x0b\x32\r.iterm2.Frame\x12\x0e\n\x06number\x18\x04 \x01(\x05\x1a\xa2\x01\n\x03Tab\x12#\n\x04root\x18\x03 \x01(\x0b\x32\x15.iterm2.SplitTreeNode\x12\x0e\n\x06tab_id\x18\x02 \x01(\t\x12\x16\n\x0etmux_window_id\x18\x04 \x01(\t\x12\x1a\n\x12tmux_connection_id\x18\x05 \x01(\t\x12\x32\n\x12minimized_sessions\x18\x06 \x03(\x0b\x32\x16.iterm2.SessionSummary\"\x9f\x01\n\x10\x43reateTabRequest\x12\x14\n\x0cprofile_name\x18\x01 \x01(\t\x12\x11\n\twindow_id\x18\x02 \x01(\t\x12\x11\n\ttab_index\x18\x03 \x01(\r\x12\x13\n\x07\x63ommand\x18\x04 \x01(\tB\x02\x18\x01\x12:\n\x19\x63ustom_profile_properties\x18\x05 \x03(\x0b\x32\x17.iterm2.ProfileProperty\"\xf0\x01\n\x11\x43reateTabResponse\x12\x30\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.CreateTabResponse.Status\x12\x11\n\twindow_id\x18\x02 \x01(\t\x12\x0e\n\x06tab_id\x18\x03 \x01(\x05\x12\x12\n\nsession_id\x18\x04 \x01(\t\"r\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x18\n\x14INVALID_PROFILE_NAME\x10\x01\x12\x15\n\x11INVALID_WINDOW_ID\x10\x02\x12\x15\n\x11INVALID_TAB_INDEX\x10\x03\x12\x18\n\x14MISSING_SUBSTITUTION\x10\x04\"\xfe\x01\n\x10SplitPaneRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12@\n\x0fsplit_direction\x18\x02 \x01(\x0e\x32\'.iterm2.SplitPaneRequest.SplitDirection\x12\x15\n\x06\x62\x65\x66ore\x18\x03 \x01(\x08:\x05\x66\x61lse\x12\x14\n\x0cprofile_name\x18\x04 \x01(\t\x12:\n\x19\x63ustom_profile_properties\x18\x05 \x03(\x0b\x32\x17.iterm2.ProfileProperty\".\n\x0eSplitDirection\x12\x0c\n\x08VERTICAL\x10\x00\x12\x0e\n\nHORIZONTAL\x10\x01\"\xd5\x01\n\x11SplitPaneResponse\x12\x30\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.SplitPaneResponse.Status\x12\x12\n\nsession_id\x18\x02 \x03(\t\"z\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x18\n\x14INVALID_PROFILE_NAME\x10\x02\x12\x10\n\x0c\x43\x41NNOT_SPLIT\x10\x03\x12%\n!MALFORMED_CUSTOM_PROFILE_PROPERTY\x10\x04*V\n\rSelectionMode\x12\r\n\tCHARACTER\x10\x00\x12\x08\n\x04WORD\x10\x01\x12\x08\n\x04LINE\x10\x02\x12\t\n\x05SMART\x10\x03\x12\x07\n\x03\x42OX\x10\x04\x12\x0e\n\nWHOLE_LINE\x10\x05*\xb4\x03\n\x10NotificationType\x12\x17\n\x13NOTIFY_ON_KEYSTROKE\x10\x01\x12\x1b\n\x17NOTIFY_ON_SCREEN_UPDATE\x10\x02\x12\x14\n\x10NOTIFY_ON_PROMPT\x10\x03\x12!\n\x19NOTIFY_ON_LOCATION_CHANGE\x10\x04\x1a\x02\x08\x01\x12$\n NOTIFY_ON_CUSTOM_ESCAPE_SEQUENCE\x10\x05\x12\x1d\n\x19NOTIFY_ON_VARIABLE_CHANGE\x10\x0c\x12\x14\n\x10KEYSTROKE_FILTER\x10\x0e\x12\x19\n\x15NOTIFY_ON_NEW_SESSION\x10\x06\x12\x1f\n\x1bNOTIFY_ON_TERMINATE_SESSION\x10\x07\x12\x1b\n\x17NOTIFY_ON_LAYOUT_CHANGE\x10\x08\x12\x1a\n\x16NOTIFY_ON_FOCUS_CHANGE\x10\t\x12#\n\x1fNOTIFY_ON_SERVER_ORIGINATED_RPC\x10\n\x12\x1e\n\x1aNOTIFY_ON_BROADCAST_CHANGE\x10\x0b\x12\x1c\n\x18NOTIFY_ON_PROFILE_CHANGE\x10\r*V\n\tModifiers\x12\x0b\n\x07\x43ONTROL\x10\x01\x12\n\n\x06OPTION\x10\x02\x12\x0b\n\x07\x43OMMAND\x10\x03\x12\t\n\x05SHIFT\x10\x04\x12\x0c\n\x08\x46UNCTION\x10\x05\x12\n\n\x06NUMPAD\x10\x06*:\n\rVariableScope\x12\x0b\n\x07SESSION\x10\x01\x12\x07\n\x03TAB\x10\x02\x12\n\n\x06WINDOW\x10\x03\x12\x07\n\x03\x41PP\x10\x04*C\n\x11PromptMonitorMode\x12\n\n\x06PROMPT\x10\x01\x12\x11\n\rCOMMAND_START\x10\x02\x12\x0f\n\x0b\x43OMMAND_END\x10\x03\x42\x06\xa2\x02\x03ITM') ) _sym_db.RegisterFileDescriptor(DESCRIPTOR) @@ -57,8 +57,8 @@ ], containing_type=None, options=None, - serialized_start=25169, - serialized_end=25255, + serialized_start=25301, + serialized_end=25387, ) _sym_db.RegisterEnumDescriptor(_SELECTIONMODE) @@ -128,8 +128,8 @@ ], containing_type=None, options=None, - serialized_start=25258, - serialized_end=25694, + serialized_start=25390, + serialized_end=25826, ) _sym_db.RegisterEnumDescriptor(_NOTIFICATIONTYPE) @@ -167,8 +167,8 @@ ], containing_type=None, options=None, - serialized_start=25696, - serialized_end=25782, + serialized_start=25828, + serialized_end=25914, ) _sym_db.RegisterEnumDescriptor(_MODIFIERS) @@ -198,8 +198,8 @@ ], containing_type=None, options=None, - serialized_start=25784, - serialized_end=25842, + serialized_start=25916, + serialized_end=25974, ) _sym_db.RegisterEnumDescriptor(_VARIABLESCOPE) @@ -225,8 +225,8 @@ ], containing_type=None, options=None, - serialized_start=25844, - serialized_end=25911, + serialized_start=25976, + serialized_end=26043, ) _sym_db.RegisterEnumDescriptor(_PROMPTMONITORMODE) @@ -885,11 +885,33 @@ ], containing_type=None, options=None, - serialized_start=15630, - serialized_end=15700, + serialized_start=15726, + serialized_end=15796, ) _sym_db.RegisterEnumDescriptor(_RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES_KNOB_TYPE) +_RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES_FORMAT = _descriptor.EnumDescriptor( + name='Format', + full_name='iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Format', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='PLAIN_TEXT', index=0, number=0, + options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='HTML', index=1, number=1, + options=None, + type=None), + ], + containing_type=None, + options=None, + serialized_start=15835, + serialized_end=15869, +) +_sym_db.RegisterEnumDescriptor(_RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES_FORMAT) + _RPCREGISTRATIONREQUEST_ROLE = _descriptor.EnumDescriptor( name='Role', full_name='iterm2.RPCRegistrationRequest.Role', @@ -915,8 +937,8 @@ ], containing_type=None, options=None, - serialized_start=15813, - serialized_end=15895, + serialized_start=15945, + serialized_end=16027, ) _sym_db.RegisterEnumDescriptor(_RPCREGISTRATIONREQUEST_ROLE) @@ -941,8 +963,8 @@ ], containing_type=None, options=None, - serialized_start=16001, - serialized_end=16063, + serialized_start=16133, + serialized_end=16195, ) _sym_db.RegisterEnumDescriptor(_REGISTERTOOLRESPONSE_STATUS) @@ -983,8 +1005,8 @@ ], containing_type=None, options=None, - serialized_start=17250, - serialized_end=17417, + serialized_start=17382, + serialized_end=17549, ) _sym_db.RegisterEnumDescriptor(_NOTIFICATIONRESPONSE_STATUS) @@ -1009,8 +1031,8 @@ ], containing_type=None, options=None, - serialized_start=19107, - serialized_end=19160, + serialized_start=19239, + serialized_end=19292, ) _sym_db.RegisterEnumDescriptor(_KEYSTROKENOTIFICATION_ACTION) @@ -1035,8 +1057,8 @@ ], containing_type=None, options=None, - serialized_start=20164, - serialized_end=20276, + serialized_start=20296, + serialized_end=20408, ) _sym_db.RegisterEnumDescriptor(_FOCUSCHANGEDNOTIFICATION_WINDOW_WINDOWSTATUS) @@ -1065,8 +1087,8 @@ ], containing_type=None, options=None, - serialized_start=20781, - serialized_end=20867, + serialized_start=20913, + serialized_end=20999, ) _sym_db.RegisterEnumDescriptor(_GETBUFFERRESPONSE_STATUS) @@ -1095,8 +1117,8 @@ ], containing_type=None, options=None, - serialized_start=21281, - serialized_end=21367, + serialized_start=21413, + serialized_end=21499, ) _sym_db.RegisterEnumDescriptor(_GETPROMPTRESPONSE_STATUS) @@ -1121,8 +1143,8 @@ ], containing_type=None, options=None, - serialized_start=21369, - serialized_end=21416, + serialized_start=21501, + serialized_end=21548, ) _sym_db.RegisterEnumDescriptor(_GETPROMPTRESPONSE_STATE) @@ -1173,8 +1195,8 @@ ], containing_type=None, options=None, - serialized_start=21904, - serialized_end=21977, + serialized_start=22036, + serialized_end=22109, ) _sym_db.RegisterEnumDescriptor(_GETPROFILEPROPERTYRESPONSE_STATUS) @@ -1203,8 +1225,8 @@ ], containing_type=None, options=None, - serialized_start=22371, - serialized_end=22447, + serialized_start=22503, + serialized_end=22579, ) _sym_db.RegisterEnumDescriptor(_SETPROFILEPROPERTYRESPONSE_STATUS) @@ -1229,8 +1251,8 @@ ], containing_type=None, options=None, - serialized_start=22566, - serialized_end=22630, + serialized_start=22698, + serialized_end=22762, ) _sym_db.RegisterEnumDescriptor(_TRANSACTIONRESPONSE_STATUS) @@ -1251,8 +1273,8 @@ ], containing_type=None, options=None, - serialized_start=23071, - serialized_end=23139, + serialized_start=23203, + serialized_end=23271, ) _sym_db.RegisterEnumDescriptor(_LINECONTENTS_CONTINUATION) @@ -1307,8 +1329,8 @@ ], containing_type=None, options=None, - serialized_start=24580, - serialized_end=24694, + serialized_start=24712, + serialized_end=24826, ) _sym_db.RegisterEnumDescriptor(_CREATETABRESPONSE_STATUS) @@ -1329,8 +1351,8 @@ ], containing_type=None, options=None, - serialized_start=24905, - serialized_end=24951, + serialized_start=25037, + serialized_end=25083, ) _sym_db.RegisterEnumDescriptor(_SPLITPANEREQUEST_SPLITDIRECTION) @@ -1363,8 +1385,8 @@ ], containing_type=None, options=None, - serialized_start=25045, - serialized_end=25167, + serialized_start=25177, + serialized_end=25299, ) _sym_db.RegisterEnumDescriptor(_SPLITPANERESPONSE_STATUS) @@ -5529,8 +5551,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=15461, - serialized_end=15700, + serialized_start=15557, + serialized_end=15796, ) _RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES_ICON = _descriptor.Descriptor( @@ -5566,8 +5588,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=15702, - serialized_end=15737, + serialized_start=15798, + serialized_end=15833, ) _RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES = _descriptor.Descriptor( @@ -5626,11 +5648,19 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, options=None), + _descriptor.FieldDescriptor( + name='format', full_name='iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.format', index=7, + number=8, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + options=None), ], extensions=[ ], nested_types=[_RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES_KNOB, _RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES_ICON, ], enum_types=[ + _RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES_FORMAT, ], options=None, is_extendable=False, @@ -5639,7 +5669,7 @@ oneofs=[ ], serialized_start=15140, - serialized_end=15737, + serialized_end=15869, ) _RPCREGISTRATIONREQUEST_CONTEXTMENUATTRIBUTES = _descriptor.Descriptor( @@ -5675,8 +5705,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=15739, - serialized_end=15811, + serialized_start=15871, + serialized_end=15943, ) _RPCREGISTRATIONREQUEST = _descriptor.Descriptor( @@ -5766,7 +5796,7 @@ index=0, containing_type=None, fields=[]), ], serialized_start=14422, - serialized_end=15921, + serialized_end=16053, ) @@ -5797,8 +5827,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=15924, - serialized_end=16063, + serialized_start=16056, + serialized_end=16195, ) @@ -5856,8 +5886,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=16066, - serialized_end=16256, + serialized_start=16198, + serialized_end=16388, ) @@ -5894,8 +5924,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=16258, - serialized_end=16359, + serialized_start=16390, + serialized_end=16491, ) @@ -5925,8 +5955,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=16361, - serialized_end=16439, + serialized_start=16493, + serialized_end=16571, ) @@ -5970,8 +6000,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=16441, - serialized_end=16537, + serialized_start=16573, + serialized_end=16669, ) @@ -6001,8 +6031,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=16539, - serialized_end=16575, + serialized_start=16671, + serialized_end=16707, ) @@ -6032,8 +6062,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=16577, - serialized_end=16641, + serialized_start=16709, + serialized_end=16773, ) @@ -6122,8 +6152,8 @@ name='arguments', full_name='iterm2.NotificationRequest.arguments', index=0, containing_type=None, fields=[]), ], - serialized_start=16644, - serialized_end=17169, + serialized_start=16776, + serialized_end=17301, ) @@ -6154,8 +6184,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=17172, - serialized_end=17417, + serialized_start=17304, + serialized_end=17549, ) @@ -6269,8 +6299,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=17420, - serialized_end=18390, + serialized_start=17552, + serialized_end=18522, ) @@ -6300,8 +6330,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=18392, - serialized_end=18434, + serialized_start=18524, + serialized_end=18566, ) @@ -6352,8 +6382,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=18436, - serialized_end=18561, + serialized_start=18568, + serialized_end=18693, ) @@ -6383,8 +6413,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=18563, - serialized_end=18652, + serialized_start=18695, + serialized_end=18784, ) @@ -6421,8 +6451,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=18752, - serialized_end=18799, + serialized_start=18884, + serialized_end=18931, ) _SERVERORIGINATEDRPC = _descriptor.Descriptor( @@ -6458,8 +6488,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=18655, - serialized_end=18799, + serialized_start=18787, + serialized_end=18931, ) @@ -6496,8 +6526,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=18801, - serialized_end=18896, + serialized_start=18933, + serialized_end=19028, ) @@ -6563,8 +6593,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=18899, - serialized_end=19160, + serialized_start=19031, + serialized_end=19292, ) @@ -6594,8 +6624,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=19162, - serialized_end=19205, + serialized_start=19294, + serialized_end=19337, ) @@ -6632,8 +6662,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=19207, - serialized_end=19297, + serialized_start=19339, + serialized_end=19429, ) @@ -6663,8 +6693,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=19299, - serialized_end=19348, + serialized_start=19431, + serialized_end=19480, ) @@ -6694,8 +6724,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=19350, - serialized_end=19396, + serialized_start=19482, + serialized_end=19528, ) @@ -6756,8 +6786,8 @@ name='event', full_name='iterm2.PromptNotification.event', index=0, containing_type=None, fields=[]), ], - serialized_start=19399, - serialized_end=19649, + serialized_start=19531, + serialized_end=19781, ) @@ -6808,8 +6838,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=19651, - serialized_end=19753, + serialized_start=19783, + serialized_end=19885, ) @@ -6853,8 +6883,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=19755, - serialized_end=19848, + serialized_start=19887, + serialized_end=19980, ) @@ -6884,8 +6914,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=19850, - serialized_end=19894, + serialized_start=19982, + serialized_end=20026, ) @@ -6923,8 +6953,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=20058, - serialized_end=20276, + serialized_start=20190, + serialized_end=20408, ) _FOCUSCHANGEDNOTIFICATION = _descriptor.Descriptor( @@ -6977,8 +7007,8 @@ name='event', full_name='iterm2.FocusChangedNotification.event', index=0, containing_type=None, fields=[]), ], - serialized_start=19897, - serialized_end=20285, + serialized_start=20029, + serialized_end=20417, ) @@ -7008,8 +7038,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=20287, - serialized_end=20337, + serialized_start=20419, + serialized_end=20469, ) @@ -7039,8 +7069,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=20339, - serialized_end=20428, + serialized_start=20471, + serialized_end=20560, ) @@ -7077,8 +7107,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=20430, - serialized_end=20504, + serialized_start=20562, + serialized_end=20636, ) @@ -7144,8 +7174,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=20507, - serialized_end=20867, + serialized_start=20639, + serialized_end=20999, ) @@ -7182,8 +7212,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=20869, - serialized_end=20930, + serialized_start=21001, + serialized_end=21062, ) @@ -7271,8 +7301,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=20933, - serialized_end=21416, + serialized_start=21065, + serialized_end=21548, ) @@ -7316,8 +7346,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=21418, - serialized_end=21504, + serialized_start=21550, + serialized_end=21636, ) @@ -7355,8 +7385,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=21507, - serialized_end=21651, + serialized_start=21639, + serialized_end=21783, ) @@ -7393,8 +7423,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=21653, - serialized_end=21711, + serialized_start=21785, + serialized_end=21843, ) @@ -7431,8 +7461,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=21713, - serialized_end=21763, + serialized_start=21845, + serialized_end=21895, ) @@ -7470,8 +7500,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=21766, - serialized_end=21977, + serialized_start=21898, + serialized_end=22109, ) @@ -7501,8 +7531,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=22193, - serialized_end=22218, + serialized_start=22325, + serialized_end=22350, ) _SETPROFILEPROPERTYREQUEST_ASSIGNMENT = _descriptor.Descriptor( @@ -7538,8 +7568,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=22220, - serialized_end=22265, + serialized_start=22352, + serialized_end=22397, ) _SETPROFILEPROPERTYREQUEST = _descriptor.Descriptor( @@ -7599,8 +7629,8 @@ name='target', full_name='iterm2.SetProfilePropertyRequest.target', index=0, containing_type=None, fields=[]), ], - serialized_start=21980, - serialized_end=22275, + serialized_start=22112, + serialized_end=22407, ) @@ -7631,8 +7661,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=22278, - serialized_end=22447, + serialized_start=22410, + serialized_end=22579, ) @@ -7662,8 +7692,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=22449, - serialized_end=22484, + serialized_start=22581, + serialized_end=22616, ) @@ -7694,8 +7724,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=22487, - serialized_end=22630, + serialized_start=22619, + serialized_end=22762, ) @@ -7739,8 +7769,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=22632, - serialized_end=22755, + serialized_start=22764, + serialized_end=22887, ) @@ -7777,8 +7807,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=22757, - serialized_end=22798, + serialized_start=22889, + serialized_end=22930, ) @@ -7815,8 +7845,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=22800, - serialized_end=22870, + serialized_start=22932, + serialized_end=23002, ) @@ -7853,8 +7883,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=22872, - serialized_end=22901, + serialized_start=23004, + serialized_end=23033, ) @@ -7899,8 +7929,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=22904, - serialized_end=23139, + serialized_start=23036, + serialized_end=23271, ) @@ -7937,8 +7967,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=23141, - serialized_end=23205, + serialized_start=23273, + serialized_end=23337, ) @@ -7961,8 +7991,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=23207, - serialized_end=23228, + serialized_start=23339, + serialized_end=23360, ) @@ -8006,8 +8036,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=23230, - serialized_end=23306, + serialized_start=23362, + serialized_end=23438, ) @@ -8038,8 +8068,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=23308, - serialized_end=23416, + serialized_start=23440, + serialized_end=23548, ) @@ -8076,8 +8106,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=23418, - serialized_end=23455, + serialized_start=23550, + serialized_end=23587, ) @@ -8114,8 +8144,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=23457, - serialized_end=23486, + serialized_start=23589, + serialized_end=23618, ) @@ -8152,8 +8182,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=23488, - serialized_end=23554, + serialized_start=23620, + serialized_end=23686, ) @@ -8204,8 +8234,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=23556, - serialized_end=23677, + serialized_start=23688, + serialized_end=23809, ) @@ -8245,8 +8275,8 @@ name='child', full_name='iterm2.SplitTreeNode.SplitTreeLink.child', index=0, containing_type=None, fields=[]), ], - serialized_start=23767, - serialized_end=23873, + serialized_start=23899, + serialized_end=24005, ) _SPLITTREENODE = _descriptor.Descriptor( @@ -8282,8 +8312,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=23680, - serialized_end=23873, + serialized_start=23812, + serialized_end=24005, ) @@ -8334,8 +8364,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=24003, - serialized_end=24124, + serialized_start=24135, + serialized_end=24256, ) _LISTSESSIONSRESPONSE_TAB = _descriptor.Descriptor( @@ -8392,8 +8422,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=24127, - serialized_end=24289, + serialized_start=24259, + serialized_end=24421, ) _LISTSESSIONSRESPONSE = _descriptor.Descriptor( @@ -8429,8 +8459,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=23876, - serialized_end=24289, + serialized_start=24008, + serialized_end=24421, ) @@ -8488,8 +8518,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=24292, - serialized_end=24451, + serialized_start=24424, + serialized_end=24583, ) @@ -8541,8 +8571,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=24454, - serialized_end=24694, + serialized_start=24586, + serialized_end=24826, ) @@ -8601,8 +8631,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=24697, - serialized_end=24951, + serialized_start=24829, + serialized_end=25083, ) @@ -8640,8 +8670,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=24954, - serialized_end=25167, + serialized_start=25086, + serialized_end=25299, ) _CLIENTORIGINATEDMESSAGE.fields_by_name['get_buffer_request'].message_type = _GETBUFFERREQUEST @@ -9222,7 +9252,9 @@ _RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES_ICON.containing_type = _RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES _RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES.fields_by_name['knobs'].message_type = _RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES_KNOB _RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES.fields_by_name['icons'].message_type = _RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES_ICON +_RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES.fields_by_name['format'].enum_type = _RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES_FORMAT _RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES.containing_type = _RPCREGISTRATIONREQUEST +_RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES_FORMAT.containing_type = _RPCREGISTRATIONREQUEST_STATUSBARCOMPONENTATTRIBUTES _RPCREGISTRATIONREQUEST_CONTEXTMENUATTRIBUTES.containing_type = _RPCREGISTRATIONREQUEST _RPCREGISTRATIONREQUEST.fields_by_name['arguments'].message_type = _RPCREGISTRATIONREQUEST_RPCARGUMENTSIGNATURE _RPCREGISTRATIONREQUEST.fields_by_name['defaults'].message_type = _RPCREGISTRATIONREQUEST_RPCARGUMENT diff --git a/api/library/python/iterm2/iterm2/api_pb2.pyi b/api/library/python/iterm2/iterm2/api_pb2.pyi index d95e6aff60..be230398d6 100644 --- a/api/library/python/iterm2/iterm2/api_pb2.pyi +++ b/api/library/python/iterm2/iterm2/api_pb2.pyi @@ -2271,6 +2271,15 @@ class RPCRegistrationRequest(google.protobuf.message.Message): class StatusBarComponentAttributes(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor = ... + class _Format(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Format.V], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ... + PLAIN_TEXT = RPCRegistrationRequest.StatusBarComponentAttributes.Format.V(0) + HTML = RPCRegistrationRequest.StatusBarComponentAttributes.Format.V(1) + class Format(metaclass=_Format): + V = typing.NewType('V', builtins.int) + PLAIN_TEXT = RPCRegistrationRequest.StatusBarComponentAttributes.Format.V(0) + HTML = RPCRegistrationRequest.StatusBarComponentAttributes.Format.V(1) + class Knob(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor = ... class _Type(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Type.V], builtins.type): @@ -2330,11 +2339,13 @@ class RPCRegistrationRequest(google.protobuf.message.Message): UPDATE_CADENCE_FIELD_NUMBER: builtins.int UNIQUE_IDENTIFIER_FIELD_NUMBER: builtins.int ICONS_FIELD_NUMBER: builtins.int + FORMAT_FIELD_NUMBER: builtins.int short_description: typing.Text = ... detailed_description: typing.Text = ... exemplar: typing.Text = ... update_cadence: builtins.float = ... unique_identifier: typing.Text = ... + format: global___RPCRegistrationRequest.StatusBarComponentAttributes.Format.V = ... @property def knobs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RPCRegistrationRequest.StatusBarComponentAttributes.Knob]: ... @@ -2351,9 +2362,10 @@ class RPCRegistrationRequest(google.protobuf.message.Message): update_cadence : typing.Optional[builtins.float] = ..., unique_identifier : typing.Optional[typing.Text] = ..., icons : typing.Optional[typing.Iterable[global___RPCRegistrationRequest.StatusBarComponentAttributes.Icon]] = ..., + format : typing.Optional[global___RPCRegistrationRequest.StatusBarComponentAttributes.Format.V] = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal[u"detailed_description",b"detailed_description",u"exemplar",b"exemplar",u"short_description",b"short_description",u"unique_identifier",b"unique_identifier",u"update_cadence",b"update_cadence"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal[u"detailed_description",b"detailed_description",u"exemplar",b"exemplar",u"icons",b"icons",u"knobs",b"knobs",u"short_description",b"short_description",u"unique_identifier",b"unique_identifier",u"update_cadence",b"update_cadence"]) -> None: ... + def HasField(self, field_name: typing_extensions.Literal[u"detailed_description",b"detailed_description",u"exemplar",b"exemplar",u"format",b"format",u"short_description",b"short_description",u"unique_identifier",b"unique_identifier",u"update_cadence",b"update_cadence"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal[u"detailed_description",b"detailed_description",u"exemplar",b"exemplar",u"format",b"format",u"icons",b"icons",u"knobs",b"knobs",u"short_description",b"short_description",u"unique_identifier",b"unique_identifier",u"update_cadence",b"update_cadence"]) -> None: ... class ContextMenuAttributes(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor = ... diff --git a/api/library/python/iterm2/iterm2/statusbar.py b/api/library/python/iterm2/iterm2/statusbar.py index 9a89862257..107aec37a9 100644 --- a/api/library/python/iterm2/iterm2/statusbar.py +++ b/api/library/python/iterm2/iterm2/statusbar.py @@ -1,6 +1,7 @@ """Status bar customization interfaces.""" import base64 +import enum import json import typing @@ -151,6 +152,11 @@ class StatusBarComponent: * Example ":ref:`mousemode_example`" * Example ":ref:`statusbar_example`" """ + class Format(enum.Enum): + """Describes how a status bar component's output is formatted.""" + PLAIN_TEXT = iterm2.api_pb2.RPCRegistrationRequest.StatusBarComponentAttributes.Format.PLAIN_TEXT + HTML = iterm2.api_pb2.RPCRegistrationRequest.StatusBarComponentAttributes.Format.HTML #: A very limited subset of HTML + class Icon: """Contains a status bar icon. @@ -188,7 +194,8 @@ def __init__( exemplar: str, update_cadence: typing.Union[float, None], identifier: str, - icons: typing.List[Icon] = []): + icons: typing.List[Icon] = [], + format: Format = Format.PLAIN_TEXT): """Initializes a status bar component.""" self.__short_description = short_description self.__detailed_description = detailed_description @@ -198,6 +205,7 @@ def __init__( self.__identifier = identifier self.__icons = icons self.__connection: typing.Optional[iterm2.connection.Connection] = None + self.__format = format def set_fields_in_proto(self, proto): """Populates a protobuf from this object's contents.""" @@ -209,6 +217,7 @@ def set_fields_in_proto(self, proto): proto.unique_identifier = self.__identifier icons = list(map(lambda x: x.to_status_bar_icon(), self.__icons)) proto.icons.extend(icons) + proto.format = self.__format.value if self.__update_cadence is not None: proto.update_cadence = self.__update_cadence diff --git a/proto/api.proto b/proto/api.proto index 486f612d8d..790e305939 100644 --- a/proto/api.proto +++ b/proto/api.proto @@ -834,6 +834,12 @@ message RPCRegistrationRequest { optional float scale = 2; } repeated Icon icons = 7; + + enum Format { + PLAIN_TEXT = 0; + HTML = 1; + } + optional Format format = 8 [default = PLAIN_TEXT]; } message ContextMenuAttributes { diff --git a/sources/iTermStatusBarAttributedTextComponent.h b/sources/iTermStatusBarAttributedTextComponent.h index c71a46f5ac..261895921a 100644 --- a/sources/iTermStatusBarAttributedTextComponent.h +++ b/sources/iTermStatusBarAttributedTextComponent.h @@ -17,12 +17,14 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, readonly) NSTextField *textField; @property (nonatomic, readonly) NSColor *textColor; +@property (nonatomic, readonly) NSFont *font; - (CGFloat)widthForAttributedString:(NSAttributedString *)string; - (void)updateTextFieldIfNeeded; // Subclasses can override this to return YES if the longest variant can always be truncated to fit. - (BOOL)truncatesTail; +- (NSTextField *)newTextField; @end diff --git a/sources/iTermStatusBarAttributedTextComponent.m b/sources/iTermStatusBarAttributedTextComponent.m index 35568b0229..099c8b59d0 100644 --- a/sources/iTermStatusBarAttributedTextComponent.m +++ b/sources/iTermStatusBarAttributedTextComponent.m @@ -281,8 +281,12 @@ - (nullable NSAttributedString *)attributedStringForWidth:(CGFloat)width { }].firstObject ?: [[NSAttributedString alloc] initWithString:@"" attributes:@{}]; } +- (NSFont *)font { + return self.advancedConfiguration.font ?: [iTermStatusBarAdvancedConfiguration defaultFont]; +} + - (CGFloat)statusBarComponentVerticalOffset { - NSFont *font = self.advancedConfiguration.font ?: [iTermStatusBarAdvancedConfiguration defaultFont]; + NSFont *font = [self font]; const CGFloat containerHeight = _textField.superview.bounds.size.height; const CGFloat capHeight = font.capHeight; const CGFloat descender = font.descender - font.leading; // negative (distance from bottom of bounding box to baseline) diff --git a/sources/iTermStatusBarRPCProvidedTextComponent.h b/sources/iTermStatusBarRPCProvidedTextComponent.h index df3bf31f45..f4d3c2ada8 100644 --- a/sources/iTermStatusBarRPCProvidedTextComponent.h +++ b/sources/iTermStatusBarRPCProvidedTextComponent.h @@ -6,6 +6,7 @@ // #import "iTermStatusBarTextComponent.h" +#import "iTermStatusBarAttributedTextComponent.h" @class ITMRPCRegistrationRequest; @@ -17,6 +18,14 @@ @end +@interface iTermStatusBarRPCProvidedAttributedTextComponent : iTermStatusBarAttributedTextComponent + +- (instancetype)initWithRegistrationRequest:(ITMRPCRegistrationRequest *)registrationRequest + scope:(iTermVariableScope *)scope + knobs:(NSDictionary *)knobs; + +@end + @interface iTermStatusBarRPCComponentFactory : NSObject - (instancetype)initWithRegistrationRequest:(ITMRPCRegistrationRequest *)registrationRequest; diff --git a/sources/iTermStatusBarRPCProvidedTextComponent.m b/sources/iTermStatusBarRPCProvidedTextComponent.m index b3b36104b4..7073f4c9c1 100644 --- a/sources/iTermStatusBarRPCProvidedTextComponent.m +++ b/sources/iTermStatusBarRPCProvidedTextComponent.m @@ -22,6 +22,7 @@ #import "iTermVariableReference.h" #import "iTermWarning.h" #import "NSArray+iTerm.h" +#import "NSAttributedString+PSM.h" #import "NSFileManager+iTerm.h" #import "NSJSONSerialization+iTerm.h" #import "NSObject+iTerm.h" @@ -106,17 +107,34 @@ - (NSDictionary *)defaultKnobs { - (id)newComponentWithKnobs:(NSDictionary *)knobs layoutAlgorithm:(iTermStatusBarLayoutAlgorithmSetting)layoutAlgorithm scope:(nullable iTermVariableScope *)scope { - return [[iTermStatusBarRPCProvidedTextComponent alloc] initWithRegistrationRequest:_savedRegistrationRequest.latestStatusBarRequest - scope:scope - knobs:knobs]; + ITMRPCRegistrationRequest *request = _savedRegistrationRequest.latestStatusBarRequest; + switch (request.statusBarComponentAttributes.format) { + case ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format_PlainText: + return [[iTermStatusBarRPCProvidedTextComponent alloc] initWithRegistrationRequest:request + scope:scope + knobs:knobs]; + case ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format_Html: + return [[iTermStatusBarRPCProvidedAttributedTextComponent alloc] initWithRegistrationRequest:request + scope:scope + knobs:knobs]; + } + return nil; } @end -@interface iTermStatusBarRPCProvidedTextComponent() +@protocol iTermStatusBarRPCProvidedTextComponentCommonDelegate +@property(nonatomic, readonly) NSTextField *textField; +@property(nonatomic, readonly) iTermVariableScope *scope; +- (void)updateTextFieldIfNeeded; @end -@implementation iTermStatusBarRPCProvidedTextComponent { +@interface iTermStatusBarRPCProvidedTextComponentCommon: NSObject +@property(nonatomic, weak) id delegate; +@property(nonatomic, copy) NSDictionary *configuration; +@end + +@implementation iTermStatusBarRPCProvidedTextComponentCommon { ITMRPCRegistrationRequest *_savedRegistrationRequest; NSArray *_variants; NSArray *_dependencies; @@ -138,42 +156,46 @@ - (instancetype)initWithRegistrationRequest:(ITMRPCRegistrationRequest *)registr - (instancetype)initWithConfiguration:(NSDictionary *)configuration scope:(nullable iTermVariableScope *)realScope { - NSData *data = configuration[iTermStatusBarRPCRegistrationRequestKey];; + NSData *data = configuration[iTermStatusBarRPCRegistrationRequestKey]; ITMRPCRegistrationRequest *registrationRequest = [[ITMRPCRegistrationRequest alloc] initWithData:data error:nil]; if (!registrationRequest) { return nil; } - self = [super initWithConfiguration:configuration scope:realScope]; + self = [super init]; if (self) { _savedRegistrationRequest = registrationRequest; - iTermVariableRecordingScope *scope = [[iTermVariableRecordingScope alloc] initWithScope:self.scope]; - scope.neverReturnNil = YES; - [iTermScriptFunctionCall callFunction:self.invocation - timeout:0 - scope:scope - retainSelf:YES - completion:^(id value, NSError *error, NSSet *missingFunctions) {}]; - _dependencies = [scope recordedReferences]; - __weak __typeof(self) weakSelf = self; - [_dependencies enumerateObjectsUsingBlock:^(iTermVariableReference * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { - obj.onChangeBlock = ^{ - [weakSelf updateWithKnobValues:weakSelf.configuration[iTermStatusBarComponentConfigurationKeyKnobValues]]; - }; - }]; - [self updateWithKnobValues:self.configuration[iTermStatusBarComponentConfigurationKeyKnobValues]]; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(registeredFunctionsDidChange:) - name:iTermAPIRegisteredFunctionsDidChangeNotification - object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(didRegisterStatusBarComponent:) - name:iTermAPIDidRegisterStatusBarComponentNotification - object:nil]; + _configuration = [configuration copy]; } return self; } +- (void)finishInitialization { + iTermVariableRecordingScope *scope = [[iTermVariableRecordingScope alloc] initWithScope:self.delegate.scope]; + scope.neverReturnNil = YES; + [iTermScriptFunctionCall callFunction:self.invocation + timeout:0 + scope:scope + retainSelf:YES + completion:^(id value, NSError *error, NSSet *missingFunctions) {}]; + _dependencies = [scope recordedReferences]; + __weak __typeof(self) weakSelf = self; + [_dependencies enumerateObjectsUsingBlock:^(iTermVariableReference * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + obj.onChangeBlock = ^{ + [weakSelf updateWithKnobValues:weakSelf.configuration[iTermStatusBarComponentConfigurationKeyKnobValues]]; + }; + }]; + [self updateWithKnobValues:self.configuration[iTermStatusBarComponentConfigurationKeyKnobValues]]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(registeredFunctionsDidChange:) + name:iTermAPIRegisteredFunctionsDidChangeNotification + object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(didRegisterStatusBarComponent:) + name:iTermAPIDidRegisterStatusBarComponentNotification + object:nil]; +} + - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; } @@ -192,15 +214,13 @@ - (NSString *)statusBarComponentIdentifier { return _savedRegistrationRequest.statusBarComponentAttributes.uniqueIdentifier ?: [[NSUUID UUID] UUIDString]; } -- (NSTextField *)newTextField { - NSTextField *textField = [super newTextField]; +- (void)initializeTextField:(NSTextField *)textField { NSClickGestureRecognizer *recognizer = [[NSClickGestureRecognizer alloc] init]; recognizer.buttonMask = 1; recognizer.numberOfClicksRequired = 1; recognizer.target = self; recognizer.action = @selector(onClick:); [textField addGestureRecognizer:recognizer]; - return textField; } - (id)statusBarComponentFactory { @@ -268,7 +288,7 @@ - (iTermStatusBarComponentKnobType)knobTypeFromDescriptorType:(ITMRPCRegistratio return iTermStatusBarComponentKnobTypeText; } -- (NSArray *)statusBarComponentKnobs { +- (NSArray *)amendedStatusBarComponentKnobs:(NSArray *)superKnobs { NSArray *knobs; knobs = [_savedRegistrationRequest.latestStatusBarRequest.statusBarComponentAttributes.knobsArray mapWithBlock:^id(ITMRPCRegistrationRequest_StatusBarComponentAttributes_Knob *descriptor) { return [[iTermStatusBarComponentKnob alloc] initWithLabelText:descriptor.name @@ -277,7 +297,7 @@ - (iTermStatusBarComponentKnobType)knobTypeFromDescriptorType:(ITMRPCRegistratio defaultValue:descriptor.hasJsonDefaultValue ? [NSJSONSerialization it_objectForJsonString:descriptor.jsonDefaultValue] : nil key:descriptor.key]; }] ?: @[]; - return [knobs arrayByAddingObjectsFromArray:[super statusBarComponentKnobs]]; + return [knobs arrayByAddingObjectsFromArray:superKnobs]; } - (id)statusBarComponentExemplarWithBackgroundColor:(NSColor *)backgroundColor @@ -295,7 +315,7 @@ - (BOOL)statusBarComponentCanStretch { - (void)updateWithKnobValues:(NSDictionary *)knobValues { __weak __typeof(self) weakSelf = self; - iTermVariableScope *scope = [self.scope copy]; + iTermVariableScope *scope = [self.delegate.scope copy]; if (!scope) { // This happens in the setup UI because the component is not attached to a real session. To // avoid spurious errors, do not actually evaluate the invocation. @@ -349,7 +369,7 @@ - (void)maybeOfferToMoveScriptToAutoLaunch { identifier:[NSString stringWithFormat:@"NoSyncAutoLaunchScript_%@", _fullPath] silenceable:kiTermWarningTypePermanentlySilenceable heading:@"Always launch this script when iTerm2 starts?" - window:self.textField.window] == kiTermWarningSelection0) { + window:self.delegate.textField.window] == kiTermWarningSelection0) { [menuController moveScriptToAutoLaunch:_fullPath]; } } @@ -374,7 +394,7 @@ - (void)handleSuccessfulEvaluationWithValue:(id)value { string:_errorMessage]; _variants = @[ @"🐞" ]; } - [self updateTextFieldIfNeeded]; + [self.delegate updateTextFieldIfNeeded]; } - (void)handleEvaluationError:(NSError *)error @@ -389,12 +409,12 @@ - (void)handleEvaluationError:(NSError *)error string:_errorMessage]; _variants = @[ @"🐞" ]; _missingFunctions = [missingFunctions mutableCopy]; - [self updateTextFieldIfNeeded]; + [self.delegate updateTextFieldIfNeeded]; } +// Call super after this. - (void)statusBarComponentSetKnobValues:(NSDictionary *)knobValues { [self updateWithKnobValues:knobValues]; - [super statusBarComponentSetKnobValues:knobValues]; } - (void)didRegisterStatusBarComponent:(NSNotification *)notification { @@ -492,16 +512,16 @@ - (void)onClick:(id)sender { warning.warningActions = actions; warning.warningType = kiTermWarningTypePersistent; warning.heading = @"Status Bar Script Error"; - warning.window = self.textField.window; + warning.window = self.delegate.textField.window; [warning runModal]; return; } - NSString *sessionId = [self.scope valueForVariableName:iTermVariableKeySessionID]; + NSString *sessionId = [self.delegate.scope valueForVariableName:iTermVariableKeySessionID]; NSString *identifier = [[self.statusBarComponentIdentifier stringByReplacingOccurrencesOfString:@"." withString:@"_"] stringByReplacingOccurrencesOfString:@"-" withString:@"_"]; NSString *func = [NSString stringWithFormat:@"__%@__on_click(session_id: \"%@\")", identifier, sessionId]; [iTermScriptFunctionCall callFunction:func timeout:30 - scope:self.scope + scope:self.delegate.scope retainSelf:YES completion:^(id result, NSError *error, NSSet *mutations) { if (error) { @@ -548,4 +568,233 @@ - (nullable iTermVariableScope *)objectScope { @end +@interface iTermStatusBarRPCProvidedTextComponent() +@end + +@implementation iTermStatusBarRPCProvidedTextComponent { + iTermStatusBarRPCProvidedTextComponentCommon *_common; +} + +- (instancetype)initWithRegistrationRequest:(ITMRPCRegistrationRequest *)registrationRequest + scope:(iTermVariableScope *)scope + knobs:(NSDictionary *)knobs { + return [self initWithConfiguration:@{ iTermStatusBarRPCRegistrationRequestKey: registrationRequest.data, + iTermStatusBarComponentConfigurationKeyKnobValues: knobs } + scope:scope]; +} + +- (instancetype)initWithConfiguration:(NSDictionary *)configuration + scope:(nullable iTermVariableScope *)realScope { + iTermStatusBarRPCProvidedTextComponentCommon *common = [[iTermStatusBarRPCProvidedTextComponentCommon alloc] initWithConfiguration:configuration scope:realScope]; + if (!common) { + return nil; + } + self = [super initWithConfiguration:configuration scope:realScope]; + common.delegate = self; + if (self) { + [common finishInitialization]; + _common = common; + } + return self; +} + +- (NSString *)statusBarComponentIdentifier { + return [_common statusBarComponentIdentifier]; +} + +- (NSTextField *)newTextField { + NSTextField *textField = [super newTextField]; + [_common initializeTextField:textField]; + return textField; +} + +- (id)statusBarComponentFactory { + return [_common statusBarComponentFactory]; +} + +- (NSString *)statusBarComponentShortDescription { + return [_common statusBarComponentShortDescription]; +} + +- (NSString *)statusBarComponentDetailedDescription { + return [_common statusBarComponentDetailedDescription]; +} + +- (void)statusBarComponentUpdate { + [_common statusBarComponentUpdate]; +} + +- (nullable NSImage *)statusBarComponentIcon { + return [_common statusBarComponentIcon]; +} + +- (iTermStatusBarComponentKnobType)knobTypeFromDescriptorType:(ITMRPCRegistrationRequest_StatusBarComponentAttributes_Knob_Type)type { + return [_common knobTypeFromDescriptorType:type]; +} + +- (NSArray *)statusBarComponentKnobs { + return [_common amendedStatusBarComponentKnobs:[super statusBarComponentKnobs]]; +} + +- (id)statusBarComponentExemplarWithBackgroundColor:(NSColor *)backgroundColor + textColor:(NSColor *)textColor { + return [_common statusBarComponentExemplarWithBackgroundColor:backgroundColor textColor:textColor]; +} + +- (BOOL)statusBarComponentCanStretch { + return [_common statusBarComponentCanStretch]; +} + +- (nullable NSArray *)stringVariants { + return [_common stringVariants]; +} + +- (void)statusBarComponentSetKnobValues:(NSDictionary *)knobValues { + [_common statusBarComponentSetKnobValues:knobValues]; + [super statusBarComponentSetKnobValues:knobValues]; +} + +- (NSTimeInterval)statusBarComponentUpdateCadence { + return [_common statusBarComponentUpdateCadence]; +} + +- (void)itermWebViewJavascriptError:(NSString *)errorText { + [_common itermWebViewJavascriptError:errorText]; +} + +- (void)itermWebViewWillExecuteJavascript:(NSString *)javascript { + [_common itermWebViewWillExecuteJavascript:javascript]; +} + +#pragma mark - iTermObject + +- (nullable iTermBuiltInFunctions *)objectMethodRegistry { + return [_common objectMethodRegistry]; +} + +- (nullable iTermVariableScope *)objectScope { + return [_common objectScope]; +} + +@end + +@interface iTermStatusBarRPCProvidedAttributedTextComponent() +@end + +@implementation iTermStatusBarRPCProvidedAttributedTextComponent { + iTermStatusBarRPCProvidedTextComponentCommon *_common; +} + +- (instancetype)initWithRegistrationRequest:(ITMRPCRegistrationRequest *)registrationRequest + scope:(iTermVariableScope *)scope + knobs:(NSDictionary *)knobs { + return [self initWithConfiguration:@{ iTermStatusBarRPCRegistrationRequestKey: registrationRequest.data, + iTermStatusBarComponentConfigurationKeyKnobValues: knobs } + scope:scope]; +} + +- (instancetype)initWithConfiguration:(NSDictionary *)configuration + scope:(nullable iTermVariableScope *)realScope { + iTermStatusBarRPCProvidedTextComponentCommon *common = [[iTermStatusBarRPCProvidedTextComponentCommon alloc] initWithConfiguration:configuration scope:realScope]; + if (!common) { + return nil; + } + self = [super initWithConfiguration:configuration scope:realScope]; + common.delegate = self; + if (self) { + [common finishInitialization]; + _common = common; + } + return self; +} + +- (NSString *)statusBarComponentIdentifier { + return [_common statusBarComponentIdentifier]; +} + +- (NSTextField *)newTextField { + NSTextField *textField = [super newTextField]; + [_common initializeTextField:textField]; + return textField; +} + +- (id)statusBarComponentFactory { + return [_common statusBarComponentFactory]; +} + +- (NSString *)statusBarComponentShortDescription { + return [_common statusBarComponentShortDescription]; +} + +- (NSString *)statusBarComponentDetailedDescription { + return [_common statusBarComponentDetailedDescription]; +} + +- (void)statusBarComponentUpdate { + [_common statusBarComponentUpdate]; +} + +- (nullable NSImage *)statusBarComponentIcon { + return [_common statusBarComponentIcon]; +} + +- (iTermStatusBarComponentKnobType)knobTypeFromDescriptorType:(ITMRPCRegistrationRequest_StatusBarComponentAttributes_Knob_Type)type { + return [_common knobTypeFromDescriptorType:type]; +} + +- (NSArray *)statusBarComponentKnobs { + return [_common amendedStatusBarComponentKnobs:[super statusBarComponentKnobs]]; +} + +- (id)statusBarComponentExemplarWithBackgroundColor:(NSColor *)backgroundColor + textColor:(NSColor *)textColor { + return [_common statusBarComponentExemplarWithBackgroundColor:backgroundColor textColor:textColor]; +} + +- (BOOL)statusBarComponentCanStretch { + return [_common statusBarComponentCanStretch]; +} + +- (NSArray *)attributedStringVariants { + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + paragraphStyle.alignment = NSTextAlignmentNatural; + paragraphStyle.lineBreakMode = NSLineBreakByTruncatingTail; + NSDictionary *attributes = @{ NSFontAttributeName: self.font, + NSForegroundColorAttributeName: [NSColor textColor], + NSParagraphStyleAttributeName: paragraphStyle }; + + return [[_common stringVariants] mapWithBlock:^id(NSString *string) { + return [NSAttributedString newAttributedStringWithHTML:string attributes:attributes]; + }]; +} + +- (void)statusBarComponentSetKnobValues:(NSDictionary *)knobValues { + [_common statusBarComponentSetKnobValues:knobValues]; + [super statusBarComponentSetKnobValues:knobValues]; +} + +- (NSTimeInterval)statusBarComponentUpdateCadence { + return [_common statusBarComponentUpdateCadence]; +} + +- (void)itermWebViewJavascriptError:(NSString *)errorText { + [_common itermWebViewJavascriptError:errorText]; +} + +- (void)itermWebViewWillExecuteJavascript:(NSString *)javascript { + [_common itermWebViewWillExecuteJavascript:javascript]; +} + +#pragma mark - iTermObject + +- (nullable iTermBuiltInFunctions *)objectMethodRegistry { + return [_common objectMethodRegistry]; +} + +- (nullable iTermVariableScope *)objectScope { + return [_common objectScope]; +} + +@end + NS_ASSUME_NONNULL_END diff --git a/sources/iTermStatusBarViewController.m b/sources/iTermStatusBarViewController.m index 2e7c95fe9c..b65ad29f29 100644 --- a/sources/iTermStatusBarViewController.m +++ b/sources/iTermStatusBarViewController.m @@ -415,6 +415,7 @@ - (void)statusBarContainerView:(iTermStatusBarContainerView *)sender hideCompone iTermStatusBarLayout *layout = [[iTermStatusBarLayout alloc] initWithDictionary:[self.layout dictionaryValue] scope:_scope]; layout.components = [layout.components it_arrayByRemovingObjectsPassingTest:^BOOL(id anObject) { +#warning TODO: This doesn't work with RPCProvidedTextComponent since there can be many of the same class. return anObject.class == component.class; }]; [self.delegate statusBarSetLayout:layout]; diff --git a/sources/proto/Api.pbobjc.h b/sources/proto/Api.pbobjc.h index 6507408f04..54feda2ef7 100644 --- a/sources/proto/Api.pbobjc.h +++ b/sources/proto/Api.pbobjc.h @@ -698,6 +698,21 @@ GPBEnumDescriptor *ITMRPCRegistrationRequest_Role_EnumDescriptor(void); **/ BOOL ITMRPCRegistrationRequest_Role_IsValidValue(int32_t value); +#pragma mark - Enum ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format + +typedef GPB_ENUM(ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format) { + ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format_PlainText = 0, + ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format_Html = 1, +}; + +GPBEnumDescriptor *ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format_EnumDescriptor(void); + +/** + * Checks to see if the given value is defined by the enum or was not known at + * the time this source was generated. + **/ +BOOL ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format_IsValidValue(int32_t value); + #pragma mark - Enum ITMRPCRegistrationRequest_StatusBarComponentAttributes_Knob_Type typedef GPB_ENUM(ITMRPCRegistrationRequest_StatusBarComponentAttributes_Knob_Type) { @@ -3383,6 +3398,7 @@ typedef GPB_ENUM(ITMRPCRegistrationRequest_StatusBarComponentAttributes_FieldNum ITMRPCRegistrationRequest_StatusBarComponentAttributes_FieldNumber_UpdateCadence = 5, ITMRPCRegistrationRequest_StatusBarComponentAttributes_FieldNumber_UniqueIdentifier = 6, ITMRPCRegistrationRequest_StatusBarComponentAttributes_FieldNumber_IconsArray = 7, + ITMRPCRegistrationRequest_StatusBarComponentAttributes_FieldNumber_Format = 8, }; @interface ITMRPCRegistrationRequest_StatusBarComponentAttributes : GPBMessage @@ -3419,6 +3435,9 @@ typedef GPB_ENUM(ITMRPCRegistrationRequest_StatusBarComponentAttributes_FieldNum /** The number of items in @c iconsArray without causing the array to be created. */ @property(nonatomic, readonly) NSUInteger iconsArray_Count; +@property(nonatomic, readwrite) ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format format; + +@property(nonatomic, readwrite) BOOL hasFormat; @end #pragma mark - ITMRPCRegistrationRequest_StatusBarComponentAttributes_Knob diff --git a/sources/proto/Api.pbobjc.m b/sources/proto/Api.pbobjc.m index cd1aa7257c..01d9e8dcef 100644 --- a/sources/proto/Api.pbobjc.m +++ b/sources/proto/Api.pbobjc.m @@ -7363,10 +7363,12 @@ @implementation ITMRPCRegistrationRequest_StatusBarComponentAttributes @dynamic hasUpdateCadence, updateCadence; @dynamic hasUniqueIdentifier, uniqueIdentifier; @dynamic iconsArray, iconsArray_Count; +@dynamic hasFormat, format; typedef struct ITMRPCRegistrationRequest_StatusBarComponentAttributes__storage_ { uint32_t _has_storage_[1]; float updateCadence; + ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format format; NSString *shortDescription; NSString *detailedDescription; NSMutableArray *knobsArray; @@ -7444,6 +7446,15 @@ + (GPBDescriptor *)descriptor { .flags = GPBFieldRepeated, .dataType = GPBDataTypeMessage, }, + { + .name = "format", + .dataTypeSpecific.enumDescFunc = ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format_EnumDescriptor, + .number = ITMRPCRegistrationRequest_StatusBarComponentAttributes_FieldNumber_Format, + .hasIndex = 5, + .offset = (uint32_t)offsetof(ITMRPCRegistrationRequest_StatusBarComponentAttributes__storage_, format), + .flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasDefaultValue | GPBFieldHasEnumDescriptor), + .dataType = GPBDataTypeEnum, + }, }; GPBDescriptor *localDescriptor = [GPBDescriptor allocDescriptorForClass:[ITMRPCRegistrationRequest_StatusBarComponentAttributes class] @@ -7462,6 +7473,40 @@ + (GPBDescriptor *)descriptor { @end +#pragma mark - Enum ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format + +GPBEnumDescriptor *ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format_EnumDescriptor(void) { + static GPBEnumDescriptor *descriptor = NULL; + if (!descriptor) { + static const char *valueNames = + "PlainText\000Html\000"; + static const int32_t values[] = { + ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format_PlainText, + ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format_Html, + }; + GPBEnumDescriptor *worker = + [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format) + valueNames:valueNames + values:values + count:(uint32_t)(sizeof(values) / sizeof(int32_t)) + enumVerifier:ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format_IsValidValue]; + if (!OSAtomicCompareAndSwapPtrBarrier(nil, worker, (void * volatile *)&descriptor)) { + [worker release]; + } + } + return descriptor; +} + +BOOL ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format_IsValidValue(int32_t value__) { + switch (value__) { + case ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format_PlainText: + case ITMRPCRegistrationRequest_StatusBarComponentAttributes_Format_Html: + return YES; + default: + return NO; + } +} + #pragma mark - ITMRPCRegistrationRequest_StatusBarComponentAttributes_Knob @implementation ITMRPCRegistrationRequest_StatusBarComponentAttributes_Knob