terminal.pb.go RawHistoryFolder

1// Terminal I/O, UI fences, and bounded preview viewports.
2
3// Code generated by protoc-gen-go. DO NOT EDIT.
4// versions:
5// 	protoc-gen-go v1.36.12
6// 	protoc        (unknown)
7// source: terminal.proto
8
9package wire
10
11import (
12	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
13	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
14	reflect "reflect"
15	sync "sync"
16	unsafe "unsafe"
17)
18
19const (
20	// Verify that this generated code is sufficiently up-to-date.
21	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
22	// Verify that runtime/protoimpl is sufficiently up-to-date.
23	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
24)
25
26// ViewContext is the committed boundary of one output state.
27type ViewContext struct {
28	state         protoimpl.MessageState  `protogen:"open.v1"`
29	Publication   uint64                  `protobuf:"varint,1,opt,name=publication,proto3" json:"publication,omitempty"`
30	Route         *CommittedRouteIdentity `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"`
31	TabId         string                  `protobuf:"bytes,3,opt,name=tab_id,json=tabId,proto3" json:"tab_id,omitempty"`
32	FocusedPaneId string                  `protobuf:"bytes,4,opt,name=focused_pane_id,json=focusedPaneId,proto3" json:"focused_pane_id,omitempty"`
33	unknownFields protoimpl.UnknownFields
34	sizeCache     protoimpl.SizeCache
35}
36
37func (x *ViewContext) Reset() {
38	*x = ViewContext{}
39	mi := &file_terminal_proto_msgTypes[0]
40	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
41	ms.StoreMessageInfo(mi)
42}
43
44func (x *ViewContext) String() string {
45	return protoimpl.X.MessageStringOf(x)
46}
47
48func (*ViewContext) ProtoMessage() {}
49
50func (x *ViewContext) ProtoReflect() protoreflect.Message {
51	mi := &file_terminal_proto_msgTypes[0]
52	if x != nil {
53		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
54		if ms.LoadMessageInfo() == nil {
55			ms.StoreMessageInfo(mi)
56		}
57		return ms
58	}
59	return mi.MessageOf(x)
60}
61
62// Deprecated: Use ViewContext.ProtoReflect.Descriptor instead.
63func (*ViewContext) Descriptor() ([]byte, []int) {
64	return file_terminal_proto_rawDescGZIP(), []int{0}
65}
66
67func (x *ViewContext) GetPublication() uint64 {
68	if x != nil {
69		return x.Publication
70	}
71	return 0
72}
73
74func (x *ViewContext) GetRoute() *CommittedRouteIdentity {
75	if x != nil {
76		return x.Route
77	}
78	return nil
79}
80
81func (x *ViewContext) GetTabId() string {
82	if x != nil {
83		return x.TabId
84	}
85	return ""
86}
87
88func (x *ViewContext) GetFocusedPaneId() string {
89	if x != nil {
90		return x.FocusedPaneId
91	}
92	return ""
93}
94
95// Output is one terminal state. Terminal data uses the explicit encoding
96// enum below; converters compress only full snapshots at the frozen
97// threshold and only when smaller.
98type Output struct {
99	state        protoimpl.MessageState `protogen:"open.v1"`
100	Epoch        uint64                 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"`
101	Base         uint64                 `protobuf:"varint,2,opt,name=base,proto3" json:"base,omitempty"`
102	NewState     uint64                 `protobuf:"varint,3,opt,name=new_state,json=newState,proto3" json:"new_state,omitempty"`
103	Echo         uint64                 `protobuf:"varint,4,opt,name=echo,proto3" json:"echo,omitempty"`
104	ViewRevision uint64                 `protobuf:"varint,5,opt,name=view_revision,json=viewRevision,proto3" json:"view_revision,omitempty"`
105	Cols         uint32                 `protobuf:"varint,6,opt,name=cols,proto3" json:"cols,omitempty"`
106	Rows         uint32                 `protobuf:"varint,7,opt,name=rows,proto3" json:"rows,omitempty"`
107	Full         bool                   `protobuf:"varint,8,opt,name=full,proto3" json:"full,omitempty"`
108	Context      *ViewContext           `protobuf:"bytes,9,opt,name=context,proto3" json:"context,omitempty"` // optional pointer
109	// Closed encoding taxonomy: 0 = raw, 1 = zlib (full snapshots only).
110	Encoding           uint32 `protobuf:"varint,10,opt,name=encoding,proto3" json:"encoding,omitempty"`
111	UncompressedLength uint64 `protobuf:"varint,11,opt,name=uncompressed_length,json=uncompressedLength,proto3" json:"uncompressed_length,omitempty"`
112	Data               []byte `protobuf:"bytes,12,opt,name=data,proto3" json:"data,omitempty"`
113	unknownFields      protoimpl.UnknownFields
114	sizeCache          protoimpl.SizeCache
115}
116
117func (x *Output) Reset() {
118	*x = Output{}
119	mi := &file_terminal_proto_msgTypes[1]
120	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
121	ms.StoreMessageInfo(mi)
122}
123
124func (x *Output) String() string {
125	return protoimpl.X.MessageStringOf(x)
126}
127
128func (*Output) ProtoMessage() {}
129
130func (x *Output) ProtoReflect() protoreflect.Message {
131	mi := &file_terminal_proto_msgTypes[1]
132	if x != nil {
133		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
134		if ms.LoadMessageInfo() == nil {
135			ms.StoreMessageInfo(mi)
136		}
137		return ms
138	}
139	return mi.MessageOf(x)
140}
141
142// Deprecated: Use Output.ProtoReflect.Descriptor instead.
143func (*Output) Descriptor() ([]byte, []int) {
144	return file_terminal_proto_rawDescGZIP(), []int{1}
145}
146
147func (x *Output) GetEpoch() uint64 {
148	if x != nil {
149		return x.Epoch
150	}
151	return 0
152}
153
154func (x *Output) GetBase() uint64 {
155	if x != nil {
156		return x.Base
157	}
158	return 0
159}
160
161func (x *Output) GetNewState() uint64 {
162	if x != nil {
163		return x.NewState
164	}
165	return 0
166}
167
168func (x *Output) GetEcho() uint64 {
169	if x != nil {
170		return x.Echo
171	}
172	return 0
173}
174
175func (x *Output) GetViewRevision() uint64 {
176	if x != nil {
177		return x.ViewRevision
178	}
179	return 0
180}
181
182func (x *Output) GetCols() uint32 {
183	if x != nil {
184		return x.Cols
185	}
186	return 0
187}
188
189func (x *Output) GetRows() uint32 {
190	if x != nil {
191		return x.Rows
192	}
193	return 0
194}
195
196func (x *Output) GetFull() bool {
197	if x != nil {
198		return x.Full
199	}
200	return false
201}
202
203func (x *Output) GetContext() *ViewContext {
204	if x != nil {
205		return x.Context
206	}
207	return nil
208}
209
210func (x *Output) GetEncoding() uint32 {
211	if x != nil {
212		return x.Encoding
213	}
214	return 0
215}
216
217func (x *Output) GetUncompressedLength() uint64 {
218	if x != nil {
219		return x.UncompressedLength
220	}
221	return 0
222}
223
224func (x *Output) GetData() []byte {
225	if x != nil {
226		return x.Data
227	}
228	return nil
229}
230
231// Ack cumulatively acknowledges one epoch.
232type Ack struct {
233	state         protoimpl.MessageState `protogen:"open.v1"`
234	Epoch         uint64                 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"`
235	State         uint64                 `protobuf:"varint,2,opt,name=state,proto3" json:"state,omitempty"`
236	unknownFields protoimpl.UnknownFields
237	sizeCache     protoimpl.SizeCache
238}
239
240func (x *Ack) Reset() {
241	*x = Ack{}
242	mi := &file_terminal_proto_msgTypes[2]
243	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
244	ms.StoreMessageInfo(mi)
245}
246
247func (x *Ack) String() string {
248	return protoimpl.X.MessageStringOf(x)
249}
250
251func (*Ack) ProtoMessage() {}
252
253func (x *Ack) ProtoReflect() protoreflect.Message {
254	mi := &file_terminal_proto_msgTypes[2]
255	if x != nil {
256		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
257		if ms.LoadMessageInfo() == nil {
258			ms.StoreMessageInfo(mi)
259		}
260		return ms
261	}
262	return mi.MessageOf(x)
263}
264
265// Deprecated: Use Ack.ProtoReflect.Descriptor instead.
266func (*Ack) Descriptor() ([]byte, []int) {
267	return file_terminal_proto_rawDescGZIP(), []int{2}
268}
269
270func (x *Ack) GetEpoch() uint64 {
271	if x != nil {
272		return x.Epoch
273	}
274	return 0
275}
276
277func (x *Ack) GetState() uint64 {
278	if x != nil {
279		return x.State
280	}
281	return 0
282}
283
284// Input carries client keystrokes and pastes.
285type Input struct {
286	state         protoimpl.MessageState `protogen:"open.v1"`
287	InputSeq      uint64                 `protobuf:"varint,1,opt,name=input_seq,json=inputSeq,proto3" json:"input_seq,omitempty"`
288	ActionId      uint64                 `protobuf:"varint,2,opt,name=action_id,json=actionId,proto3" json:"action_id,omitempty"`
289	Data          []byte                 `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
290	unknownFields protoimpl.UnknownFields
291	sizeCache     protoimpl.SizeCache
292}
293
294func (x *Input) Reset() {
295	*x = Input{}
296	mi := &file_terminal_proto_msgTypes[3]
297	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
298	ms.StoreMessageInfo(mi)
299}
300
301func (x *Input) String() string {
302	return protoimpl.X.MessageStringOf(x)
303}
304
305func (*Input) ProtoMessage() {}
306
307func (x *Input) ProtoReflect() protoreflect.Message {
308	mi := &file_terminal_proto_msgTypes[3]
309	if x != nil {
310		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
311		if ms.LoadMessageInfo() == nil {
312			ms.StoreMessageInfo(mi)
313		}
314		return ms
315	}
316	return mi.MessageOf(x)
317}
318
319// Deprecated: Use Input.ProtoReflect.Descriptor instead.
320func (*Input) Descriptor() ([]byte, []int) {
321	return file_terminal_proto_rawDescGZIP(), []int{3}
322}
323
324func (x *Input) GetInputSeq() uint64 {
325	if x != nil {
326		return x.InputSeq
327	}
328	return 0
329}
330
331func (x *Input) GetActionId() uint64 {
332	if x != nil {
333		return x.ActionId
334	}
335	return 0
336}
337
338func (x *Input) GetData() []byte {
339	if x != nil {
340		return x.Data
341	}
342	return nil
343}
344
345// Resize carries a geometry claim.
346type Resize struct {
347	state         protoimpl.MessageState `protogen:"open.v1"`
348	Cols          uint32                 `protobuf:"varint,1,opt,name=cols,proto3" json:"cols,omitempty"`
349	Rows          uint32                 `protobuf:"varint,2,opt,name=rows,proto3" json:"rows,omitempty"`
350	PixelWidth    uint32                 `protobuf:"varint,3,opt,name=pixel_width,json=pixelWidth,proto3" json:"pixel_width,omitempty"`
351	PixelHeight   uint32                 `protobuf:"varint,4,opt,name=pixel_height,json=pixelHeight,proto3" json:"pixel_height,omitempty"`
352	unknownFields protoimpl.UnknownFields
353	sizeCache     protoimpl.SizeCache
354}
355
356func (x *Resize) Reset() {
357	*x = Resize{}
358	mi := &file_terminal_proto_msgTypes[4]
359	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
360	ms.StoreMessageInfo(mi)
361}
362
363func (x *Resize) String() string {
364	return protoimpl.X.MessageStringOf(x)
365}
366
367func (*Resize) ProtoMessage() {}
368
369func (x *Resize) ProtoReflect() protoreflect.Message {
370	mi := &file_terminal_proto_msgTypes[4]
371	if x != nil {
372		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
373		if ms.LoadMessageInfo() == nil {
374			ms.StoreMessageInfo(mi)
375		}
376		return ms
377	}
378	return mi.MessageOf(x)
379}
380
381// Deprecated: Use Resize.ProtoReflect.Descriptor instead.
382func (*Resize) Descriptor() ([]byte, []int) {
383	return file_terminal_proto_rawDescGZIP(), []int{4}
384}
385
386func (x *Resize) GetCols() uint32 {
387	if x != nil {
388		return x.Cols
389	}
390	return 0
391}
392
393func (x *Resize) GetRows() uint32 {
394	if x != nil {
395		return x.Rows
396	}
397	return 0
398}
399
400func (x *Resize) GetPixelWidth() uint32 {
401	if x != nil {
402		return x.PixelWidth
403	}
404	return 0
405}
406
407func (x *Resize) GetPixelHeight() uint32 {
408	if x != nil {
409		return x.PixelHeight
410	}
411	return 0
412}
413
414// Theme carries the 57-byte fixed terminal theme block field by field.
415type Theme struct {
416	state         protoimpl.MessageState `protogen:"open.v1"`
417	HasForeground bool                   `protobuf:"varint,1,opt,name=has_foreground,json=hasForeground,proto3" json:"has_foreground,omitempty"`
418	Foreground    *RGB                   `protobuf:"bytes,2,opt,name=foreground,proto3" json:"foreground,omitempty"`
419	HasBackground bool                   `protobuf:"varint,3,opt,name=has_background,json=hasBackground,proto3" json:"has_background,omitempty"`
420	Background    *RGB                   `protobuf:"bytes,4,opt,name=background,proto3" json:"background,omitempty"`
421	TrueColor     bool                   `protobuf:"varint,5,opt,name=true_color,json=trueColor,proto3" json:"true_color,omitempty"`
422	SchemeKnown   bool                   `protobuf:"varint,6,opt,name=scheme_known,json=schemeKnown,proto3" json:"scheme_known,omitempty"`
423	Light         bool                   `protobuf:"varint,7,opt,name=light,proto3" json:"light,omitempty"`
424	PaletteKnown  uint32                 `protobuf:"varint,8,opt,name=palette_known,json=paletteKnown,proto3" json:"palette_known,omitempty"`
425	Palette       []*RGB                 `protobuf:"bytes,9,rep,name=palette,proto3" json:"palette,omitempty"` // exactly 16 entries
426	unknownFields protoimpl.UnknownFields
427	sizeCache     protoimpl.SizeCache
428}
429
430func (x *Theme) Reset() {
431	*x = Theme{}
432	mi := &file_terminal_proto_msgTypes[5]
433	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
434	ms.StoreMessageInfo(mi)
435}
436
437func (x *Theme) String() string {
438	return protoimpl.X.MessageStringOf(x)
439}
440
441func (*Theme) ProtoMessage() {}
442
443func (x *Theme) ProtoReflect() protoreflect.Message {
444	mi := &file_terminal_proto_msgTypes[5]
445	if x != nil {
446		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
447		if ms.LoadMessageInfo() == nil {
448			ms.StoreMessageInfo(mi)
449		}
450		return ms
451	}
452	return mi.MessageOf(x)
453}
454
455// Deprecated: Use Theme.ProtoReflect.Descriptor instead.
456func (*Theme) Descriptor() ([]byte, []int) {
457	return file_terminal_proto_rawDescGZIP(), []int{5}
458}
459
460func (x *Theme) GetHasForeground() bool {
461	if x != nil {
462		return x.HasForeground
463	}
464	return false
465}
466
467func (x *Theme) GetForeground() *RGB {
468	if x != nil {
469		return x.Foreground
470	}
471	return nil
472}
473
474func (x *Theme) GetHasBackground() bool {
475	if x != nil {
476		return x.HasBackground
477	}
478	return false
479}
480
481func (x *Theme) GetBackground() *RGB {
482	if x != nil {
483		return x.Background
484	}
485	return nil
486}
487
488func (x *Theme) GetTrueColor() bool {
489	if x != nil {
490		return x.TrueColor
491	}
492	return false
493}
494
495func (x *Theme) GetSchemeKnown() bool {
496	if x != nil {
497		return x.SchemeKnown
498	}
499	return false
500}
501
502func (x *Theme) GetLight() bool {
503	if x != nil {
504		return x.Light
505	}
506	return false
507}
508
509func (x *Theme) GetPaletteKnown() uint32 {
510	if x != nil {
511		return x.PaletteKnown
512	}
513	return 0
514}
515
516func (x *Theme) GetPalette() []*RGB {
517	if x != nil {
518		return x.Palette
519	}
520	return nil
521}
522
523// ImagePush carries one Kitty graphics payload.
524type ImagePush struct {
525	state         protoimpl.MessageState `protogen:"open.v1"`
526	InputSeq      uint64                 `protobuf:"varint,1,opt,name=input_seq,json=inputSeq,proto3" json:"input_seq,omitempty"`
527	Mime          string                 `protobuf:"bytes,2,opt,name=mime,proto3" json:"mime,omitempty"`
528	Data          []byte                 `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
529	unknownFields protoimpl.UnknownFields
530	sizeCache     protoimpl.SizeCache
531}
532
533func (x *ImagePush) Reset() {
534	*x = ImagePush{}
535	mi := &file_terminal_proto_msgTypes[6]
536	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
537	ms.StoreMessageInfo(mi)
538}
539
540func (x *ImagePush) String() string {
541	return protoimpl.X.MessageStringOf(x)
542}
543
544func (*ImagePush) ProtoMessage() {}
545
546func (x *ImagePush) ProtoReflect() protoreflect.Message {
547	mi := &file_terminal_proto_msgTypes[6]
548	if x != nil {
549		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
550		if ms.LoadMessageInfo() == nil {
551			ms.StoreMessageInfo(mi)
552		}
553		return ms
554	}
555	return mi.MessageOf(x)
556}
557
558// Deprecated: Use ImagePush.ProtoReflect.Descriptor instead.
559func (*ImagePush) Descriptor() ([]byte, []int) {
560	return file_terminal_proto_rawDescGZIP(), []int{6}
561}
562
563func (x *ImagePush) GetInputSeq() uint64 {
564	if x != nil {
565		return x.InputSeq
566	}
567	return 0
568}
569
570func (x *ImagePush) GetMime() string {
571	if x != nil {
572		return x.Mime
573	}
574	return ""
575}
576
577func (x *ImagePush) GetData() []byte {
578	if x != nil {
579		return x.Data
580	}
581	return nil
582}
583
584// ClientNotice is a fixed one-byte client signal.
585type ClientNotice struct {
586	state protoimpl.MessageState `protogen:"open.v1"`
587	// Closed action taxonomy: 1 = clipboard fallback, 2 = clipboard too
588	// large, 3 = link degraded, 4 = link connected.
589	Action        uint32 `protobuf:"varint,1,opt,name=action,proto3" json:"action,omitempty"`
590	unknownFields protoimpl.UnknownFields
591	sizeCache     protoimpl.SizeCache
592}
593
594func (x *ClientNotice) Reset() {
595	*x = ClientNotice{}
596	mi := &file_terminal_proto_msgTypes[7]
597	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
598	ms.StoreMessageInfo(mi)
599}
600
601func (x *ClientNotice) String() string {
602	return protoimpl.X.MessageStringOf(x)
603}
604
605func (*ClientNotice) ProtoMessage() {}
606
607func (x *ClientNotice) ProtoReflect() protoreflect.Message {
608	mi := &file_terminal_proto_msgTypes[7]
609	if x != nil {
610		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
611		if ms.LoadMessageInfo() == nil {
612			ms.StoreMessageInfo(mi)
613		}
614		return ms
615	}
616	return mi.MessageOf(x)
617}
618
619// Deprecated: Use ClientNotice.ProtoReflect.Descriptor instead.
620func (*ClientNotice) Descriptor() ([]byte, []int) {
621	return file_terminal_proto_rawDescGZIP(), []int{7}
622}
623
624func (x *ClientNotice) GetAction() uint32 {
625	if x != nil {
626		return x.Action
627	}
628	return 0
629}
630
631// OutputResetRequest restarts the output chain. Empty marker.
632type OutputResetRequest struct {
633	state         protoimpl.MessageState `protogen:"open.v1"`
634	unknownFields protoimpl.UnknownFields
635	sizeCache     protoimpl.SizeCache
636}
637
638func (x *OutputResetRequest) Reset() {
639	*x = OutputResetRequest{}
640	mi := &file_terminal_proto_msgTypes[8]
641	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
642	ms.StoreMessageInfo(mi)
643}
644
645func (x *OutputResetRequest) String() string {
646	return protoimpl.X.MessageStringOf(x)
647}
648
649func (*OutputResetRequest) ProtoMessage() {}
650
651func (x *OutputResetRequest) ProtoReflect() protoreflect.Message {
652	mi := &file_terminal_proto_msgTypes[8]
653	if x != nil {
654		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
655		if ms.LoadMessageInfo() == nil {
656			ms.StoreMessageInfo(mi)
657		}
658		return ms
659	}
660	return mi.MessageOf(x)
661}
662
663// Deprecated: Use OutputResetRequest.ProtoReflect.Descriptor instead.
664func (*OutputResetRequest) Descriptor() ([]byte, []int) {
665	return file_terminal_proto_rawDescGZIP(), []int{8}
666}
667
668// TerminalFocus reports a focus change of the client's terminal window.
669type TerminalFocus struct {
670	state protoimpl.MessageState `protogen:"open.v1"`
671	// Closed focus taxonomy: 1 = focused, 2 = unfocused.
672	Focus         uint32 `protobuf:"varint,1,opt,name=focus,proto3" json:"focus,omitempty"`
673	unknownFields protoimpl.UnknownFields
674	sizeCache     protoimpl.SizeCache
675}
676
677func (x *TerminalFocus) Reset() {
678	*x = TerminalFocus{}
679	mi := &file_terminal_proto_msgTypes[9]
680	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
681	ms.StoreMessageInfo(mi)
682}
683
684func (x *TerminalFocus) String() string {
685	return protoimpl.X.MessageStringOf(x)
686}
687
688func (*TerminalFocus) ProtoMessage() {}
689
690func (x *TerminalFocus) ProtoReflect() protoreflect.Message {
691	mi := &file_terminal_proto_msgTypes[9]
692	if x != nil {
693		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
694		if ms.LoadMessageInfo() == nil {
695			ms.StoreMessageInfo(mi)
696		}
697		return ms
698	}
699	return mi.MessageOf(x)
700}
701
702// Deprecated: Use TerminalFocus.ProtoReflect.Descriptor instead.
703func (*TerminalFocus) Descriptor() ([]byte, []int) {
704	return file_terminal_proto_rawDescGZIP(), []int{9}
705}
706
707func (x *TerminalFocus) GetFocus() uint32 {
708	if x != nil {
709		return x.Focus
710	}
711	return 0
712}
713
714// SelectTab shows one exact tab of the attached session on this attachment.
715type SelectTab struct {
716	state         protoimpl.MessageState `protogen:"open.v1"`
717	TabId         string                 `protobuf:"bytes,1,opt,name=tab_id,json=tabId,proto3" json:"tab_id,omitempty"`
718	unknownFields protoimpl.UnknownFields
719	sizeCache     protoimpl.SizeCache
720}
721
722func (x *SelectTab) Reset() {
723	*x = SelectTab{}
724	mi := &file_terminal_proto_msgTypes[10]
725	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
726	ms.StoreMessageInfo(mi)
727}
728
729func (x *SelectTab) String() string {
730	return protoimpl.X.MessageStringOf(x)
731}
732
733func (*SelectTab) ProtoMessage() {}
734
735func (x *SelectTab) ProtoReflect() protoreflect.Message {
736	mi := &file_terminal_proto_msgTypes[10]
737	if x != nil {
738		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
739		if ms.LoadMessageInfo() == nil {
740			ms.StoreMessageInfo(mi)
741		}
742		return ms
743	}
744	return mi.MessageOf(x)
745}
746
747// Deprecated: Use SelectTab.ProtoReflect.Descriptor instead.
748func (*SelectTab) Descriptor() ([]byte, []int) {
749	return file_terminal_proto_rawDescGZIP(), []int{10}
750}
751
752func (x *SelectTab) GetTabId() string {
753	if x != nil {
754		return x.TabId
755	}
756	return ""
757}
758
759// UIFence orders UI operations by action.
760type UIFence struct {
761	state         protoimpl.MessageState `protogen:"open.v1"`
762	ActionId      uint64                 `protobuf:"varint,1,opt,name=action_id,json=actionId,proto3" json:"action_id,omitempty"`
763	unknownFields protoimpl.UnknownFields
764	sizeCache     protoimpl.SizeCache
765}
766
767func (x *UIFence) Reset() {
768	*x = UIFence{}
769	mi := &file_terminal_proto_msgTypes[11]
770	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
771	ms.StoreMessageInfo(mi)
772}
773
774func (x *UIFence) String() string {
775	return protoimpl.X.MessageStringOf(x)
776}
777
778func (*UIFence) ProtoMessage() {}
779
780func (x *UIFence) ProtoReflect() protoreflect.Message {
781	mi := &file_terminal_proto_msgTypes[11]
782	if x != nil {
783		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
784		if ms.LoadMessageInfo() == nil {
785			ms.StoreMessageInfo(mi)
786		}
787		return ms
788	}
789	return mi.MessageOf(x)
790}
791
792// Deprecated: Use UIFence.ProtoReflect.Descriptor instead.
793func (*UIFence) Descriptor() ([]byte, []int) {
794	return file_terminal_proto_rawDescGZIP(), []int{11}
795}
796
797func (x *UIFence) GetActionId() uint64 {
798	if x != nil {
799		return x.ActionId
800	}
801	return 0
802}
803
804// UIReceipt reports the processed output boundary.
805type UIReceipt struct {
806	state           protoimpl.MessageState `protogen:"open.v1"`
807	ActionId        uint64                 `protobuf:"varint,1,opt,name=action_id,json=actionId,proto3" json:"action_id,omitempty"`
808	Epoch           uint64                 `protobuf:"varint,2,opt,name=epoch,proto3" json:"epoch,omitempty"`
809	State           uint64                 `protobuf:"varint,3,opt,name=state,proto3" json:"state,omitempty"`
810	ViewPublication uint64                 `protobuf:"varint,4,opt,name=view_publication,json=viewPublication,proto3" json:"view_publication,omitempty"`
811	// Closed outcome taxonomy: 1 = processed, 2 = unavailable.
812	Outcome       uint32 `protobuf:"varint,5,opt,name=outcome,proto3" json:"outcome,omitempty"`
813	unknownFields protoimpl.UnknownFields
814	sizeCache     protoimpl.SizeCache
815}
816
817func (x *UIReceipt) Reset() {
818	*x = UIReceipt{}
819	mi := &file_terminal_proto_msgTypes[12]
820	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
821	ms.StoreMessageInfo(mi)
822}
823
824func (x *UIReceipt) String() string {
825	return protoimpl.X.MessageStringOf(x)
826}
827
828func (*UIReceipt) ProtoMessage() {}
829
830func (x *UIReceipt) ProtoReflect() protoreflect.Message {
831	mi := &file_terminal_proto_msgTypes[12]
832	if x != nil {
833		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
834		if ms.LoadMessageInfo() == nil {
835			ms.StoreMessageInfo(mi)
836		}
837		return ms
838	}
839	return mi.MessageOf(x)
840}
841
842// Deprecated: Use UIReceipt.ProtoReflect.Descriptor instead.
843func (*UIReceipt) Descriptor() ([]byte, []int) {
844	return file_terminal_proto_rawDescGZIP(), []int{12}
845}
846
847func (x *UIReceipt) GetActionId() uint64 {
848	if x != nil {
849		return x.ActionId
850	}
851	return 0
852}
853
854func (x *UIReceipt) GetEpoch() uint64 {
855	if x != nil {
856		return x.Epoch
857	}
858	return 0
859}
860
861func (x *UIReceipt) GetState() uint64 {
862	if x != nil {
863		return x.State
864	}
865	return 0
866}
867
868func (x *UIReceipt) GetViewPublication() uint64 {
869	if x != nil {
870		return x.ViewPublication
871	}
872	return 0
873}
874
875func (x *UIReceipt) GetOutcome() uint32 {
876	if x != nil {
877		return x.Outcome
878	}
879	return 0
880}
881
882// UIViewUpdate publishes a view boundary without terminal data.
883type UIViewUpdate struct {
884	state         protoimpl.MessageState `protogen:"open.v1"`
885	Epoch         uint64                 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"`
886	State         uint64                 `protobuf:"varint,2,opt,name=state,proto3" json:"state,omitempty"`
887	Context       *ViewContext           `protobuf:"bytes,3,opt,name=context,proto3" json:"context,omitempty"`
888	unknownFields protoimpl.UnknownFields
889	sizeCache     protoimpl.SizeCache
890}
891
892func (x *UIViewUpdate) Reset() {
893	*x = UIViewUpdate{}
894	mi := &file_terminal_proto_msgTypes[13]
895	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
896	ms.StoreMessageInfo(mi)
897}
898
899func (x *UIViewUpdate) String() string {
900	return protoimpl.X.MessageStringOf(x)
901}
902
903func (*UIViewUpdate) ProtoMessage() {}
904
905func (x *UIViewUpdate) ProtoReflect() protoreflect.Message {
906	mi := &file_terminal_proto_msgTypes[13]
907	if x != nil {
908		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
909		if ms.LoadMessageInfo() == nil {
910			ms.StoreMessageInfo(mi)
911		}
912		return ms
913	}
914	return mi.MessageOf(x)
915}
916
917// Deprecated: Use UIViewUpdate.ProtoReflect.Descriptor instead.
918func (*UIViewUpdate) Descriptor() ([]byte, []int) {
919	return file_terminal_proto_rawDescGZIP(), []int{13}
920}
921
922func (x *UIViewUpdate) GetEpoch() uint64 {
923	if x != nil {
924		return x.Epoch
925	}
926	return 0
927}
928
929func (x *UIViewUpdate) GetState() uint64 {
930	if x != nil {
931		return x.State
932	}
933	return 0
934}
935
936func (x *UIViewUpdate) GetContext() *ViewContext {
937	if x != nil {
938		return x.Context
939	}
940	return nil
941}
942
943// RemotePreviewRequest names a bounded exact-target viewport.
944type RemotePreviewRequest struct {
945	state         protoimpl.MessageState `protogen:"open.v1"`
946	Version       uint32                 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
947	Target        *RemoteTarget          `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"`
948	Width         uint32                 `protobuf:"varint,3,opt,name=width,proto3" json:"width,omitempty"`
949	Height        uint32                 `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"`
950	unknownFields protoimpl.UnknownFields
951	sizeCache     protoimpl.SizeCache
952}
953
954func (x *RemotePreviewRequest) Reset() {
955	*x = RemotePreviewRequest{}
956	mi := &file_terminal_proto_msgTypes[14]
957	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
958	ms.StoreMessageInfo(mi)
959}
960
961func (x *RemotePreviewRequest) String() string {
962	return protoimpl.X.MessageStringOf(x)
963}
964
965func (*RemotePreviewRequest) ProtoMessage() {}
966
967func (x *RemotePreviewRequest) ProtoReflect() protoreflect.Message {
968	mi := &file_terminal_proto_msgTypes[14]
969	if x != nil {
970		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
971		if ms.LoadMessageInfo() == nil {
972			ms.StoreMessageInfo(mi)
973		}
974		return ms
975	}
976	return mi.MessageOf(x)
977}
978
979// Deprecated: Use RemotePreviewRequest.ProtoReflect.Descriptor instead.
980func (*RemotePreviewRequest) Descriptor() ([]byte, []int) {
981	return file_terminal_proto_rawDescGZIP(), []int{14}
982}
983
984func (x *RemotePreviewRequest) GetVersion() uint32 {
985	if x != nil {
986		return x.Version
987	}
988	return 0
989}
990
991func (x *RemotePreviewRequest) GetTarget() *RemoteTarget {
992	if x != nil {
993		return x.Target
994	}
995	return nil
996}
997
998func (x *RemotePreviewRequest) GetWidth() uint32 {
999	if x != nil {
1000		return x.Width
1001	}
1002	return 0
1003}
1004
1005func (x *RemotePreviewRequest) GetHeight() uint32 {
1006	if x != nil {
1007		return x.Height
1008	}
1009	return 0
1010}
1011
1012// RemotePreviewWatch is a client first message: the server answers with a
1013// stream of RemotePreview frames, at most one per min_interval_ms, until the
1014// client closes the connection.
1015type RemotePreviewWatch struct {
1016	state   protoimpl.MessageState `protogen:"open.v1"`
1017	Request *RemotePreviewRequest  `protobuf:"bytes,1,opt,name=request,proto3" json:"request,omitempty"`
1018	// Whole milliseconds inside [16, 1000].
1019	MinIntervalMs uint32 `protobuf:"varint,2,opt,name=min_interval_ms,json=minIntervalMs,proto3" json:"min_interval_ms,omitempty"`
1020	unknownFields protoimpl.UnknownFields
1021	sizeCache     protoimpl.SizeCache
1022}
1023
1024func (x *RemotePreviewWatch) Reset() {
1025	*x = RemotePreviewWatch{}
1026	mi := &file_terminal_proto_msgTypes[15]
1027	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1028	ms.StoreMessageInfo(mi)
1029}
1030
1031func (x *RemotePreviewWatch) String() string {
1032	return protoimpl.X.MessageStringOf(x)
1033}
1034
1035func (*RemotePreviewWatch) ProtoMessage() {}
1036
1037func (x *RemotePreviewWatch) ProtoReflect() protoreflect.Message {
1038	mi := &file_terminal_proto_msgTypes[15]
1039	if x != nil {
1040		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1041		if ms.LoadMessageInfo() == nil {
1042			ms.StoreMessageInfo(mi)
1043		}
1044		return ms
1045	}
1046	return mi.MessageOf(x)
1047}
1048
1049// Deprecated: Use RemotePreviewWatch.ProtoReflect.Descriptor instead.
1050func (*RemotePreviewWatch) Descriptor() ([]byte, []int) {
1051	return file_terminal_proto_rawDescGZIP(), []int{15}
1052}
1053
1054func (x *RemotePreviewWatch) GetRequest() *RemotePreviewRequest {
1055	if x != nil {
1056		return x.Request
1057	}
1058	return nil
1059}
1060
1061func (x *RemotePreviewWatch) GetMinIntervalMs() uint32 {
1062	if x != nil {
1063		return x.MinIntervalMs
1064	}
1065	return 0
1066}
1067
1068// RemotePreview is a bounded row-major styled-cell viewport.
1069type RemotePreview struct {
1070	state   protoimpl.MessageState `protogen:"open.v1"`
1071	Version uint32                 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
1072	// Closed status taxonomy: 0 = ok, 1 = unavailable, 2 = no such target,
1073	// 3 = stale, 4 = malformed, 5 = too large.
1074	Status        uint32         `protobuf:"varint,2,opt,name=status,proto3" json:"status,omitempty"`
1075	LifecycleId   *LifecycleID   `protobuf:"bytes,3,opt,name=lifecycle_id,json=lifecycleId,proto3" json:"lifecycle_id,omitempty"`
1076	TabId         string         `protobuf:"bytes,4,opt,name=tab_id,json=tabId,proto3" json:"tab_id,omitempty"`
1077	Revision      uint64         `protobuf:"varint,5,opt,name=revision,proto3" json:"revision,omitempty"`
1078	Width         uint32         `protobuf:"varint,6,opt,name=width,proto3" json:"width,omitempty"`
1079	Height        uint32         `protobuf:"varint,7,opt,name=height,proto3" json:"height,omitempty"`
1080	Cells         []*PreviewCell `protobuf:"bytes,8,rep,name=cells,proto3" json:"cells,omitempty"`
1081	unknownFields protoimpl.UnknownFields
1082	sizeCache     protoimpl.SizeCache
1083}
1084
1085func (x *RemotePreview) Reset() {
1086	*x = RemotePreview{}
1087	mi := &file_terminal_proto_msgTypes[16]
1088	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1089	ms.StoreMessageInfo(mi)
1090}
1091
1092func (x *RemotePreview) String() string {
1093	return protoimpl.X.MessageStringOf(x)
1094}
1095
1096func (*RemotePreview) ProtoMessage() {}
1097
1098func (x *RemotePreview) ProtoReflect() protoreflect.Message {
1099	mi := &file_terminal_proto_msgTypes[16]
1100	if x != nil {
1101		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1102		if ms.LoadMessageInfo() == nil {
1103			ms.StoreMessageInfo(mi)
1104		}
1105		return ms
1106	}
1107	return mi.MessageOf(x)
1108}
1109
1110// Deprecated: Use RemotePreview.ProtoReflect.Descriptor instead.
1111func (*RemotePreview) Descriptor() ([]byte, []int) {
1112	return file_terminal_proto_rawDescGZIP(), []int{16}
1113}
1114
1115func (x *RemotePreview) GetVersion() uint32 {
1116	if x != nil {
1117		return x.Version
1118	}
1119	return 0
1120}
1121
1122func (x *RemotePreview) GetStatus() uint32 {
1123	if x != nil {
1124		return x.Status
1125	}
1126	return 0
1127}
1128
1129func (x *RemotePreview) GetLifecycleId() *LifecycleID {
1130	if x != nil {
1131		return x.LifecycleId
1132	}
1133	return nil
1134}
1135
1136func (x *RemotePreview) GetTabId() string {
1137	if x != nil {
1138		return x.TabId
1139	}
1140	return ""
1141}
1142
1143func (x *RemotePreview) GetRevision() uint64 {
1144	if x != nil {
1145		return x.Revision
1146	}
1147	return 0
1148}
1149
1150func (x *RemotePreview) GetWidth() uint32 {
1151	if x != nil {
1152		return x.Width
1153	}
1154	return 0
1155}
1156
1157func (x *RemotePreview) GetHeight() uint32 {
1158	if x != nil {
1159		return x.Height
1160	}
1161	return 0
1162}
1163
1164func (x *RemotePreview) GetCells() []*PreviewCell {
1165	if x != nil {
1166		return x.Cells
1167	}
1168	return nil
1169}
1170
1171var File_terminal_proto protoreflect.FileDescriptor
1172
1173const file_terminal_proto_rawDesc = "" +
1174	"\n" +
1175	"\x0eterminal.proto\x12\vvev.wire.v1\x1a\fcommon.proto\x1a\rsession.proto\"\xa9\x01\n" +
1176	"\vViewContext\x12 \n" +
1177	"\vpublication\x18\x01 \x01(\x04R\vpublication\x129\n" +
1178	"\x05route\x18\x02 \x01(\v2#.vev.wire.v1.CommittedRouteIdentityR\x05route\x12\x15\n" +
1179	"\x06tab_id\x18\x03 \x01(\tR\x05tabId\x12&\n" +
1180	"\x0ffocused_pane_id\x18\x04 \x01(\tR\rfocusedPaneId\"\xd9\x02\n" +
1181	"\x06Output\x12\x14\n" +
1182	"\x05epoch\x18\x01 \x01(\x04R\x05epoch\x12\x12\n" +
1183	"\x04base\x18\x02 \x01(\x04R\x04base\x12\x1b\n" +
1184	"\tnew_state\x18\x03 \x01(\x04R\bnewState\x12\x12\n" +
1185	"\x04echo\x18\x04 \x01(\x04R\x04echo\x12#\n" +
1186	"\rview_revision\x18\x05 \x01(\x04R\fviewRevision\x12\x12\n" +
1187	"\x04cols\x18\x06 \x01(\rR\x04cols\x12\x12\n" +
1188	"\x04rows\x18\a \x01(\rR\x04rows\x12\x12\n" +
1189	"\x04full\x18\b \x01(\bR\x04full\x122\n" +
1190	"\acontext\x18\t \x01(\v2\x18.vev.wire.v1.ViewContextR\acontext\x12\x1a\n" +
1191	"\bencoding\x18\n" +
1192	" \x01(\rR\bencoding\x12/\n" +
1193	"\x13uncompressed_length\x18\v \x01(\x04R\x12uncompressedLength\x12\x12\n" +
1194	"\x04data\x18\f \x01(\fR\x04data\"1\n" +
1195	"\x03Ack\x12\x14\n" +
1196	"\x05epoch\x18\x01 \x01(\x04R\x05epoch\x12\x14\n" +
1197	"\x05state\x18\x02 \x01(\x04R\x05state\"U\n" +
1198	"\x05Input\x12\x1b\n" +
1199	"\tinput_seq\x18\x01 \x01(\x04R\binputSeq\x12\x1b\n" +
1200	"\taction_id\x18\x02 \x01(\x04R\bactionId\x12\x12\n" +
1201	"\x04data\x18\x03 \x01(\fR\x04data\"t\n" +
1202	"\x06Resize\x12\x12\n" +
1203	"\x04cols\x18\x01 \x01(\rR\x04cols\x12\x12\n" +
1204	"\x04rows\x18\x02 \x01(\rR\x04rows\x12\x1f\n" +
1205	"\vpixel_width\x18\x03 \x01(\rR\n" +
1206	"pixelWidth\x12!\n" +
1207	"\fpixel_height\x18\x04 \x01(\rR\vpixelHeight\"\xe2\x02\n" +
1208	"\x05Theme\x12%\n" +
1209	"\x0ehas_foreground\x18\x01 \x01(\bR\rhasForeground\x120\n" +
1210	"\n" +
1211	"foreground\x18\x02 \x01(\v2\x10.vev.wire.v1.RGBR\n" +
1212	"foreground\x12%\n" +
1213	"\x0ehas_background\x18\x03 \x01(\bR\rhasBackground\x120\n" +
1214	"\n" +
1215	"background\x18\x04 \x01(\v2\x10.vev.wire.v1.RGBR\n" +
1216	"background\x12\x1d\n" +
1217	"\n" +
1218	"true_color\x18\x05 \x01(\bR\ttrueColor\x12!\n" +
1219	"\fscheme_known\x18\x06 \x01(\bR\vschemeKnown\x12\x14\n" +
1220	"\x05light\x18\a \x01(\bR\x05light\x12#\n" +
1221	"\rpalette_known\x18\b \x01(\rR\fpaletteKnown\x12*\n" +
1222	"\apalette\x18\t \x03(\v2\x10.vev.wire.v1.RGBR\apalette\"P\n" +
1223	"\tImagePush\x12\x1b\n" +
1224	"\tinput_seq\x18\x01 \x01(\x04R\binputSeq\x12\x12\n" +
1225	"\x04mime\x18\x02 \x01(\tR\x04mime\x12\x12\n" +
1226	"\x04data\x18\x03 \x01(\fR\x04data\"&\n" +
1227	"\fClientNotice\x12\x16\n" +
1228	"\x06action\x18\x01 \x01(\rR\x06action\"\x14\n" +
1229	"\x12OutputResetRequest\"%\n" +
1230	"\rTerminalFocus\x12\x14\n" +
1231	"\x05focus\x18\x01 \x01(\rR\x05focus\"\"\n" +
1232	"\tSelectTab\x12\x15\n" +
1233	"\x06tab_id\x18\x01 \x01(\tR\x05tabId\"&\n" +
1234	"\aUIFence\x12\x1b\n" +
1235	"\taction_id\x18\x01 \x01(\x04R\bactionId\"\x99\x01\n" +
1236	"\tUIReceipt\x12\x1b\n" +
1237	"\taction_id\x18\x01 \x01(\x04R\bactionId\x12\x14\n" +
1238	"\x05epoch\x18\x02 \x01(\x04R\x05epoch\x12\x14\n" +
1239	"\x05state\x18\x03 \x01(\x04R\x05state\x12)\n" +
1240	"\x10view_publication\x18\x04 \x01(\x04R\x0fviewPublication\x12\x18\n" +
1241	"\aoutcome\x18\x05 \x01(\rR\aoutcome\"n\n" +
1242	"\fUIViewUpdate\x12\x14\n" +
1243	"\x05epoch\x18\x01 \x01(\x04R\x05epoch\x12\x14\n" +
1244	"\x05state\x18\x02 \x01(\x04R\x05state\x122\n" +
1245	"\acontext\x18\x03 \x01(\v2\x18.vev.wire.v1.ViewContextR\acontext\"\x91\x01\n" +
1246	"\x14RemotePreviewRequest\x12\x18\n" +
1247	"\aversion\x18\x01 \x01(\rR\aversion\x121\n" +
1248	"\x06target\x18\x02 \x01(\v2\x19.vev.wire.v1.RemoteTargetR\x06target\x12\x14\n" +
1249	"\x05width\x18\x03 \x01(\rR\x05width\x12\x16\n" +
1250	"\x06height\x18\x04 \x01(\rR\x06height\"y\n" +
1251	"\x12RemotePreviewWatch\x12;\n" +
1252	"\arequest\x18\x01 \x01(\v2!.vev.wire.v1.RemotePreviewRequestR\arequest\x12&\n" +
1253	"\x0fmin_interval_ms\x18\x02 \x01(\rR\rminIntervalMs\"\x8f\x02\n" +
1254	"\rRemotePreview\x12\x18\n" +
1255	"\aversion\x18\x01 \x01(\rR\aversion\x12\x16\n" +
1256	"\x06status\x18\x02 \x01(\rR\x06status\x12;\n" +
1257	"\flifecycle_id\x18\x03 \x01(\v2\x18.vev.wire.v1.LifecycleIDR\vlifecycleId\x12\x15\n" +
1258	"\x06tab_id\x18\x04 \x01(\tR\x05tabId\x12\x1a\n" +
1259	"\brevision\x18\x05 \x01(\x04R\brevision\x12\x14\n" +
1260	"\x05width\x18\x06 \x01(\rR\x05width\x12\x16\n" +
1261	"\x06height\x18\a \x01(\rR\x06height\x12.\n" +
1262	"\x05cells\x18\b \x03(\v2\x18.vev.wire.v1.PreviewCellR\x05cellsB-Z+github.com/bnema/vev/internal/protocol/wireb\x06proto3"
1263
1264var (
1265	file_terminal_proto_rawDescOnce sync.Once
1266	file_terminal_proto_rawDescData []byte
1267)
1268
1269func file_terminal_proto_rawDescGZIP() []byte {
1270	file_terminal_proto_rawDescOnce.Do(func() {
1271		file_terminal_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_terminal_proto_rawDesc), len(file_terminal_proto_rawDesc)))
1272	})
1273	return file_terminal_proto_rawDescData
1274}
1275
1276var file_terminal_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
1277var file_terminal_proto_goTypes = []any{
1278	(*ViewContext)(nil),            // 0: vev.wire.v1.ViewContext
1279	(*Output)(nil),                 // 1: vev.wire.v1.Output
1280	(*Ack)(nil),                    // 2: vev.wire.v1.Ack
1281	(*Input)(nil),                  // 3: vev.wire.v1.Input
1282	(*Resize)(nil),                 // 4: vev.wire.v1.Resize
1283	(*Theme)(nil),                  // 5: vev.wire.v1.Theme
1284	(*ImagePush)(nil),              // 6: vev.wire.v1.ImagePush
1285	(*ClientNotice)(nil),           // 7: vev.wire.v1.ClientNotice
1286	(*OutputResetRequest)(nil),     // 8: vev.wire.v1.OutputResetRequest
1287	(*TerminalFocus)(nil),          // 9: vev.wire.v1.TerminalFocus
1288	(*SelectTab)(nil),              // 10: vev.wire.v1.SelectTab
1289	(*UIFence)(nil),                // 11: vev.wire.v1.UIFence
1290	(*UIReceipt)(nil),              // 12: vev.wire.v1.UIReceipt
1291	(*UIViewUpdate)(nil),           // 13: vev.wire.v1.UIViewUpdate
1292	(*RemotePreviewRequest)(nil),   // 14: vev.wire.v1.RemotePreviewRequest
1293	(*RemotePreviewWatch)(nil),     // 15: vev.wire.v1.RemotePreviewWatch
1294	(*RemotePreview)(nil),          // 16: vev.wire.v1.RemotePreview
1295	(*CommittedRouteIdentity)(nil), // 17: vev.wire.v1.CommittedRouteIdentity
1296	(*RGB)(nil),                    // 18: vev.wire.v1.RGB
1297	(*RemoteTarget)(nil),           // 19: vev.wire.v1.RemoteTarget
1298	(*LifecycleID)(nil),            // 20: vev.wire.v1.LifecycleID
1299	(*PreviewCell)(nil),            // 21: vev.wire.v1.PreviewCell
1300}
1301var file_terminal_proto_depIdxs = []int32{
1302	17, // 0: vev.wire.v1.ViewContext.route:type_name -> vev.wire.v1.CommittedRouteIdentity
1303	0,  // 1: vev.wire.v1.Output.context:type_name -> vev.wire.v1.ViewContext
1304	18, // 2: vev.wire.v1.Theme.foreground:type_name -> vev.wire.v1.RGB
1305	18, // 3: vev.wire.v1.Theme.background:type_name -> vev.wire.v1.RGB
1306	18, // 4: vev.wire.v1.Theme.palette:type_name -> vev.wire.v1.RGB
1307	0,  // 5: vev.wire.v1.UIViewUpdate.context:type_name -> vev.wire.v1.ViewContext
1308	19, // 6: vev.wire.v1.RemotePreviewRequest.target:type_name -> vev.wire.v1.RemoteTarget
1309	14, // 7: vev.wire.v1.RemotePreviewWatch.request:type_name -> vev.wire.v1.RemotePreviewRequest
1310	20, // 8: vev.wire.v1.RemotePreview.lifecycle_id:type_name -> vev.wire.v1.LifecycleID
1311	21, // 9: vev.wire.v1.RemotePreview.cells:type_name -> vev.wire.v1.PreviewCell
1312	10, // [10:10] is the sub-list for method output_type
1313	10, // [10:10] is the sub-list for method input_type
1314	10, // [10:10] is the sub-list for extension type_name
1315	10, // [10:10] is the sub-list for extension extendee
1316	0,  // [0:10] is the sub-list for field type_name
1317}
1318
1319func init() { file_terminal_proto_init() }
1320func file_terminal_proto_init() {
1321	if File_terminal_proto != nil {
1322		return
1323	}
1324	file_common_proto_init()
1325	file_session_proto_init()
1326	type x struct{}
1327	out := protoimpl.TypeBuilder{
1328		File: protoimpl.DescBuilder{
1329			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1330			RawDescriptor: unsafe.Slice(unsafe.StringData(file_terminal_proto_rawDesc), len(file_terminal_proto_rawDesc)),
1331			NumEnums:      0,
1332			NumMessages:   17,
1333			NumExtensions: 0,
1334			NumServices:   0,
1335		},
1336		GoTypes:           file_terminal_proto_goTypes,
1337		DependencyIndexes: file_terminal_proto_depIdxs,
1338		MessageInfos:      file_terminal_proto_msgTypes,
1339	}.Build()
1340	File_terminal_proto = out.File
1341	file_terminal_proto_goTypes = nil
1342	file_terminal_proto_depIdxs = nil
1343}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 12

Tags 11

↑↓ moveenter openesc close