docs(about): release notes for version 0.43.0 (#4326)
This commit is contained in:
parent
ae8981f7a0
commit
549c5edb46
1 changed files with 123 additions and 171 deletions
|
|
@ -19,7 +19,7 @@ impl Page {
|
||||||
pub fn new_main_screen(
|
pub fn new_main_screen(
|
||||||
link_executable: Rc<RefCell<String>>,
|
link_executable: Rc<RefCell<String>>,
|
||||||
zellij_version: String,
|
zellij_version: String,
|
||||||
base_mode: Rc<RefCell<InputMode>>,
|
_base_mode: Rc<RefCell<InputMode>>,
|
||||||
is_release_notes: bool,
|
is_release_notes: bool,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
Page::new()
|
Page::new()
|
||||||
|
|
@ -27,51 +27,51 @@ impl Page {
|
||||||
.with_title(main_screen_title(zellij_version.clone(), is_release_notes))
|
.with_title(main_screen_title(zellij_version.clone(), is_release_notes))
|
||||||
.with_bulletin_list(BulletinList::new(whats_new_title()).with_items(vec![
|
.with_bulletin_list(BulletinList::new(whats_new_title()).with_items(vec![
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(main_menu_item(
|
ActiveComponent::new(TextOrCustomRender::Text(main_menu_item(
|
||||||
"Stacked Resize",
|
"Web Client",
|
||||||
)))
|
)))
|
||||||
.with_hover(TextOrCustomRender::Text(
|
.with_hover(TextOrCustomRender::Text(
|
||||||
main_menu_item("Stacked Resize").selected(),
|
main_menu_item("Web Client").selected(),
|
||||||
))
|
))
|
||||||
.with_left_click_action(ClickAction::new_change_page({
|
.with_left_click_action(ClickAction::new_change_page({
|
||||||
let link_executable = link_executable.clone();
|
let link_executable = link_executable.clone();
|
||||||
move || Page::new_stacked_resize(link_executable.clone())
|
move || Page::new_web_client(link_executable.clone())
|
||||||
})),
|
})),
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(main_menu_item(
|
ActiveComponent::new(TextOrCustomRender::Text(main_menu_item(
|
||||||
"Pinned Floating Panes",
|
"Multiple Pane Select",
|
||||||
)))
|
)))
|
||||||
.with_hover(TextOrCustomRender::Text(
|
.with_hover(TextOrCustomRender::Text(
|
||||||
main_menu_item("Pinned Floating Panes").selected(),
|
main_menu_item("Multiple Pane Select").selected(),
|
||||||
))
|
))
|
||||||
.with_left_click_action(ClickAction::new_change_page(move || {
|
.with_left_click_action(ClickAction::new_change_page(move || {
|
||||||
Page::new_pinned_panes(base_mode.clone())
|
Page::new_multiple_select()
|
||||||
})),
|
})),
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(main_menu_item(
|
ActiveComponent::new(TextOrCustomRender::Text(main_menu_item(
|
||||||
"New Theme Definition Spec",
|
"Key Tooltips for the compact-bar",
|
||||||
)))
|
)))
|
||||||
.with_hover(TextOrCustomRender::Text(
|
.with_hover(TextOrCustomRender::Text(
|
||||||
main_menu_item("New Theme Definition Spec").selected(),
|
main_menu_item("Key Tooltips for the compact-bar").selected(),
|
||||||
))
|
))
|
||||||
.with_left_click_action(ClickAction::new_change_page({
|
.with_left_click_action(ClickAction::new_change_page({
|
||||||
let link_executable = link_executable.clone();
|
let link_executable = link_executable.clone();
|
||||||
move || Page::new_theme_definition_spec(link_executable.clone())
|
move || Page::new_key_tooltips_for_compact_bar(link_executable.clone())
|
||||||
})),
|
})),
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(main_menu_item(
|
ActiveComponent::new(TextOrCustomRender::Text(main_menu_item(
|
||||||
"New Plugin APIs",
|
"Stack Keybinding",
|
||||||
)))
|
)))
|
||||||
.with_hover(TextOrCustomRender::Text(
|
.with_hover(TextOrCustomRender::Text(
|
||||||
main_menu_item("New Plugin APIs").selected(),
|
main_menu_item("Stack Keybinding").selected(),
|
||||||
))
|
))
|
||||||
.with_left_click_action(ClickAction::new_change_page(move || {
|
.with_left_click_action(ClickAction::new_change_page(move || {
|
||||||
Page::new_plugin_apis()
|
Page::new_stack_keybinding()
|
||||||
})),
|
})),
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(main_menu_item(
|
ActiveComponent::new(TextOrCustomRender::Text(main_menu_item(
|
||||||
"Mouse Any-Event Handling",
|
"Performance Improvements",
|
||||||
)))
|
)))
|
||||||
.with_hover(TextOrCustomRender::Text(
|
.with_hover(TextOrCustomRender::Text(
|
||||||
main_menu_item("Mouse Any-Event Handling").selected(),
|
main_menu_item("Performance Improvements").selected(),
|
||||||
))
|
))
|
||||||
.with_left_click_action(ClickAction::new_change_page({
|
.with_left_click_action(ClickAction::new_change_page({
|
||||||
move || Page::new_mouse_any_event()
|
move || Page::new_performance_improvements()
|
||||||
})),
|
})),
|
||||||
]))
|
]))
|
||||||
.with_paragraph(vec![ComponentLine::new(vec![
|
.with_paragraph(vec![ComponentLine::new(vec![
|
||||||
|
|
@ -113,205 +113,157 @@ impl Page {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
pub fn new_stacked_resize(link_executable: Rc<RefCell<String>>) -> Page {
|
pub fn new_web_client(link_executable: Rc<RefCell<String>>) -> Page {
|
||||||
Page::new()
|
Page::new()
|
||||||
.with_title(Text::new("Stacked Resize").color_range(0, ..))
|
.with_title(Text::new("Web Client").color_range(0, ..))
|
||||||
.with_paragraph(vec![
|
.with_paragraph(vec![
|
||||||
ComponentLine::new(vec![
|
ComponentLine::new(vec![
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(Text::new("This version includes a new resizing algorithm that helps better manage panes"))),
|
// ActiveComponent::new(TextOrCustomRender::Text(Text::new("This version includes a new resizing algorithm that helps better manage panes"))),
|
||||||
]),
|
ActiveComponent::new(TextOrCustomRender::Text(Text::new("This version includes a web client, allowing you to share sessions in the browser."))),
|
||||||
ComponentLine::new(vec![
|
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(Text::new("into stacks."))),
|
|
||||||
]),
|
]),
|
||||||
])
|
])
|
||||||
.with_bulletin_list(BulletinList::new(Text::new("To try it out:").color_range(2, ..))
|
.with_bulletin_list(BulletinList::new(Text::new("The web client:").color_range(2, ..))
|
||||||
.with_items(vec![
|
.with_items(vec![
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(
|
ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
Text::new("Hide this pane with Alt f (you can bring it back with Alt f again)")
|
Text::new("Allows you to bookmark sessions")
|
||||||
.color_range(3, 20..=24)
|
.color_substring(3, "bookmark sessions")
|
||||||
.color_range(3, 54..=58)
|
|
||||||
)),
|
)),
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(
|
ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
Text::new("Open 4-5 panes with Alt n")
|
Text::new("Includes built-in authentication")
|
||||||
.color_range(3, 20..=24)
|
|
||||||
)),
|
)),
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(
|
ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
Text::new("Press Alt + until you reach full screen")
|
Text::new("Can be used as a daily-driver, making your terminal emulator optional")
|
||||||
.color_range(3, 6..=10)
|
|
||||||
)),
|
)),
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(
|
ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
Text::new("Press Alt - until you are back at the original state")
|
Text::new("Is completely opt-in")
|
||||||
.color_range(3, 6..=10)
|
|
||||||
)),
|
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(
|
|
||||||
Text::new("You can always snap back to the built-in swap layouts with Alt <[]>")
|
|
||||||
.color_range(3, 59..=61)
|
|
||||||
.color_range(3, 64..=65)
|
|
||||||
)),
|
)),
|
||||||
])
|
])
|
||||||
)
|
)
|
||||||
.with_paragraph(vec![
|
|
||||||
ComponentLine::new(vec![
|
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(
|
|
||||||
Text::new("To disable, add stacked_resize false to the Zellij Configuration")
|
|
||||||
.color_range(3, 16..=35)
|
|
||||||
)),
|
|
||||||
])
|
|
||||||
])
|
|
||||||
.with_paragraph(vec![
|
.with_paragraph(vec![
|
||||||
ComponentLine::new(vec![
|
ComponentLine::new(vec![
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(
|
ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
Text::new("For more details, see: ")
|
Text::new("For more details, see: ")
|
||||||
.color_range(2, ..)
|
.color_range(2, ..)
|
||||||
)),
|
)),
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(Text::new("https://zellij.dev/screencasts/stacked-resize")))
|
ActiveComponent::new(TextOrCustomRender::Text(Text::new("https://zellij.dev/tutorials/web-client")))
|
||||||
.with_hover(TextOrCustomRender::CustomRender(Box::new(stacked_resize_screencast_link_selected), Box::new(stacked_resize_screencast_link_selected_len)))
|
.with_hover(TextOrCustomRender::CustomRender(Box::new(web_client_screencast_link_selected), Box::new(web_client_screencast_link_selected_len)))
|
||||||
.with_left_click_action(ClickAction::new_open_link("https://zellij.dev/screencasts/stacked-resize".to_owned(), link_executable.clone()))
|
.with_left_click_action(ClickAction::new_open_link("https://zellij.dev/tutorials/web-client".to_owned(), link_executable.clone()))
|
||||||
])
|
])
|
||||||
])
|
])
|
||||||
.with_help(Box::new(|hovering_over_link, menu_item_is_selected| esc_go_back_plus_link_hover(hovering_over_link, menu_item_is_selected)))
|
.with_help(Box::new(|hovering_over_link, menu_item_is_selected| esc_go_back_plus_link_hover(hovering_over_link, menu_item_is_selected)))
|
||||||
}
|
}
|
||||||
fn new_pinned_panes(base_mode: Rc<RefCell<InputMode>>) -> Page {
|
fn new_multiple_select() -> Page {
|
||||||
Page::new()
|
Page::new()
|
||||||
.with_title(Text::new("Pinned Floating Panes").color_range(0, ..))
|
.with_title(Text::new("Multiple Pane Select").color_range(0, ..))
|
||||||
.with_paragraph(vec![
|
.with_paragraph(vec![
|
||||||
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
Text::new(
|
Text::new("This version adds the ability to perform bulk operations on panes"),
|
||||||
"This version adds the ability to \"pin\" a floating pane so that it",
|
|
||||||
),
|
|
||||||
))]),
|
))]),
|
||||||
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
Text::new("will always be visible even if floating panes are hidden."),
|
Text::new("eg. close, make floating, break to a new tab, etc."),
|
||||||
))]),
|
))]),
|
||||||
])
|
])
|
||||||
.with_bulletin_list(
|
.with_bulletin_list(
|
||||||
BulletinList::new(
|
BulletinList::new(
|
||||||
Text::new(format!("Floating panes can be \"pinned\": ")).color_range(2, ..),
|
Text::new(format!("To select multiple panes: ")).color_range(2, ..),
|
||||||
)
|
)
|
||||||
.with_items(vec![
|
.with_items(vec![
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(
|
ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
Text::new(format!("With a mouse click on their top right corner"))
|
Text::new(format!("Alt <left-click> them"))
|
||||||
.color_range(3, 7..=17),
|
.color_substring(3, "Alt <left-click>"),
|
||||||
|
)),
|
||||||
|
ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
|
Text::new(format!("Toggle with Alt p")).color_substring(3, "Alt p"),
|
||||||
)),
|
)),
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(match *base_mode.borrow() {
|
|
||||||
InputMode::Locked => Text::new(format!("With Ctrl g + p + i"))
|
|
||||||
.color_range(3, 5..=10)
|
|
||||||
.color_range(3, 14..15)
|
|
||||||
.color_range(3, 18..19),
|
|
||||||
_ => Text::new("With Ctrl p + i")
|
|
||||||
.color_range(3, 5..=10)
|
|
||||||
.color_range(3, 14..15),
|
|
||||||
})),
|
|
||||||
]),
|
]),
|
||||||
)
|
)
|
||||||
.with_paragraph(vec![
|
.with_paragraph(vec![
|
||||||
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
Text::new("A great use case for these is to tail log files or to show"),
|
Text::new("To disable this behavior (and the associated hover effects)"),
|
||||||
))]),
|
))]),
|
||||||
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
Text::new(format!(
|
Text::new(format!("add advanced_mouse_actions false to the config."))
|
||||||
"real-time compiler output while working in other panes."
|
.color_substring(3, "advanced_mouse_actions false"),
|
||||||
)),
|
|
||||||
))]),
|
))]),
|
||||||
])
|
])
|
||||||
.with_help(Box::new(|_hovering_over_link, _menu_item_is_selected| {
|
.with_help(Box::new(|_hovering_over_link, _menu_item_is_selected| {
|
||||||
esc_to_go_back_help()
|
esc_to_go_back_help()
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
fn new_theme_definition_spec(link_executable: Rc<RefCell<String>>) -> Page {
|
fn new_key_tooltips_for_compact_bar(link_executable: Rc<RefCell<String>>) -> Page {
|
||||||
Page::new()
|
Page::new()
|
||||||
.with_title(Text::new("New Theme Definition Spec").color_range(0, ..))
|
.with_title(Text::new("Key Tooltips for the compact-bar").color_range(0, ..))
|
||||||
.with_paragraph(vec![
|
|
||||||
ComponentLine::new(vec![
|
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(
|
|
||||||
Text::new("Starting this version, themes can be defined by UI components")
|
|
||||||
.color_range(3, 37..=60)
|
|
||||||
))
|
|
||||||
]),
|
|
||||||
ComponentLine::new(vec![
|
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(
|
|
||||||
Text::new("instead of the previously obscure color-to-color definitions.")
|
|
||||||
))
|
|
||||||
]),
|
|
||||||
])
|
|
||||||
.with_paragraph(vec![
|
|
||||||
ComponentLine::new(vec![
|
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(
|
|
||||||
Text::new("This both improves the convenience of theme creation and allows greater freedom")
|
|
||||||
))
|
|
||||||
]),
|
|
||||||
ComponentLine::new(vec![
|
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(
|
|
||||||
Text::new("for theme authors.")
|
|
||||||
))
|
|
||||||
]),
|
|
||||||
])
|
|
||||||
.with_paragraph(vec![
|
|
||||||
ComponentLine::new(vec![
|
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(
|
|
||||||
Text::new("For more information: ")
|
|
||||||
.color_range(2, ..)
|
|
||||||
)),
|
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(Text::new("https://zellij.dev/documentation/themes")))
|
|
||||||
.with_hover(TextOrCustomRender::CustomRender(Box::new(theme_link_selected), Box::new(theme_link_selected_len)))
|
|
||||||
.with_left_click_action(ClickAction::new_open_link("https://zellij.dev/documentation/themes".to_owned(), link_executable.clone()))
|
|
||||||
])
|
|
||||||
])
|
|
||||||
.with_help(Box::new(|hovering_over_link, menu_item_is_selected| esc_go_back_plus_link_hover(hovering_over_link, menu_item_is_selected)))
|
|
||||||
}
|
|
||||||
fn new_plugin_apis() -> Page {
|
|
||||||
Page::new()
|
|
||||||
.with_title(Text::new("New Plugin APIs").color_range(0, ..))
|
|
||||||
.with_paragraph(vec![
|
|
||||||
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
|
||||||
Text::new("New APIs were added in this version affording plugins"),
|
|
||||||
))]),
|
|
||||||
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
|
||||||
Text::new("finer control over the workspace."),
|
|
||||||
))]),
|
|
||||||
])
|
|
||||||
.with_bulletin_list(
|
|
||||||
BulletinList::new(Text::new("Some examples:").color_range(2, ..)).with_items(vec![
|
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(
|
|
||||||
Text::new("Change floating panes' coordinates and size")
|
|
||||||
.color_range(3, 23..=33)
|
|
||||||
.color_range(3, 39..=42),
|
|
||||||
)),
|
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(
|
|
||||||
Text::new("Stack arbitrary panes").color_range(3, ..=4),
|
|
||||||
)),
|
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(
|
|
||||||
Text::new("Change /host folder").color_range(3, 7..=11),
|
|
||||||
)),
|
|
||||||
ActiveComponent::new(TextOrCustomRender::Text(
|
|
||||||
Text::new("Discover the user's $SHELL and $EDITOR")
|
|
||||||
.color_range(3, 20..=25)
|
|
||||||
.color_range(3, 31..=37),
|
|
||||||
)),
|
|
||||||
]),
|
|
||||||
)
|
|
||||||
.with_help(Box::new(|_hovering_over_link, _menu_item_is_selected| {
|
|
||||||
esc_to_go_back_help()
|
|
||||||
}))
|
|
||||||
}
|
|
||||||
fn new_mouse_any_event() -> Page {
|
|
||||||
Page::new()
|
|
||||||
.with_title(Text::new("Mosue Any-Event Tracking").color_range(0, ..))
|
|
||||||
.with_paragraph(vec![
|
.with_paragraph(vec![
|
||||||
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
Text::new(
|
Text::new(
|
||||||
"This version adds the capability to track mouse motions more accurately",
|
"Starting this version, it's possible to add toggle-able key tooltips",
|
||||||
),
|
)
|
||||||
|
.color_range(3, 37..=60),
|
||||||
))]),
|
))]),
|
||||||
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
Text::new("both in Zellij, in terminal panes and in plugin panes."),
|
Text::new("when using the compact-bar.").color_substring(3, "compact-bar"),
|
||||||
))]),
|
))]),
|
||||||
])
|
])
|
||||||
.with_paragraph(vec![ComponentLine::new(vec![ActiveComponent::new(
|
.with_paragraph(vec![ComponentLine::new(vec![
|
||||||
TextOrCustomRender::Text(Text::new(
|
ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
"Future versions will also build on this capability to improve the Zellij UI",
|
Text::new("For more information: ").color_range(2, ..),
|
||||||
)),
|
)),
|
||||||
)])])
|
ActiveComponent::new(TextOrCustomRender::Text(Text::new(
|
||||||
|
"https://zellij.dev/documentation/faq.html",
|
||||||
|
)))
|
||||||
|
.with_hover(TextOrCustomRender::CustomRender(
|
||||||
|
Box::new(compact_bar_link_selected),
|
||||||
|
Box::new(compact_bar_link_selected_len),
|
||||||
|
))
|
||||||
|
.with_left_click_action(ClickAction::new_open_link(
|
||||||
|
"https://zellij.dev/documentation/faq.html".to_owned(),
|
||||||
|
link_executable.clone(),
|
||||||
|
)),
|
||||||
|
])])
|
||||||
|
.with_help(Box::new(|hovering_over_link, menu_item_is_selected| {
|
||||||
|
esc_go_back_plus_link_hover(hovering_over_link, menu_item_is_selected)
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
fn new_stack_keybinding() -> Page {
|
||||||
|
Page::new()
|
||||||
|
.with_title(Text::new("New Stack Keybinding").color_range(0, ..))
|
||||||
|
.with_paragraph(vec![
|
||||||
|
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
|
Text::new("It's now possible to open a stacked pane directly on top of the current pane").color_substring(2, "stacked pane"),
|
||||||
|
))]),
|
||||||
|
])
|
||||||
|
.with_paragraph(vec![
|
||||||
|
ComponentLine::new(vec![
|
||||||
|
ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
|
Text::new("By default: Ctrl p + s").color_substring(3, "Ctrl p").color_substring(3, " s"),
|
||||||
|
)),
|
||||||
|
]),
|
||||||
|
ComponentLine::new(vec![
|
||||||
|
ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
|
Text::new("In unlock first: Ctrl g + p + s").color_substring(3, "Ctrl g").color_substring(3, " p").color_substring(3, " s"),
|
||||||
|
)),
|
||||||
|
]),
|
||||||
|
])
|
||||||
|
.with_paragraph(vec![
|
||||||
|
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
|
Text::new("To add to an existing config, see the release notes.")
|
||||||
|
))]),
|
||||||
|
])
|
||||||
|
.with_help(Box::new(|_hovering_over_link, _menu_item_is_selected| {
|
||||||
|
esc_to_go_back_help()
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
fn new_performance_improvements() -> Page {
|
||||||
|
Page::new()
|
||||||
|
.with_title(Text::new("Performance Improvements").color_range(0, ..))
|
||||||
|
.with_paragraph(vec![
|
||||||
|
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
|
Text::new("This version adds a debounced asynchronous render mechanism"),
|
||||||
|
))]),
|
||||||
|
ComponentLine::new(vec![ActiveComponent::new(TextOrCustomRender::Text(
|
||||||
|
Text::new("making rendering much smoother across the whole application."),
|
||||||
|
))]),
|
||||||
|
])
|
||||||
.with_help(Box::new(|_hovering_over_link, _menu_item_is_selected| {
|
.with_help(Box::new(|_hovering_over_link, _menu_item_is_selected| {
|
||||||
esc_to_go_back_help()
|
esc_to_go_back_help()
|
||||||
}))
|
}))
|
||||||
|
|
@ -645,31 +597,31 @@ fn sponsors_link_text_selected_len() -> usize {
|
||||||
34
|
34
|
||||||
}
|
}
|
||||||
|
|
||||||
fn stacked_resize_screencast_link_selected(x: usize, y: usize) -> usize {
|
fn web_client_screencast_link_selected(x: usize, y: usize) -> usize {
|
||||||
print!(
|
print!(
|
||||||
"\u{1b}[{};{}H\u{1b}[m\u{1b}[1;4mhttps://zellij.dev/screencasts/stacked-resize",
|
"\u{1b}[{};{}H\u{1b}[m\u{1b}[1;4mhttps://zellij.dev/tutorials/web-client",
|
||||||
y + 1,
|
|
||||||
x + 1
|
|
||||||
);
|
|
||||||
45
|
|
||||||
}
|
|
||||||
|
|
||||||
fn stacked_resize_screencast_link_selected_len() -> usize {
|
|
||||||
45
|
|
||||||
}
|
|
||||||
|
|
||||||
fn theme_link_selected(x: usize, y: usize) -> usize {
|
|
||||||
print!(
|
|
||||||
"\u{1b}[{};{}H\u{1b}[m\u{1b}[1;4mhttps://zellij.dev/documentation/themes",
|
|
||||||
y + 1,
|
y + 1,
|
||||||
x + 1
|
x + 1
|
||||||
);
|
);
|
||||||
39
|
39
|
||||||
}
|
}
|
||||||
fn theme_link_selected_len() -> usize {
|
|
||||||
|
fn web_client_screencast_link_selected_len() -> usize {
|
||||||
39
|
39
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn compact_bar_link_selected(x: usize, y: usize) -> usize {
|
||||||
|
print!(
|
||||||
|
"\u{1b}[{};{}H\u{1b}[m\u{1b}[1;4mhttps://zellij.dev/documentation/faq.html",
|
||||||
|
y + 1,
|
||||||
|
x + 1
|
||||||
|
);
|
||||||
|
41
|
||||||
|
}
|
||||||
|
fn compact_bar_link_selected_len() -> usize {
|
||||||
|
41
|
||||||
|
}
|
||||||
|
|
||||||
// Text components
|
// Text components
|
||||||
fn whats_new_title() -> Text {
|
fn whats_new_title() -> Text {
|
||||||
Text::new("What's new?")
|
Text::new("What's new?")
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue