zellij/zellij-utils/src/plugin_api/style.proto
Mark Grey 26b99eac63
feat(config): new theme definition spec (#3242)
* Implement initial structs from spec

* kdl configuration unmarshalling

* typo text styling

* remove is_selected toggle

* incorporate new status bar ui into theming

* improve test coverage of config behavior

* tab bar correction

* correct also compact bar

* remove spacing between table columns

* refactor table styling

* use text_unselected.emphasis_1 for keygroup sep

* fix tab bar more text

* repair field flattening for theme

* remove extra styling KDL node

* update tests

* updated selected text conversion

* padding for header bar

* minor corrections for existing themes

* background handling

* compact bar corrections

* properly handle opaque method to activate background

* update newer plugins to use styling struct

* correct omission of selected state

* fix: bold typeface for text elements

* fix: fg -> white for list_unselected conversion

* fix: emphasis and opacity handling for nested_list

* correct stylings in the session-manager

* fix emphases translation for table component

* correct emphasis for run instructions

* correct frame_highlight translation for old themes

* provide missing implementation of frame_highlight

* fencepost emphasis color names

* Set a pseudo-None for frame_unselected in old theme conversion

* correct alternating bg for simplified-ui

* update snapshots

* fix inner text padding and errorneous snapshots

* suppress warning about deprecated usage of palette

* remove unused import

* feat(plugins): API to change floating pane coordinates (#3958)

* basic functionality through the cli

* added to plugin api

* add display area and viewport size to TabInfo

* fix tests and add new one

* some cleanups

* refactor: extract pane_id parsing logic

* style(fmt): rustfmt

* docs(changelog): floating pane coordinate chagne API

* fix(tiled-panes): opening panes from the cli (#3963)

* feat(plugins): add `PastedText` Event (#3962)

* working with text paste

* handle utf8 conversion error

* feat(plugins): add PastedText Event

* docs(changelog): plugins pasted text event

* black for table opaque background

* properly apply opacity to table

* correct padding for explicit width ribbons

* feat(plugins): Allow opening panes near plugin (#3966)

* added command + terminal variants

* added editor variant

* style(fmt): rustfmt

* docs(changelog): plugin apis to open panes near plugin

* feat(plugins): send info about $EDITOR and $SHELL (#3971)

* feat(plugins): send info about $EDITOR and $SHELL

* fix(e2e): snapshot update

* docs(changelog): plugin editor and shell info

* fix(floating-panes): when changing coordinates, if a pane is not floating - make it floating (#3972)

* fix(panes): when changing floating pane coordinates, if the pane is not floating, float it

* style(fmt): rustfmt

* docs(changelog): floating pane coordinate fix

* fix(break-pane): strip logical position when inserting pane to new tab (#3973)

* docs(changelog): logical position fix

* Optional frame_unselected theme

* fixture with correct width to account for arrow padding

* update snapshot and rustfmt

---------

Co-authored-by: Aram Drevekenin <aram@poor.dev>
2025-02-07 11:59:54 +01:00

73 lines
1.5 KiB
Protocol Buffer

syntax = "proto3";
package api.style;
message Style {
Palette palette = 1 [deprecated = true];
bool rounded_corners = 2;
bool hide_session_name = 3;
Styling styling = 4;
}
message Palette {
ThemeHue theme_hue = 1;
Color fg = 2;
Color bg = 3;
Color black = 4;
Color red = 5;
Color green = 6;
Color yellow = 7;
Color blue = 8;
Color magenta = 9;
Color cyan = 10;
Color white = 11;
Color orange = 12;
Color gray = 13;
Color purple = 14;
Color gold = 15;
Color silver = 16;
Color pink = 17;
Color brown = 18;
}
message Color {
ColorType color_type = 1;
oneof payload {
RgbColorPayload rgb_color_payload = 2;
uint32 eight_bit_color_payload = 3;
}
}
message RgbColorPayload {
uint32 red = 1;
uint32 green = 2;
uint32 blue = 3;
}
enum ColorType {
Rgb = 0;
EightBit = 1;
}
enum ThemeHue {
Dark = 0;
Light = 1;
}
message Styling {
repeated Color text_unselected = 1;
repeated Color text_selected = 2;
repeated Color ribbon_unselected = 3;
repeated Color ribbon_selected =4;
repeated Color table_title = 5;
repeated Color table_cell_unselected = 6;
repeated Color table_cell_selected = 7;
repeated Color list_unselected = 8;
repeated Color list_selected = 9;
repeated Color frame_unselected = 10;
repeated Color frame_selected = 11;
repeated Color frame_highlight = 12;
repeated Color exit_code_success = 13;
repeated Color exit_code_error = 14;
repeated Color multiplayer_user_colors = 15;
}