iterm2 2.22__tar.gz → 2.24__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {iterm2-2.22 → iterm2-2.24}/PKG-INFO +1 -1
- {iterm2-2.22 → iterm2-2.24}/iterm2/__init__.py +2 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/_version.py +1 -1
- {iterm2-2.22 → iterm2-2.24}/iterm2/api_pb2.py +34 -34
- {iterm2-2.22 → iterm2-2.24}/iterm2/api_pb2.pyi +35 -4
- {iterm2-2.22 → iterm2-2.24}/iterm2/capabilities.py +11 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/rpc.py +22 -8
- {iterm2-2.22 → iterm2-2.24}/iterm2/tab.py +87 -1
- iterm2-2.24/iterm2/tabgroup.py +131 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/window.py +83 -9
- {iterm2-2.22 → iterm2-2.24}/iterm2.egg-info/PKG-INFO +1 -1
- {iterm2-2.22 → iterm2-2.24}/iterm2.egg-info/SOURCES.txt +1 -0
- {iterm2-2.22 → iterm2-2.24}/MANIFEST.in +0 -0
- {iterm2-2.22 → iterm2-2.24}/README.rst +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/alert.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/app.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/arrangement.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/auth.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/binding.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/broadcast.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/color.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/colorpresets.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/connection.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/customcontrol.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/filepanel.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/focus.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/keyboard.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/lifecycle.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/mainmenu.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/notifications.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/preferences.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/profile.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/prompt.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/py.typed +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/registration.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/screen.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/selection.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/session.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/statusbar.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/tmux.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/tool.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/transaction.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/triggers.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/util.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2/variables.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2.egg-info/dependency_links.txt +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2.egg-info/not-zip-safe +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2.egg-info/requires.txt +0 -0
- {iterm2-2.22 → iterm2-2.24}/iterm2.egg-info/top_level.txt +0 -0
- {iterm2-2.22 → iterm2-2.24}/setup.cfg +0 -0
- {iterm2-2.22 → iterm2-2.24}/setup.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/tests/test_binding.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/tests/test_color.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/tests/test_triggers.py +0 -0
- {iterm2-2.22 → iterm2-2.24}/tests/test_util.py +0 -0
|
@@ -68,6 +68,8 @@ from iterm2.transaction import Transaction
|
|
|
68
68
|
|
|
69
69
|
from iterm2.tab import Tab, NavigationDirection
|
|
70
70
|
|
|
71
|
+
from iterm2.tabgroup import TabGroup
|
|
72
|
+
|
|
71
73
|
from iterm2.tmux import (
|
|
72
74
|
TmuxException, TmuxConnection, async_get_tmux_connections,
|
|
73
75
|
async_get_tmux_connection_by_connection_id)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""Gives the module version."""
|
|
2
|
-
__version__ = "2.
|
|
2
|
+
__version__ = "2.24"
|
|
@@ -13,7 +13,7 @@ _sym_db = _symbol_database.Default()
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tapi.proto\x12\x06iterm2\"\x93\x11\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\x12\x38\n\x12screenshot_request\x18\x86\x01 \x01(\x0b\x32\x19.iterm2.ScreenshotRequestH\x00\x42\x0c\n\nsubmessage\"\x99\x12\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\x13screenshot_response\x18\x86\x01 \x01(\x0b\x32\x1a.iterm2.ScreenshotResponseH\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\"b\n\x10GetBufferRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12%\n\nline_range\x18\x02 \x01(\x0b\x32\x11.iterm2.LineRange\x12\x16\n\x0einclude_styles\x18\x03 \x01(\x08\"\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\x11ScreenshotRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\"\xac\x01\n\x12ScreenshotResponse\x12\x35\n\x06status\x18\x01 \x01(\x0e\x32!.iterm2.ScreenshotResponse.Status:\x02OK\x12\x0b\n\x03png\x18\x02 \x01(\x0c\"R\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\x0eINTERNAL_ERROR\x10\x03\"=\n\x10GetPromptRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x18\n\x10unique_prompt_id\x18\x02 \x01(\t\"\x93\x04\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\x12.\n\x12\x65xcluded_subranges\x18\x0b \x03(\x0b\x32\x12.iterm2.CoordRange\"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\"4\n\x08RGBColor\x12\x0b\n\x03red\x18\x01 \x01(\r\x12\r\n\x05green\x18\x02 \x01(\r\x12\x0c\n\x04\x62lue\x18\x03 \x01(\r\"&\n\x03URL\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\nidentifier\x18\x02 \x01(\t\"\xe1\x04\n\tCellStyle\x12\x14\n\nfgStandard\x18\x01 \x01(\rH\x00\x12-\n\x0b\x66gAlternate\x18\x02 \x01(\x0e\x32\x16.iterm2.AlternateColorH\x00\x12!\n\x05\x66gRgb\x18\x03 \x01(\x0b\x32\x10.iterm2.RGBColorH\x00\x12\x1f\n\x15\x66gAlternatePlacementX\x18\x04 \x01(\rH\x00\x12\x14\n\nbgStandard\x18\x05 \x01(\rH\x01\x12-\n\x0b\x62gAlternate\x18\x06 \x01(\x0e\x32\x16.iterm2.AlternateColorH\x01\x12!\n\x05\x62gRgb\x18\x07 \x01(\x0b\x32\x10.iterm2.RGBColorH\x01\x12\x1f\n\x15\x62gAlternatePlacementY\x18\x08 \x01(\rH\x01\x12\x0c\n\x04\x62old\x18\t \x01(\x08\x12\r\n\x05\x66\x61int\x18\n \x01(\x08\x12\x0e\n\x06italic\x18\x0b \x01(\x08\x12\r\n\x05\x62link\x18\x0c \x01(\x08\x12\x11\n\tunderline\x18\r \x01(\x08\x12\x15\n\rstrikethrough\x18\x0e \x01(\x08\x12\x11\n\tinvisible\x18\x0f \x01(\x08\x12\x0f\n\x07inverse\x18\x10 \x01(\x08\x12\x0f\n\x07guarded\x18\x11 \x01(\x08\x12+\n\x05image\x18\x12 \x01(\x0e\x32\x1c.iterm2.ImagePlaceholderType\x12(\n\x0eunderlineColor\x18\x13 \x01(\x0b\x32\x10.iterm2.RGBColor\x12\x0f\n\x07\x62lockID\x18\x14 \x01(\t\x12\x18\n\x03url\x18\x15 \x01(\x0b\x32\x0b.iterm2.URL\x12\x0f\n\x07repeats\x18\x16 \x01(\rB\t\n\x07\x66gColorB\t\n\x07\x62gColor\"\x8d\x02\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\x12 \n\x05style\x18\x04 \x03(\x0b\x32\x11.iterm2.CellStyle\"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\"\xb3\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\x12\x12\n\nselect_tab\x18\x06 \x01(\x08\"\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*G\n\x0e\x41lternateColor\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x14\n\x10REVERSED_DEFAULT\x10\x03\x12\x12\n\x0eSYSTEM_MESSAGE\x10\x04*7\n\x14ImagePlaceholderType\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06ITERM2\x10\x01\x12\t\n\x05KITTY\x10\x02\x42\x06\xa2\x02\x03ITM')
|
|
16
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tapi.proto\x12\x06iterm2\"\x93\x11\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\x12\x38\n\x12screenshot_request\x18\x86\x01 \x01(\x0b\x32\x19.iterm2.ScreenshotRequestH\x00\x42\x0c\n\nsubmessage\"\x99\x12\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\x13screenshot_response\x18\x86\x01 \x01(\x0b\x32\x1a.iterm2.ScreenshotResponseH\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\"b\n\x10GetBufferRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12%\n\nline_range\x18\x02 \x01(\x0b\x32\x11.iterm2.LineRange\x12\x16\n\x0einclude_styles\x18\x03 \x01(\x08\"\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\x11ScreenshotRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\"\xac\x01\n\x12ScreenshotResponse\x12\x35\n\x06status\x18\x01 \x01(\x0e\x32!.iterm2.ScreenshotResponse.Status:\x02OK\x12\x0b\n\x03png\x18\x02 \x01(\x0c\"R\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\x0eINTERNAL_ERROR\x10\x03\"=\n\x10GetPromptRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x18\n\x10unique_prompt_id\x18\x02 \x01(\t\"\x93\x04\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\x12.\n\x12\x65xcluded_subranges\x18\x0b \x03(\x0b\x32\x12.iterm2.CoordRange\"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\"4\n\x08RGBColor\x12\x0b\n\x03red\x18\x01 \x01(\r\x12\r\n\x05green\x18\x02 \x01(\r\x12\x0c\n\x04\x62lue\x18\x03 \x01(\r\"&\n\x03URL\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\nidentifier\x18\x02 \x01(\t\"\xe1\x04\n\tCellStyle\x12\x14\n\nfgStandard\x18\x01 \x01(\rH\x00\x12-\n\x0b\x66gAlternate\x18\x02 \x01(\x0e\x32\x16.iterm2.AlternateColorH\x00\x12!\n\x05\x66gRgb\x18\x03 \x01(\x0b\x32\x10.iterm2.RGBColorH\x00\x12\x1f\n\x15\x66gAlternatePlacementX\x18\x04 \x01(\rH\x00\x12\x14\n\nbgStandard\x18\x05 \x01(\rH\x01\x12-\n\x0b\x62gAlternate\x18\x06 \x01(\x0e\x32\x16.iterm2.AlternateColorH\x01\x12!\n\x05\x62gRgb\x18\x07 \x01(\x0b\x32\x10.iterm2.RGBColorH\x01\x12\x1f\n\x15\x62gAlternatePlacementY\x18\x08 \x01(\rH\x01\x12\x0c\n\x04\x62old\x18\t \x01(\x08\x12\r\n\x05\x66\x61int\x18\n \x01(\x08\x12\x0e\n\x06italic\x18\x0b \x01(\x08\x12\r\n\x05\x62link\x18\x0c \x01(\x08\x12\x11\n\tunderline\x18\r \x01(\x08\x12\x15\n\rstrikethrough\x18\x0e \x01(\x08\x12\x11\n\tinvisible\x18\x0f \x01(\x08\x12\x0f\n\x07inverse\x18\x10 \x01(\x08\x12\x0f\n\x07guarded\x18\x11 \x01(\x08\x12+\n\x05image\x18\x12 \x01(\x0e\x32\x1c.iterm2.ImagePlaceholderType\x12(\n\x0eunderlineColor\x18\x13 \x01(\x0b\x32\x10.iterm2.RGBColor\x12\x0f\n\x07\x62lockID\x18\x14 \x01(\t\x12\x18\n\x03url\x18\x15 \x01(\x0b\x32\x0b.iterm2.URL\x12\x0f\n\x07repeats\x18\x16 \x01(\rB\t\n\x07\x66gColorB\t\n\x07\x62gColor\"\x8d\x02\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\x12 \n\x05style\x18\x04 \x03(\x0b\x32\x11.iterm2.CellStyle\"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\"\xb6\x04\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\x1a\x92\x01\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\x12\x17\n\x0fselected_tab_id\x18\x05 \x01(\t\x1a\xa1\x02\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\x12\x19\n\x11\x61\x63tive_session_id\x18\x07 \x01(\t\x12\x14\n\x0ctab_group_id\x18\x08 \x01(\t\x12\x16\n\x0etab_group_name\x18\t \x01(\t\x12\x17\n\x0ftab_group_color\x18\n \x01(\t\x12\x1b\n\x13tab_group_collapsed\x18\x0b \x01(\x08\"\xb3\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\x12\x12\n\nselect_tab\x18\x06 \x01(\x08\"\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*G\n\x0e\x41lternateColor\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x14\n\x10REVERSED_DEFAULT\x10\x03\x12\x12\n\x0eSYSTEM_MESSAGE\x10\x04*7\n\x14ImagePlaceholderType\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06ITERM2\x10\x01\x12\t\n\x05KITTY\x10\x02\x42\x06\xa2\x02\x03ITM')
|
|
17
17
|
|
|
18
18
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
|
|
19
19
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'api_pb2', globals())
|
|
@@ -35,20 +35,20 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
35
35
|
_GETBUFFERRESPONSE.fields_by_name['num_lines_above_screen']._serialized_options = b'\030\001'
|
|
36
36
|
_CREATETABREQUEST.fields_by_name['command']._options = None
|
|
37
37
|
_CREATETABREQUEST.fields_by_name['command']._serialized_options = b'\030\001'
|
|
38
|
-
_SELECTIONMODE._serialized_start=
|
|
39
|
-
_SELECTIONMODE._serialized_end=
|
|
40
|
-
_NOTIFICATIONTYPE._serialized_start=
|
|
41
|
-
_NOTIFICATIONTYPE._serialized_end=
|
|
42
|
-
_MODIFIERS._serialized_start=
|
|
43
|
-
_MODIFIERS._serialized_end=
|
|
44
|
-
_VARIABLESCOPE._serialized_start=
|
|
45
|
-
_VARIABLESCOPE._serialized_end=
|
|
46
|
-
_PROMPTMONITORMODE._serialized_start=
|
|
47
|
-
_PROMPTMONITORMODE._serialized_end=
|
|
48
|
-
_ALTERNATECOLOR._serialized_start=
|
|
49
|
-
_ALTERNATECOLOR._serialized_end=
|
|
50
|
-
_IMAGEPLACEHOLDERTYPE._serialized_start=
|
|
51
|
-
_IMAGEPLACEHOLDERTYPE._serialized_end=
|
|
38
|
+
_SELECTIONMODE._serialized_start=26617
|
|
39
|
+
_SELECTIONMODE._serialized_end=26703
|
|
40
|
+
_NOTIFICATIONTYPE._serialized_start=26706
|
|
41
|
+
_NOTIFICATIONTYPE._serialized_end=27142
|
|
42
|
+
_MODIFIERS._serialized_start=27144
|
|
43
|
+
_MODIFIERS._serialized_end=27230
|
|
44
|
+
_VARIABLESCOPE._serialized_start=27232
|
|
45
|
+
_VARIABLESCOPE._serialized_end=27290
|
|
46
|
+
_PROMPTMONITORMODE._serialized_start=27292
|
|
47
|
+
_PROMPTMONITORMODE._serialized_end=27359
|
|
48
|
+
_ALTERNATECOLOR._serialized_start=27361
|
|
49
|
+
_ALTERNATECOLOR._serialized_end=27432
|
|
50
|
+
_IMAGEPLACEHOLDERTYPE._serialized_start=27434
|
|
51
|
+
_IMAGEPLACEHOLDERTYPE._serialized_end=27489
|
|
52
52
|
_CLIENTORIGINATEDMESSAGE._serialized_start=22
|
|
53
53
|
_CLIENTORIGINATEDMESSAGE._serialized_end=2217
|
|
54
54
|
_SERVERORIGINATEDMESSAGE._serialized_start=2220
|
|
@@ -460,23 +460,23 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
460
460
|
_SPLITTREENODE_SPLITTREELINK._serialized_start=25042
|
|
461
461
|
_SPLITTREENODE_SPLITTREELINK._serialized_end=25148
|
|
462
462
|
_LISTSESSIONSRESPONSE._serialized_start=25151
|
|
463
|
-
_LISTSESSIONSRESPONSE._serialized_end=
|
|
464
|
-
_LISTSESSIONSRESPONSE_WINDOW._serialized_start=
|
|
465
|
-
_LISTSESSIONSRESPONSE_WINDOW._serialized_end=
|
|
466
|
-
_LISTSESSIONSRESPONSE_TAB._serialized_start=
|
|
467
|
-
_LISTSESSIONSRESPONSE_TAB._serialized_end=
|
|
468
|
-
_CREATETABREQUEST._serialized_start=
|
|
469
|
-
_CREATETABREQUEST._serialized_end=
|
|
470
|
-
_CREATETABRESPONSE._serialized_start=
|
|
471
|
-
_CREATETABRESPONSE._serialized_end=
|
|
472
|
-
_CREATETABRESPONSE_STATUS._serialized_start=
|
|
473
|
-
_CREATETABRESPONSE_STATUS._serialized_end=
|
|
474
|
-
_SPLITPANEREQUEST._serialized_start=
|
|
475
|
-
_SPLITPANEREQUEST._serialized_end=
|
|
476
|
-
_SPLITPANEREQUEST_SPLITDIRECTION._serialized_start=
|
|
477
|
-
_SPLITPANEREQUEST_SPLITDIRECTION._serialized_end=
|
|
478
|
-
_SPLITPANERESPONSE._serialized_start=
|
|
479
|
-
_SPLITPANERESPONSE._serialized_end=
|
|
480
|
-
_SPLITPANERESPONSE_STATUS._serialized_start=
|
|
481
|
-
_SPLITPANERESPONSE_STATUS._serialized_end=
|
|
463
|
+
_LISTSESSIONSRESPONSE._serialized_end=25717
|
|
464
|
+
_LISTSESSIONSRESPONSE_WINDOW._serialized_start=25279
|
|
465
|
+
_LISTSESSIONSRESPONSE_WINDOW._serialized_end=25425
|
|
466
|
+
_LISTSESSIONSRESPONSE_TAB._serialized_start=25428
|
|
467
|
+
_LISTSESSIONSRESPONSE_TAB._serialized_end=25717
|
|
468
|
+
_CREATETABREQUEST._serialized_start=25720
|
|
469
|
+
_CREATETABREQUEST._serialized_end=25899
|
|
470
|
+
_CREATETABRESPONSE._serialized_start=25902
|
|
471
|
+
_CREATETABRESPONSE._serialized_end=26142
|
|
472
|
+
_CREATETABRESPONSE_STATUS._serialized_start=26028
|
|
473
|
+
_CREATETABRESPONSE_STATUS._serialized_end=26142
|
|
474
|
+
_SPLITPANEREQUEST._serialized_start=26145
|
|
475
|
+
_SPLITPANEREQUEST._serialized_end=26399
|
|
476
|
+
_SPLITPANEREQUEST_SPLITDIRECTION._serialized_start=26353
|
|
477
|
+
_SPLITPANEREQUEST_SPLITDIRECTION._serialized_end=26399
|
|
478
|
+
_SPLITPANERESPONSE._serialized_start=26402
|
|
479
|
+
_SPLITPANERESPONSE._serialized_end=26615
|
|
480
|
+
_SPLITPANERESPONSE_STATUS._serialized_start=26493
|
|
481
|
+
_SPLITPANERESPONSE_STATUS._serialized_end=26615
|
|
482
482
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -5450,8 +5450,13 @@ class ListSessionsResponse(_message.Message):
|
|
|
5450
5450
|
WINDOW_ID_FIELD_NUMBER: _builtins.int
|
|
5451
5451
|
FRAME_FIELD_NUMBER: _builtins.int
|
|
5452
5452
|
NUMBER_FIELD_NUMBER: _builtins.int
|
|
5453
|
+
SELECTED_TAB_ID_FIELD_NUMBER: _builtins.int
|
|
5453
5454
|
window_id: _builtins.str
|
|
5454
5455
|
number: _builtins.int
|
|
5456
|
+
selected_tab_id: _builtins.str
|
|
5457
|
+
"""uniqueId of the selected tab, so clients can determine the current tab
|
|
5458
|
+
without waiting for a focus notification. Added in protocol 1.18.
|
|
5459
|
+
"""
|
|
5455
5460
|
@_builtins.property
|
|
5456
5461
|
def tabs(self) -> _containers.RepeatedCompositeFieldContainer[Global___ListSessionsResponse.Tab]: ...
|
|
5457
5462
|
@_builtins.property
|
|
@@ -5463,10 +5468,11 @@ class ListSessionsResponse(_message.Message):
|
|
|
5463
5468
|
window_id: _builtins.str | None = ...,
|
|
5464
5469
|
frame: Global___Frame | None = ...,
|
|
5465
5470
|
number: _builtins.int | None = ...,
|
|
5471
|
+
selected_tab_id: _builtins.str | None = ...,
|
|
5466
5472
|
) -> None: ...
|
|
5467
|
-
_HasFieldArgType: _TypeAlias = _typing.Literal["frame", b"frame", "number", b"number", "window_id", b"window_id"] # noqa: Y015
|
|
5473
|
+
_HasFieldArgType: _TypeAlias = _typing.Literal["frame", b"frame", "number", b"number", "selected_tab_id", b"selected_tab_id", "window_id", b"window_id"] # noqa: Y015
|
|
5468
5474
|
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
|
|
5469
|
-
_ClearFieldArgType: _TypeAlias = _typing.Literal["frame", b"frame", "number", b"number", "tabs", b"tabs", "window_id", b"window_id"] # noqa: Y015
|
|
5475
|
+
_ClearFieldArgType: _TypeAlias = _typing.Literal["frame", b"frame", "number", b"number", "selected_tab_id", b"selected_tab_id", "tabs", b"tabs", "window_id", b"window_id"] # noqa: Y015
|
|
5470
5476
|
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
|
|
5471
5477
|
def WhichOneof(self, oneof_group: _Never) -> None: ...
|
|
5472
5478
|
|
|
@@ -5479,9 +5485,29 @@ class ListSessionsResponse(_message.Message):
|
|
|
5479
5485
|
TMUX_WINDOW_ID_FIELD_NUMBER: _builtins.int
|
|
5480
5486
|
TMUX_CONNECTION_ID_FIELD_NUMBER: _builtins.int
|
|
5481
5487
|
MINIMIZED_SESSIONS_FIELD_NUMBER: _builtins.int
|
|
5488
|
+
ACTIVE_SESSION_ID_FIELD_NUMBER: _builtins.int
|
|
5489
|
+
TAB_GROUP_ID_FIELD_NUMBER: _builtins.int
|
|
5490
|
+
TAB_GROUP_NAME_FIELD_NUMBER: _builtins.int
|
|
5491
|
+
TAB_GROUP_COLOR_FIELD_NUMBER: _builtins.int
|
|
5492
|
+
TAB_GROUP_COLLAPSED_FIELD_NUMBER: _builtins.int
|
|
5482
5493
|
tab_id: _builtins.str
|
|
5483
5494
|
tmux_window_id: _builtins.str
|
|
5484
5495
|
tmux_connection_id: _builtins.str
|
|
5496
|
+
active_session_id: _builtins.str
|
|
5497
|
+
"""guid of the tab's active session, so clients can determine the current
|
|
5498
|
+
session without waiting for a focus notification. Added in protocol 1.18.
|
|
5499
|
+
"""
|
|
5500
|
+
tab_group_id: _builtins.str
|
|
5501
|
+
"""Tab group membership. A tab group's identity is a UUID that rides on each
|
|
5502
|
+
member tab (there is no central registry); all members of a group carry
|
|
5503
|
+
the same name/color/collapsed values. tab_group_id is unset when the tab
|
|
5504
|
+
belongs to no group; the other three are meaningful only when it is set.
|
|
5505
|
+
The color is a hex string as produced by -[NSColor hexStringPreservingColorSpace]
|
|
5506
|
+
("#rrggbb" for sRGB, "p3#rrggbbrrggbb" for Display P3). Added in protocol 1.19.
|
|
5507
|
+
"""
|
|
5508
|
+
tab_group_name: _builtins.str
|
|
5509
|
+
tab_group_color: _builtins.str
|
|
5510
|
+
tab_group_collapsed: _builtins.bool
|
|
5485
5511
|
@_builtins.property
|
|
5486
5512
|
def root(self) -> Global___SplitTreeNode: ...
|
|
5487
5513
|
@_builtins.property
|
|
@@ -5494,10 +5520,15 @@ class ListSessionsResponse(_message.Message):
|
|
|
5494
5520
|
tmux_window_id: _builtins.str | None = ...,
|
|
5495
5521
|
tmux_connection_id: _builtins.str | None = ...,
|
|
5496
5522
|
minimized_sessions: _abc.Iterable[Global___SessionSummary] | None = ...,
|
|
5523
|
+
active_session_id: _builtins.str | None = ...,
|
|
5524
|
+
tab_group_id: _builtins.str | None = ...,
|
|
5525
|
+
tab_group_name: _builtins.str | None = ...,
|
|
5526
|
+
tab_group_color: _builtins.str | None = ...,
|
|
5527
|
+
tab_group_collapsed: _builtins.bool | None = ...,
|
|
5497
5528
|
) -> None: ...
|
|
5498
|
-
_HasFieldArgType: _TypeAlias = _typing.Literal["root", b"root", "tab_id", b"tab_id", "tmux_connection_id", b"tmux_connection_id", "tmux_window_id", b"tmux_window_id"] # noqa: Y015
|
|
5529
|
+
_HasFieldArgType: _TypeAlias = _typing.Literal["active_session_id", b"active_session_id", "root", b"root", "tab_group_collapsed", b"tab_group_collapsed", "tab_group_color", b"tab_group_color", "tab_group_id", b"tab_group_id", "tab_group_name", b"tab_group_name", "tab_id", b"tab_id", "tmux_connection_id", b"tmux_connection_id", "tmux_window_id", b"tmux_window_id"] # noqa: Y015
|
|
5499
5530
|
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
|
|
5500
|
-
_ClearFieldArgType: _TypeAlias = _typing.Literal["minimized_sessions", b"minimized_sessions", "root", b"root", "tab_id", b"tab_id", "tmux_connection_id", b"tmux_connection_id", "tmux_window_id", b"tmux_window_id"] # noqa: Y015
|
|
5531
|
+
_ClearFieldArgType: _TypeAlias = _typing.Literal["active_session_id", b"active_session_id", "minimized_sessions", b"minimized_sessions", "root", b"root", "tab_group_collapsed", b"tab_group_collapsed", "tab_group_color", b"tab_group_color", "tab_group_id", b"tab_group_id", "tab_group_name", b"tab_group_name", "tab_id", b"tab_id", "tmux_connection_id", b"tmux_connection_id", "tmux_window_id", b"tmux_window_id"] # noqa: Y015
|
|
5501
5532
|
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
|
|
5502
5533
|
def WhichOneof(self, oneof_group: _Never) -> None: ...
|
|
5503
5534
|
|
|
@@ -227,3 +227,14 @@ def check_supports_screenshot(connection):
|
|
|
227
227
|
raise AppVersionTooOld(
|
|
228
228
|
"This version of iTerm2 is too old to capture screenshots via " +
|
|
229
229
|
"the Python API. You should upgrade to run this script.")
|
|
230
|
+
|
|
231
|
+
def supports_tab_groups(connection):
|
|
232
|
+
"""Can you discover and modify tab groups?"""
|
|
233
|
+
min_ver = (1, 19)
|
|
234
|
+
return ge(connection.iterm2_protocol_version, min_ver)
|
|
235
|
+
|
|
236
|
+
def check_supports_tab_groups(connection):
|
|
237
|
+
if not supports_tab_groups(connection):
|
|
238
|
+
raise AppVersionTooOld(
|
|
239
|
+
"This version of iTerm2 is too old to control tab groups via " +
|
|
240
|
+
"the Python API. You should upgrade to run this script.")
|
|
@@ -865,14 +865,8 @@ async def async_invoke_function(
|
|
|
865
865
|
return await _async_call(connection, request)
|
|
866
866
|
|
|
867
867
|
|
|
868
|
-
|
|
869
|
-
"""
|
|
870
|
-
assert receiver
|
|
871
|
-
response = await iterm2.rpc.async_invoke_function(
|
|
872
|
-
connection,
|
|
873
|
-
invocation,
|
|
874
|
-
receiver=receiver,
|
|
875
|
-
timeout=timeout)
|
|
868
|
+
def _invocation_result(response):
|
|
869
|
+
"""Unwraps an invoke-function response, raising RPCException on error."""
|
|
876
870
|
which = response.invoke_function_response.WhichOneof('disposition')
|
|
877
871
|
if which == 'error':
|
|
878
872
|
if (response.invoke_function_response.error.status ==
|
|
@@ -884,6 +878,26 @@ async def async_invoke_method(connection, receiver, invocation, timeout):
|
|
|
884
878
|
response.invoke_function_response.error.error_reason))
|
|
885
879
|
return json.loads(response.invoke_function_response.success.json_result)
|
|
886
880
|
|
|
881
|
+
|
|
882
|
+
async def async_invoke_method(connection, receiver, invocation, timeout):
|
|
883
|
+
"""Convenience wrapper around async_invoke_function for methods."""
|
|
884
|
+
assert receiver
|
|
885
|
+
response = await iterm2.rpc.async_invoke_function(
|
|
886
|
+
connection,
|
|
887
|
+
invocation,
|
|
888
|
+
receiver=receiver,
|
|
889
|
+
timeout=timeout)
|
|
890
|
+
return _invocation_result(response)
|
|
891
|
+
|
|
892
|
+
|
|
893
|
+
async def async_invoke_app_function(connection, invocation, timeout=-1):
|
|
894
|
+
"""Convenience wrapper for invoking an app-scope (receiver-less) function."""
|
|
895
|
+
response = await iterm2.rpc.async_invoke_function(
|
|
896
|
+
connection,
|
|
897
|
+
invocation,
|
|
898
|
+
timeout=timeout)
|
|
899
|
+
return _invocation_result(response)
|
|
900
|
+
|
|
887
901
|
# Private --------------------------------------------------------------------
|
|
888
902
|
|
|
889
903
|
|
|
@@ -6,8 +6,10 @@ import typing
|
|
|
6
6
|
|
|
7
7
|
import iterm2.api_pb2
|
|
8
8
|
import iterm2.capabilities
|
|
9
|
+
import iterm2.color
|
|
9
10
|
import iterm2.rpc
|
|
10
11
|
import iterm2.session
|
|
12
|
+
import iterm2.tabgroup
|
|
11
13
|
import iterm2.util
|
|
12
14
|
|
|
13
15
|
|
|
@@ -51,7 +53,11 @@ class Tab:
|
|
|
51
53
|
root,
|
|
52
54
|
tmux_window_id=None,
|
|
53
55
|
tmux_connection_id=None,
|
|
54
|
-
minimized_sessions=[]
|
|
56
|
+
minimized_sessions=[],
|
|
57
|
+
tab_group_id=None,
|
|
58
|
+
tab_group_name=None,
|
|
59
|
+
tab_group_color=None,
|
|
60
|
+
tab_group_collapsed=False):
|
|
55
61
|
self.connection = connection
|
|
56
62
|
self.__tab_id = tab_id
|
|
57
63
|
self.__root = root
|
|
@@ -59,6 +65,10 @@ class Tab:
|
|
|
59
65
|
self.__tmux_window_id = tmux_window_id
|
|
60
66
|
self.__tmux_connection_id = tmux_connection_id
|
|
61
67
|
self.__minimized_sessions = list(minimized_sessions)
|
|
68
|
+
self.__tab_group_id = tab_group_id
|
|
69
|
+
self.__tab_group_name = tab_group_name
|
|
70
|
+
self.__tab_group_color = tab_group_color
|
|
71
|
+
self.__tab_group_collapsed = tab_group_collapsed
|
|
62
72
|
# pylint: enable=too-many-arguments
|
|
63
73
|
|
|
64
74
|
def __repr__(self):
|
|
@@ -76,6 +86,12 @@ class Tab:
|
|
|
76
86
|
"""Copies state from another tab into this one."""
|
|
77
87
|
self.__root = other.root
|
|
78
88
|
self.__minimized_sessions = list(other.minimized_sessions)
|
|
89
|
+
# pylint: disable=protected-access
|
|
90
|
+
self.__tab_group_id = other._Tab__tab_group_id
|
|
91
|
+
self.__tab_group_name = other._Tab__tab_group_name
|
|
92
|
+
self.__tab_group_color = other._Tab__tab_group_color
|
|
93
|
+
self.__tab_group_collapsed = other._Tab__tab_group_collapsed
|
|
94
|
+
# pylint: enable=protected-access
|
|
79
95
|
|
|
80
96
|
def update_session(self, session):
|
|
81
97
|
"""Replaces references to a session."""
|
|
@@ -93,6 +109,28 @@ class Tab:
|
|
|
93
109
|
assert self.__class__.delegate
|
|
94
110
|
return self.__class__.delegate.tab_delegate_get_window(self)
|
|
95
111
|
|
|
112
|
+
@property
|
|
113
|
+
def tab_group(self) -> typing.Optional['iterm2.tabgroup.TabGroup']:
|
|
114
|
+
"""
|
|
115
|
+
The tab group this tab belongs to, or `None` if it is not in a group.
|
|
116
|
+
|
|
117
|
+
A tab group is a named, colored collection of adjacent tabs. Its members
|
|
118
|
+
are always kept consecutive in the tab bar; iTerm2 reorders tabs as
|
|
119
|
+
needed to maintain that invariant.
|
|
120
|
+
|
|
121
|
+
:returns: A :class:`~iterm2.tabgroup.TabGroup` or `None`.
|
|
122
|
+
"""
|
|
123
|
+
if not self.__tab_group_id:
|
|
124
|
+
return None
|
|
125
|
+
color = iterm2.color.Color.from_hex(self.__tab_group_color) if (
|
|
126
|
+
self.__tab_group_color) else None
|
|
127
|
+
return iterm2.tabgroup.TabGroup(
|
|
128
|
+
self.connection,
|
|
129
|
+
self.__tab_group_id,
|
|
130
|
+
self.__tab_group_name or "",
|
|
131
|
+
color,
|
|
132
|
+
self.__tab_group_collapsed)
|
|
133
|
+
|
|
96
134
|
@property
|
|
97
135
|
def tmux_connection_id(self):
|
|
98
136
|
"""Returns the connection ID."""
|
|
@@ -380,3 +418,51 @@ class Tab:
|
|
|
380
418
|
raise iterm2.rpc.RPCException(
|
|
381
419
|
"No such window {}".format(window_id))
|
|
382
420
|
return window
|
|
421
|
+
|
|
422
|
+
async def async_add_to_tab_group(
|
|
423
|
+
self, group: 'iterm2.tabgroup.TabGroup') -> None:
|
|
424
|
+
"""
|
|
425
|
+
Adds this tab to an existing tab group.
|
|
426
|
+
|
|
427
|
+
If the tab already belonged to a different group, it is moved out of
|
|
428
|
+
that group and into this one. iTerm2 reorders tabs so the group's
|
|
429
|
+
members remain consecutive.
|
|
430
|
+
|
|
431
|
+
The group must be in the same window as this tab.
|
|
432
|
+
|
|
433
|
+
:param group: The :class:`~iterm2.tabgroup.TabGroup` to join.
|
|
434
|
+
|
|
435
|
+
:throws: :class:`~iterm2.rpc.RPCException` if something goes wrong (for
|
|
436
|
+
example, if the group is not in this tab's window).
|
|
437
|
+
"""
|
|
438
|
+
iterm2.capabilities.check_supports_tab_groups(self.connection)
|
|
439
|
+
window = self.window
|
|
440
|
+
if window is None:
|
|
441
|
+
raise iterm2.rpc.RPCException(
|
|
442
|
+
"Tab {} is not in a window".format(self.tab_id))
|
|
443
|
+
invocation = iterm2.util.invocation_string(
|
|
444
|
+
"iterm2.add_tab_to_group",
|
|
445
|
+
{"tab_id": self.tab_id, "group_id": group.group_id})
|
|
446
|
+
await iterm2.rpc.async_invoke_method(
|
|
447
|
+
self.connection, window.window_id, invocation, -1)
|
|
448
|
+
|
|
449
|
+
async def async_remove_from_tab_group(self) -> None:
|
|
450
|
+
"""
|
|
451
|
+
Removes this tab from its tab group, if any.
|
|
452
|
+
|
|
453
|
+
iTerm2 moves the tab out of the group so the remaining members stay
|
|
454
|
+
consecutive. If the tab was the group's only member, the group is
|
|
455
|
+
dissolved. This is a no-op if the tab is not in a group.
|
|
456
|
+
|
|
457
|
+
:throws: :class:`~iterm2.rpc.RPCException` if something goes wrong.
|
|
458
|
+
"""
|
|
459
|
+
iterm2.capabilities.check_supports_tab_groups(self.connection)
|
|
460
|
+
window = self.window
|
|
461
|
+
if window is None:
|
|
462
|
+
raise iterm2.rpc.RPCException(
|
|
463
|
+
"Tab {} is not in a window".format(self.tab_id))
|
|
464
|
+
invocation = iterm2.util.invocation_string(
|
|
465
|
+
"iterm2.remove_tab_from_group",
|
|
466
|
+
{"tab_id": self.tab_id})
|
|
467
|
+
await iterm2.rpc.async_invoke_method(
|
|
468
|
+
self.connection, window.window_id, invocation, -1)
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"""Provides a class that represents an iTerm2 tab group."""
|
|
2
|
+
import typing
|
|
3
|
+
|
|
4
|
+
import iterm2.capabilities
|
|
5
|
+
import iterm2.color
|
|
6
|
+
import iterm2.rpc
|
|
7
|
+
import iterm2.util
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TabGroup:
|
|
11
|
+
"""Represents a tab group.
|
|
12
|
+
|
|
13
|
+
A tab group is a named, colored collection of adjacent tabs in a window.
|
|
14
|
+
Its members are always kept consecutive in the tab bar: iTerm2 reorders
|
|
15
|
+
tabs as needed to maintain that invariant when membership changes.
|
|
16
|
+
|
|
17
|
+
Don't create this yourself. Instead, get one from :attr:`iterm2.Tab.tab_group`
|
|
18
|
+
or :attr:`iterm2.Window.tab_groups`, or create one with
|
|
19
|
+
:meth:`iterm2.Window.async_create_tab_group`.
|
|
20
|
+
|
|
21
|
+
The `name`, `color`, and `collapsed` values reflect the state at the time
|
|
22
|
+
this object was fetched. After a mutation, re-fetch the app to observe the
|
|
23
|
+
updated state.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
def __init__(
|
|
27
|
+
self,
|
|
28
|
+
connection,
|
|
29
|
+
group_id: str,
|
|
30
|
+
name: str,
|
|
31
|
+
color: typing.Optional[iterm2.color.Color],
|
|
32
|
+
collapsed: bool):
|
|
33
|
+
self.connection = connection
|
|
34
|
+
self.__group_id = group_id
|
|
35
|
+
self.__name = name
|
|
36
|
+
self.__color = color
|
|
37
|
+
self.__collapsed = collapsed
|
|
38
|
+
|
|
39
|
+
def __repr__(self):
|
|
40
|
+
return "<TabGroup id=%s name=%s>" % (self.__group_id, repr(self.__name))
|
|
41
|
+
|
|
42
|
+
def __eq__(self, other):
|
|
43
|
+
if not isinstance(other, TabGroup):
|
|
44
|
+
return NotImplemented
|
|
45
|
+
return self.__group_id == other.group_id
|
|
46
|
+
|
|
47
|
+
def __hash__(self):
|
|
48
|
+
return hash(self.__group_id)
|
|
49
|
+
|
|
50
|
+
@property
|
|
51
|
+
def group_id(self) -> str:
|
|
52
|
+
"""
|
|
53
|
+
A tab group's unique identifier.
|
|
54
|
+
|
|
55
|
+
The identity is stable: it travels with the group's tabs, even if they
|
|
56
|
+
are dragged to another window.
|
|
57
|
+
|
|
58
|
+
:returns: The group's identifier, a string.
|
|
59
|
+
"""
|
|
60
|
+
return self.__group_id
|
|
61
|
+
|
|
62
|
+
@property
|
|
63
|
+
def name(self) -> str:
|
|
64
|
+
"""
|
|
65
|
+
:returns: The group's name, as shown in its tab-bar chip.
|
|
66
|
+
"""
|
|
67
|
+
return self.__name
|
|
68
|
+
|
|
69
|
+
@property
|
|
70
|
+
def color(self) -> typing.Optional[iterm2.color.Color]:
|
|
71
|
+
"""
|
|
72
|
+
:returns: The group's color, or `None` if it has none.
|
|
73
|
+
"""
|
|
74
|
+
return self.__color
|
|
75
|
+
|
|
76
|
+
@property
|
|
77
|
+
def collapsed(self) -> bool:
|
|
78
|
+
"""
|
|
79
|
+
:returns: Whether the group is collapsed (its members hidden in the tab
|
|
80
|
+
bar).
|
|
81
|
+
"""
|
|
82
|
+
return self.__collapsed
|
|
83
|
+
|
|
84
|
+
async def async_set_name(self, name: str) -> None:
|
|
85
|
+
"""
|
|
86
|
+
Renames the group. The new name applies to every member tab.
|
|
87
|
+
|
|
88
|
+
:param name: The new name.
|
|
89
|
+
|
|
90
|
+
:throws: :class:`~iterm2.rpc.RPCException` if something goes wrong.
|
|
91
|
+
"""
|
|
92
|
+
iterm2.capabilities.check_supports_tab_groups(self.connection)
|
|
93
|
+
invocation = iterm2.util.invocation_string(
|
|
94
|
+
"iterm2.set_tab_group_name",
|
|
95
|
+
{"group_id": self.__group_id, "name": name})
|
|
96
|
+
await iterm2.rpc.async_invoke_app_function(self.connection, invocation)
|
|
97
|
+
|
|
98
|
+
async def async_set_color(self, color: iterm2.color.Color) -> None:
|
|
99
|
+
"""
|
|
100
|
+
Changes the group's color. The new color applies to every member tab.
|
|
101
|
+
|
|
102
|
+
:param color: The new color.
|
|
103
|
+
|
|
104
|
+
:throws: :class:`~iterm2.rpc.RPCException` if something goes wrong.
|
|
105
|
+
"""
|
|
106
|
+
iterm2.capabilities.check_supports_tab_groups(self.connection)
|
|
107
|
+
invocation = iterm2.util.invocation_string(
|
|
108
|
+
"iterm2.set_tab_group_color",
|
|
109
|
+
{"group_id": self.__group_id, "color": color.hex})
|
|
110
|
+
await iterm2.rpc.async_invoke_app_function(self.connection, invocation)
|
|
111
|
+
|
|
112
|
+
async def async_set_collapsed(self, collapsed: bool) -> bool:
|
|
113
|
+
"""
|
|
114
|
+
Collapses or expands the group.
|
|
115
|
+
|
|
116
|
+
Collapsing hides the group's members in the tab bar. It can be refused
|
|
117
|
+
when the group comprises the entire window (there would be no tab left
|
|
118
|
+
to select), in which case this returns `False`.
|
|
119
|
+
|
|
120
|
+
:param collapsed: `True` to collapse, `False` to expand.
|
|
121
|
+
|
|
122
|
+
:returns: The group's collapsed state after the change.
|
|
123
|
+
|
|
124
|
+
:throws: :class:`~iterm2.rpc.RPCException` if something goes wrong.
|
|
125
|
+
"""
|
|
126
|
+
iterm2.capabilities.check_supports_tab_groups(self.connection)
|
|
127
|
+
invocation = iterm2.util.invocation_string(
|
|
128
|
+
"iterm2.set_tab_group_collapsed",
|
|
129
|
+
{"group_id": self.__group_id, "collapsed": 1 if collapsed else 0})
|
|
130
|
+
return await iterm2.rpc.async_invoke_app_function(
|
|
131
|
+
self.connection, invocation)
|
|
@@ -5,11 +5,14 @@ import typing
|
|
|
5
5
|
|
|
6
6
|
import iterm2.api_pb2
|
|
7
7
|
import iterm2.arrangement
|
|
8
|
+
import iterm2.capabilities
|
|
9
|
+
import iterm2.color
|
|
8
10
|
import iterm2.connection
|
|
9
11
|
import iterm2.profile
|
|
10
12
|
import iterm2.rpc
|
|
11
13
|
import iterm2.session
|
|
12
14
|
import iterm2.tab
|
|
15
|
+
import iterm2.tabgroup
|
|
13
16
|
import iterm2.transaction
|
|
14
17
|
import iterm2.util
|
|
15
18
|
|
|
@@ -149,24 +152,40 @@ class Window:
|
|
|
149
152
|
minimized_sessions = [
|
|
150
153
|
iterm2.session.Session(connection, None, summary)
|
|
151
154
|
for summary in (tab.minimized_sessions or [])]
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
155
|
+
new_tab = iterm2.tab.Tab(
|
|
156
|
+
connection,
|
|
157
|
+
tab.tab_id,
|
|
158
|
+
root,
|
|
159
|
+
tmux_window_id,
|
|
160
|
+
tab.tmux_connection_id,
|
|
161
|
+
minimized_sessions,
|
|
162
|
+
tab.tab_group_id if tab.HasField("tab_group_id") else None,
|
|
163
|
+
tab.tab_group_name if tab.HasField("tab_group_name") else None,
|
|
164
|
+
tab.tab_group_color if tab.HasField("tab_group_color") else None,
|
|
165
|
+
tab.tab_group_collapsed if tab.HasField(
|
|
166
|
+
"tab_group_collapsed") else None)
|
|
167
|
+
# protocol 1.18+ reports the active session here, so current_session
|
|
168
|
+
# is correct straight from a list-sessions refresh without waiting
|
|
169
|
+
# for a focus notification. Older servers leave it unset.
|
|
170
|
+
if tab.HasField("active_session_id"):
|
|
171
|
+
new_tab.active_session_id = tab.active_session_id
|
|
172
|
+
tabs.append(new_tab)
|
|
160
173
|
|
|
161
174
|
if not tabs:
|
|
162
175
|
return None
|
|
163
176
|
|
|
164
|
-
|
|
177
|
+
new_window = iterm2.window.Window(
|
|
165
178
|
connection,
|
|
166
179
|
window.window_id,
|
|
167
180
|
tabs,
|
|
168
181
|
window.frame,
|
|
169
182
|
window.number)
|
|
183
|
+
# protocol 1.18+ reports the selected tab here, so current_tab is
|
|
184
|
+
# correct straight from a list-sessions refresh without waiting for a
|
|
185
|
+
# focus notification. Older servers leave it unset.
|
|
186
|
+
if window.HasField("selected_tab_id"):
|
|
187
|
+
new_window.selected_tab_id = window.selected_tab_id
|
|
188
|
+
return new_window
|
|
170
189
|
|
|
171
190
|
# pylint: disable=too-many-arguments
|
|
172
191
|
def __init__(self, connection, window_id, tabs, frame, number):
|
|
@@ -255,6 +274,61 @@ class Window:
|
|
|
255
274
|
self.connection,
|
|
256
275
|
assignments=[(self.window_id, tab_ids)])
|
|
257
276
|
|
|
277
|
+
@property
|
|
278
|
+
def tab_groups(self) -> typing.List[iterm2.tabgroup.TabGroup]:
|
|
279
|
+
"""
|
|
280
|
+
The distinct tab groups in this window, in tab order.
|
|
281
|
+
|
|
282
|
+
A tab group is a named, colored collection of adjacent tabs.
|
|
283
|
+
|
|
284
|
+
:returns: A list of :class:`~iterm2.tabgroup.TabGroup`.
|
|
285
|
+
"""
|
|
286
|
+
result: typing.List[iterm2.tabgroup.TabGroup] = []
|
|
287
|
+
seen: typing.Set[str] = set()
|
|
288
|
+
for tab in self.__tabs:
|
|
289
|
+
group = tab.tab_group
|
|
290
|
+
if group is None or group.group_id in seen:
|
|
291
|
+
continue
|
|
292
|
+
seen.add(group.group_id)
|
|
293
|
+
result.append(group)
|
|
294
|
+
return result
|
|
295
|
+
|
|
296
|
+
async def async_create_tab_group(
|
|
297
|
+
self,
|
|
298
|
+
name: str,
|
|
299
|
+
tabs: typing.List[iterm2.tab.Tab],
|
|
300
|
+
color: typing.Optional[iterm2.color.Color] = None) -> (
|
|
301
|
+
iterm2.tabgroup.TabGroup):
|
|
302
|
+
"""
|
|
303
|
+
Creates a new tab group from the given tabs.
|
|
304
|
+
|
|
305
|
+
All tabs must belong to this window. A tab already in another group is
|
|
306
|
+
moved into the new one. iTerm2 reorders tabs so the new group's members
|
|
307
|
+
are consecutive.
|
|
308
|
+
|
|
309
|
+
:param name: The name for the new group.
|
|
310
|
+
:param tabs: The tabs to place in the group. Must be non-empty and all
|
|
311
|
+
in this window.
|
|
312
|
+
:param color: The group's color, or `None` to have iTerm2 pick one.
|
|
313
|
+
|
|
314
|
+
:returns: The newly created :class:`~iterm2.tabgroup.TabGroup`. Its
|
|
315
|
+
`color` is `None` when iTerm2 picked one automatically; re-fetch the
|
|
316
|
+
app to observe the assigned color.
|
|
317
|
+
|
|
318
|
+
:throws: :class:`~iterm2.rpc.RPCException` if something goes wrong (for
|
|
319
|
+
example, if a tab is not in this window).
|
|
320
|
+
"""
|
|
321
|
+
iterm2.capabilities.check_supports_tab_groups(self.connection)
|
|
322
|
+
invocation = iterm2.util.invocation_string(
|
|
323
|
+
"iterm2.create_tab_group",
|
|
324
|
+
{"tab_ids": list(map(lambda tab: tab.tab_id, tabs)),
|
|
325
|
+
"name": name,
|
|
326
|
+
"color": color.hex if color else ""})
|
|
327
|
+
group_id = await iterm2.rpc.async_invoke_method(
|
|
328
|
+
self.connection, self.__window_id, invocation, -1)
|
|
329
|
+
return iterm2.tabgroup.TabGroup(
|
|
330
|
+
self.connection, group_id, name, color, False)
|
|
331
|
+
|
|
258
332
|
@property
|
|
259
333
|
def current_tab(self) -> typing.Optional[iterm2.tab.Tab]:
|
|
260
334
|
"""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|