* write/read session metadata to disk for all sessions * switch session client side * fix tests * various adjustments * fix full screen focus bug in tiled panes * fix tests * fix permission sorting issue * cleanups * add session manager * fix tests * various cleanups * style(fmt): rustfmt * clear screen before switching sessions * I hate you clippy * truncate controls line to width * version session cache * attempt to fix plugin tests * style(fmt): rustfmt * another attempt to fix the tests in the ci
182 lines
4.5 KiB
Protocol Buffer
182 lines
4.5 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
import "input_mode.proto";
|
|
import "key.proto";
|
|
import "style.proto";
|
|
import "action.proto";
|
|
|
|
package api.event;
|
|
|
|
enum EventType {
|
|
/// The input mode or relevant metadata changed
|
|
ModeUpdate = 0;
|
|
/// The tab state in the app was changed
|
|
TabUpdate = 1;
|
|
/// The pane state in the app was changed
|
|
PaneUpdate = 2;
|
|
/// A key was pressed while the user is focused on this plugin's pane
|
|
Key = 3;
|
|
/// A mouse event happened while the user is focused on this plugin's pane
|
|
Mouse = 4;
|
|
/// A timer expired set by the `set_timeout` method exported by `zellij-tile`.
|
|
Timer = 5;
|
|
/// Text was copied to the clipboard anywhere in the app
|
|
CopyToClipboard = 6;
|
|
/// Failed to copy text to clipboard anywhere in the app
|
|
SystemClipboardFailure = 7;
|
|
/// Input was received anywhere in the app
|
|
InputReceived = 8;
|
|
/// This plugin became visible or invisible
|
|
Visible = 9;
|
|
/// A message from one of the plugin's workers
|
|
CustomMessage = 10;
|
|
/// A file was created somewhere in the Zellij CWD folder
|
|
FileSystemCreate = 11;
|
|
/// A file was accessed somewhere in the Zellij CWD folder
|
|
FileSystemRead = 12;
|
|
/// A file was modified somewhere in the Zellij CWD folder
|
|
FileSystemUpdate = 13;
|
|
/// A file was deleted somewhere in the Zellij CWD folder
|
|
FileSystemDelete = 14;
|
|
PermissionRequestResult = 15;
|
|
SessionUpdate = 16;
|
|
}
|
|
|
|
message EventNameList {
|
|
repeated EventType event_types = 1;
|
|
}
|
|
|
|
message Event {
|
|
EventType name = 1;
|
|
oneof payload {
|
|
ModeUpdatePayload mode_update_payload = 2;
|
|
TabUpdatePayload tab_update_payload = 3;
|
|
PaneUpdatePayload pane_update_payload = 4;
|
|
key.Key key_payload = 5;
|
|
MouseEventPayload mouse_event_payload = 6;
|
|
float timer_payload = 7;
|
|
CopyDestination copy_to_clipboard_payload = 8;
|
|
bool visible_payload = 9;
|
|
CustomMessagePayload custom_message_payload = 10;
|
|
FileListPayload file_list_payload = 11;
|
|
PermissionRequestResultPayload permission_request_result_payload = 12;
|
|
SessionUpdatePayload session_update_payload = 13;
|
|
}
|
|
}
|
|
|
|
message SessionUpdatePayload {
|
|
repeated SessionManifest session_manifests = 1;
|
|
}
|
|
|
|
message PermissionRequestResultPayload {
|
|
bool granted = 1;
|
|
}
|
|
|
|
message FileListPayload {
|
|
repeated string paths = 1;
|
|
}
|
|
|
|
message CustomMessagePayload {
|
|
string message_name = 1;
|
|
string payload = 2;
|
|
}
|
|
|
|
enum CopyDestination {
|
|
Command = 0;
|
|
Primary = 1;
|
|
System = 2;
|
|
}
|
|
|
|
message MouseEventPayload {
|
|
MouseEventName mouse_event_name = 1;
|
|
oneof mouse_event_payload {
|
|
uint32 line_count = 2;
|
|
action.Position position = 3;
|
|
}
|
|
}
|
|
|
|
enum MouseEventName {
|
|
MouseScrollUp = 0;
|
|
MouseScrollDown = 1;
|
|
MouseLeftClick = 2;
|
|
MouseRightClick = 3;
|
|
MouseHold = 4;
|
|
MouseRelease = 5;
|
|
}
|
|
|
|
message TabUpdatePayload {
|
|
repeated TabInfo tab_info = 1;
|
|
}
|
|
|
|
message PaneUpdatePayload {
|
|
repeated PaneManifest pane_manifest = 1;
|
|
}
|
|
|
|
message PaneManifest {
|
|
uint32 tab_index = 1;
|
|
repeated PaneInfo panes = 2;
|
|
}
|
|
|
|
message SessionManifest {
|
|
string name = 1;
|
|
repeated TabInfo tabs = 2;
|
|
repeated PaneManifest panes = 3;
|
|
uint32 connected_clients = 4;
|
|
bool is_current_session = 5;
|
|
}
|
|
|
|
message PaneInfo {
|
|
uint32 id = 1;
|
|
bool is_plugin = 2;
|
|
bool is_focused = 3;
|
|
bool is_fullscreen = 4;
|
|
bool is_floating = 5;
|
|
bool is_suppressed = 6;
|
|
string title = 7;
|
|
bool exited = 8;
|
|
optional int32 exit_status = 9;
|
|
bool is_held = 10;
|
|
uint32 pane_x = 11;
|
|
uint32 pane_content_x = 12;
|
|
uint32 pane_y = 13;
|
|
uint32 pane_content_y = 14;
|
|
uint32 pane_rows = 15;
|
|
uint32 pane_content_rows = 16;
|
|
uint32 pane_columns = 17;
|
|
uint32 pane_content_columns = 18;
|
|
optional action.Position cursor_coordinates_in_pane = 19;
|
|
optional string terminal_command = 20;
|
|
optional string plugin_url = 21;
|
|
bool is_selectable = 22;
|
|
}
|
|
|
|
message TabInfo {
|
|
uint32 position = 1;
|
|
string name = 2;
|
|
bool active = 3;
|
|
uint32 panes_to_hide = 4;
|
|
bool is_fullscreen_active = 5;
|
|
bool is_sync_panes_active = 6;
|
|
bool are_floating_panes_visible = 7;
|
|
repeated uint32 other_focused_clients = 8;
|
|
optional string active_swap_layout_name = 9;
|
|
bool is_swap_layout_dirty = 10;
|
|
}
|
|
|
|
message ModeUpdatePayload {
|
|
input_mode.InputMode current_mode = 1;
|
|
repeated InputModeKeybinds keybinds = 2;
|
|
style.Style style = 3;
|
|
bool arrow_fonts_support = 4;
|
|
optional string session_name = 5;
|
|
}
|
|
|
|
message InputModeKeybinds {
|
|
input_mode.InputMode mode = 1;
|
|
repeated KeyBind key_bind = 2;
|
|
}
|
|
|
|
message KeyBind {
|
|
key.Key key = 1;
|
|
repeated action.Action action = 2;
|
|
}
|