aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-server/src/tab
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2026-01-22 11:45:16 +0100
committerGitHub <noreply@github.com>2026-01-22 11:45:16 +0100
commit81ca742a694fdfebc8efcb0a01490744f259a4e1 (patch)
treea664d17442ba601f541d36c5890775e8549b29b1 /zellij-server/src/tab
parentFix breaking panes behavior (#4622) (diff)
downloadsl0ppij-81ca742a694fdfebc8efcb0a01490744f259a4e1.tar.gz
sl0ppij-81ca742a694fdfebc8efcb0a01490744f259a4e1.tar.xz
sl0ppij-81ca742a694fdfebc8efcb0a01490744f259a4e1.zip
Allow disabling OSC8 link generation (#4624)
* implementation * rustfmt * add pr
Diffstat (limited to 'zellij-server/src/tab')
-rw-r--r--zellij-server/src/tab/layout_applier.rs5
-rw-r--r--zellij-server/src/tab/mod.rs15
-rw-r--r--zellij-server/src/tab/unit/layout_applier_tests.rs118
-rw-r--r--zellij-server/src/tab/unit/tab_integration_tests.rs24
-rw-r--r--zellij-server/src/tab/unit/tab_tests.rs6
5 files changed, 166 insertions, 2 deletions
diff --git a/zellij-server/src/tab/layout_applier.rs b/zellij-server/src/tab/layout_applier.rs
index 40eb4a11..16fecdbb 100644
--- a/zellij-server/src/tab/layout_applier.rs
+++ b/zellij-server/src/tab/layout_applier.rs
@@ -41,6 +41,7 @@ pub struct LayoutApplier<'a> {
debug: bool,
arrow_fonts: bool,
styled_underlines: bool,
+ osc8_hyperlinks: bool,
explicitly_disable_kitty_keyboard_protocol: bool,
blocking_terminal: Option<(u32, NotificationEnd)>,
}
@@ -65,6 +66,7 @@ impl<'a> LayoutApplier<'a> {
debug: bool,
arrow_fonts: bool,
styled_underlines: bool,
+ osc8_hyperlinks: bool,
explicitly_disable_kitty_keyboard_protocol: bool,
blocking_terminal: Option<(u32, NotificationEnd)>,
) -> Self {
@@ -98,6 +100,7 @@ impl<'a> LayoutApplier<'a> {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
blocking_terminal,
}
@@ -637,6 +640,7 @@ impl<'a> LayoutApplier<'a> {
self.debug,
self.arrow_fonts,
self.styled_underlines,
+ self.osc8_hyperlinks,
self.explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -706,6 +710,7 @@ impl<'a> LayoutApplier<'a> {
self.debug,
self.arrow_fonts,
self.styled_underlines,
+ self.osc8_hyperlinks,
self.explicitly_disable_kitty_keyboard_protocol,
notification_end,
);
diff --git a/zellij-server/src/tab/mod.rs b/zellij-server/src/tab/mod.rs
index fac0494f..ab794853 100644
--- a/zellij-server/src/tab/mod.rs
+++ b/zellij-server/src/tab/mod.rs
@@ -263,6 +263,7 @@ pub(crate) struct Tab {
debug: bool,
arrow_fonts: bool,
styled_underlines: bool,
+ osc8_hyperlinks: bool,
explicitly_disable_kitty_keyboard_protocol: bool,
web_clients_allowed: bool,
web_sharing: WebSharing,
@@ -684,6 +685,7 @@ impl Tab {
debug: bool,
arrow_fonts: bool,
styled_underlines: bool,
+ osc8_hyperlinks: bool,
explicitly_disable_kitty_keyboard_protocol: bool,
default_editor: Option<PathBuf>,
web_clients_allowed: bool,
@@ -785,6 +787,7 @@ impl Tab {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
default_editor,
web_clients_allowed,
@@ -830,6 +833,7 @@ impl Tab {
self.debug,
self.arrow_fonts,
self.styled_underlines,
+ self.osc8_hyperlinks,
self.explicitly_disable_kitty_keyboard_protocol,
blocking_terminal,
)
@@ -907,6 +911,7 @@ impl Tab {
self.debug,
self.arrow_fonts,
self.styled_underlines,
+ self.osc8_hyperlinks,
self.explicitly_disable_kitty_keyboard_protocol,
blocking_terminal,
)
@@ -999,6 +1004,7 @@ impl Tab {
self.debug,
self.arrow_fonts,
self.styled_underlines,
+ self.osc8_hyperlinks,
self.explicitly_disable_kitty_keyboard_protocol,
None,
)
@@ -1038,6 +1044,7 @@ impl Tab {
self.debug,
self.arrow_fonts,
self.styled_underlines,
+ self.osc8_hyperlinks,
self.explicitly_disable_kitty_keyboard_protocol,
None,
)
@@ -1513,6 +1520,7 @@ impl Tab {
self.debug,
self.arrow_fonts,
self.styled_underlines,
+ self.osc8_hyperlinks,
self.explicitly_disable_kitty_keyboard_protocol,
blocking_notification,
)) as Box<dyn Pane>
@@ -1625,6 +1633,7 @@ impl Tab {
self.debug,
self.arrow_fonts,
self.styled_underlines,
+ self.osc8_hyperlinks,
self.explicitly_disable_kitty_keyboard_protocol,
blocking_notification,
)) as Box<dyn Pane>
@@ -1726,6 +1735,7 @@ impl Tab {
self.debug,
self.arrow_fonts,
self.styled_underlines,
+ self.osc8_hyperlinks,
self.explicitly_disable_kitty_keyboard_protocol,
blocking_notification,
)) as Box<dyn Pane>
@@ -1871,6 +1881,7 @@ impl Tab {
self.debug,
self.arrow_fonts,
self.styled_underlines,
+ self.osc8_hyperlinks,
self.explicitly_disable_kitty_keyboard_protocol,
blocking_notification,
)) as Box<dyn Pane>
@@ -2085,6 +2096,7 @@ impl Tab {
self.debug,
self.arrow_fonts,
self.styled_underlines,
+ self.osc8_hyperlinks,
self.explicitly_disable_kitty_keyboard_protocol,
completion_tx,
);
@@ -2283,6 +2295,7 @@ impl Tab {
self.debug,
self.arrow_fonts,
self.styled_underlines,
+ self.osc8_hyperlinks,
self.explicitly_disable_kitty_keyboard_protocol,
completion_tx,
);
@@ -2349,6 +2362,7 @@ impl Tab {
self.debug,
self.arrow_fonts,
self.styled_underlines,
+ self.osc8_hyperlinks,
self.explicitly_disable_kitty_keyboard_protocol,
completion_tx,
);
@@ -5909,6 +5923,7 @@ impl Tab {
self.debug,
self.arrow_fonts,
self.styled_underlines,
+ self.osc8_hyperlinks,
self.explicitly_disable_kitty_keyboard_protocol,
None,
);
diff --git a/zellij-server/src/tab/unit/layout_applier_tests.rs b/zellij-server/src/tab/unit/layout_applier_tests.rs
index 4ccf6f22..698307cf 100644
--- a/zellij-server/src/tab/unit/layout_applier_tests.rs
+++ b/zellij-server/src/tab/unit/layout_applier_tests.rs
@@ -158,6 +158,7 @@ fn create_layout_applier_fixtures(
bool,
bool,
bool,
+ bool,
) {
let viewport = Rc::new(RefCell::new(Viewport {
x: 0,
@@ -228,6 +229,7 @@ fn create_layout_applier_fixtures(
let debug = false;
let arrow_fonts = true;
let styled_underlines = true;
+ let osc8_hyperlinks = true;
let explicitly_disable_kitty_keyboard_protocol = false;
(
@@ -249,6 +251,7 @@ fn create_layout_applier_fixtures(
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
)
}
@@ -277,6 +280,7 @@ fn create_layout_applier_fixtures_with_receivers(
bool,
bool,
bool,
+ bool,
Receiver<(PtyInstruction, zellij_utils::errors::ErrorContext)>,
Receiver<(PluginInstruction, zellij_utils::errors::ErrorContext)>,
) {
@@ -355,6 +359,7 @@ fn create_layout_applier_fixtures_with_receivers(
let debug = false;
let arrow_fonts = true;
let styled_underlines = true;
+ let osc8_hyperlinks = true;
let explicitly_disable_kitty_keyboard_protocol = false;
(
@@ -376,6 +381,7 @@ fn create_layout_applier_fixtures_with_receivers(
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
mock_pty_receiver,
mock_plugin_receiver,
@@ -577,6 +583,7 @@ fn test_apply_empty_layout() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -599,6 +606,7 @@ fn test_apply_empty_layout() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None, // blocking_terminal
);
@@ -660,6 +668,7 @@ fn test_apply_simple_two_pane_layout() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -682,6 +691,7 @@ fn test_apply_simple_two_pane_layout() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -744,6 +754,7 @@ fn test_apply_three_pane_layout() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -766,6 +777,7 @@ fn test_apply_three_pane_layout() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -827,6 +839,7 @@ fn test_apply_horizontal_split_with_sizes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -849,6 +862,7 @@ fn test_apply_horizontal_split_with_sizes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -910,6 +924,7 @@ fn test_apply_vertical_split_with_sizes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -932,6 +947,7 @@ fn test_apply_vertical_split_with_sizes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -996,6 +1012,7 @@ fn test_apply_nested_layout() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -1018,6 +1035,7 @@ fn test_apply_nested_layout() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -1078,6 +1096,7 @@ fn test_apply_layout_with_focus() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -1100,6 +1119,7 @@ fn test_apply_layout_with_focus() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -1163,6 +1183,7 @@ fn test_apply_layout_with_commands() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -1185,6 +1206,7 @@ fn test_apply_layout_with_commands() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -1245,6 +1267,7 @@ fn test_apply_layout_with_named_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -1267,6 +1290,7 @@ fn test_apply_layout_with_named_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -1327,6 +1351,7 @@ fn test_apply_layout_with_borderless_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -1349,6 +1374,7 @@ fn test_apply_layout_with_borderless_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -1418,6 +1444,7 @@ fn test_apply_layout_with_floating_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -1440,6 +1467,7 @@ fn test_apply_layout_with_floating_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -1510,6 +1538,7 @@ fn test_apply_layout_with_floating_pane_with_command() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -1532,6 +1561,7 @@ fn test_apply_layout_with_floating_pane_with_command() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -1616,6 +1646,7 @@ fn test_apply_layout_with_mixed_tiled_and_floating_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -1638,6 +1669,7 @@ fn test_apply_layout_with_mixed_tiled_and_floating_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -1705,6 +1737,7 @@ fn test_reapply_layout_exact_match() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -1727,6 +1760,7 @@ fn test_reapply_layout_exact_match() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -1806,6 +1840,7 @@ fn test_reapply_layout_logical_position_match() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -1828,6 +1863,7 @@ fn test_reapply_layout_logical_position_match() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -1908,6 +1944,7 @@ fn test_reapply_layout_with_more_positions() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -1930,6 +1967,7 @@ fn test_reapply_layout_with_more_positions() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -2015,6 +2053,7 @@ fn test_reapply_floating_pane_layout() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -2037,6 +2076,7 @@ fn test_reapply_floating_pane_layout() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -2126,6 +2166,7 @@ fn test_apply_complex_nested_layout() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -2148,6 +2189,7 @@ fn test_apply_complex_nested_layout() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -2213,6 +2255,7 @@ fn test_apply_layout_with_stacked_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -2235,6 +2278,7 @@ fn test_apply_layout_with_stacked_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -2306,6 +2350,7 @@ fn test_apply_layout_with_multiple_stacks() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -2328,6 +2373,7 @@ fn test_apply_layout_with_multiple_stacks() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -2406,6 +2452,7 @@ fn test_apply_layout_with_plugin_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -2428,6 +2475,7 @@ fn test_apply_layout_with_plugin_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -2512,6 +2560,7 @@ fn test_apply_layout_with_mixed_plugin_and_terminal_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -2534,6 +2583,7 @@ fn test_apply_layout_with_mixed_plugin_and_terminal_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -2601,6 +2651,7 @@ fn test_apply_layout_with_missing_plugin_ids() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -2623,6 +2674,7 @@ fn test_apply_layout_with_missing_plugin_ids() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -2676,6 +2728,7 @@ fn test_apply_layout_with_excess_terminal_ids() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -2698,6 +2751,7 @@ fn test_apply_layout_with_excess_terminal_ids() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -2771,6 +2825,7 @@ fn test_override_layout_basic_with_both_tiled_and_floating() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -2795,6 +2850,7 @@ fn test_override_layout_basic_with_both_tiled_and_floating() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -2913,6 +2969,7 @@ fn test_override_layout_hide_floating_panes_true() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -2937,6 +2994,7 @@ fn test_override_layout_hide_floating_panes_true() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -3043,6 +3101,7 @@ fn test_override_layout_show_floating_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -3067,6 +3126,7 @@ fn test_override_layout_show_floating_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -3179,6 +3239,7 @@ fn test_override_tiled_exact_match_preservation_commands() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -3203,6 +3264,7 @@ fn test_override_tiled_exact_match_preservation_commands() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -3304,6 +3366,7 @@ fn test_override_tiled_exact_match_preservation_plugins() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -3328,6 +3391,7 @@ fn test_override_tiled_exact_match_preservation_plugins() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -3427,6 +3491,7 @@ fn test_override_tiled_all_panes_closed_no_matches() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -3451,6 +3516,7 @@ fn test_override_tiled_all_panes_closed_no_matches() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -3555,6 +3621,7 @@ fn test_override_tiled_mixed_some_matches_some_new() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -3579,6 +3646,7 @@ fn test_override_tiled_mixed_some_matches_some_new() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -3674,6 +3742,7 @@ fn test_override_tiled_new_panes_for_unmatched_positions() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -3696,6 +3765,7 @@ fn test_override_tiled_new_panes_for_unmatched_positions() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -3783,6 +3853,7 @@ fn test_override_tiled_focus_on_new_pane() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -3805,6 +3876,7 @@ fn test_override_tiled_focus_on_new_pane() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -3892,6 +3964,7 @@ fn test_override_tiled_focus_when_focused_pane_closed() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -3916,6 +3989,7 @@ fn test_override_tiled_focus_when_focused_pane_closed() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -4016,6 +4090,7 @@ fn test_override_tiled_empty_layout_closes_all() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -4040,6 +4115,7 @@ fn test_override_tiled_empty_layout_closes_all() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -4153,6 +4229,7 @@ fn test_override_floating_exact_match_preservation() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -4177,6 +4254,7 @@ fn test_override_floating_exact_match_preservation() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -4294,6 +4372,7 @@ fn test_override_floating_all_closed_no_matches() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -4318,6 +4397,7 @@ fn test_override_floating_all_closed_no_matches() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -4437,6 +4517,7 @@ fn test_override_floating_new_panes_created() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -4459,6 +4540,7 @@ fn test_override_floating_new_panes_created() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -4579,6 +4661,7 @@ fn test_override_floating_focus_handling() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -4603,6 +4686,7 @@ fn test_override_floating_focus_handling() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -4712,6 +4796,7 @@ fn test_override_floating_position_and_size_update() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -4734,6 +4819,7 @@ fn test_override_floating_position_and_size_update() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -4823,6 +4909,7 @@ fn test_override_floating_return_value_has_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
) = create_layout_applier_fixtures(size);
@@ -4845,6 +4932,7 @@ fn test_override_floating_return_value_has_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -4944,6 +5032,7 @@ fn test_override_floating_return_value_no_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -4968,6 +5057,7 @@ fn test_override_floating_return_value_no_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -5083,6 +5173,7 @@ fn test_override_full_tiled_and_floating_together() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -5107,6 +5198,7 @@ fn test_override_full_tiled_and_floating_together() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -5227,6 +5319,7 @@ fn test_override_viewport_adjustment_with_borderless() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -5251,6 +5344,7 @@ fn test_override_viewport_adjustment_with_borderless() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -5349,6 +5443,7 @@ fn test_override_tiled_retain_terminal_panes_partial_match() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -5373,6 +5468,7 @@ fn test_override_tiled_retain_terminal_panes_partial_match() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -5480,6 +5576,7 @@ fn test_override_tiled_retain_terminal_panes_no_matches() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -5504,6 +5601,7 @@ fn test_override_tiled_retain_terminal_panes_no_matches() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -5626,6 +5724,7 @@ fn test_override_floating_retain_terminal_panes_partial_match() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -5650,6 +5749,7 @@ fn test_override_floating_retain_terminal_panes_partial_match() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -5782,6 +5882,7 @@ fn test_override_floating_retain_terminal_panes_no_matches() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -5806,6 +5907,7 @@ fn test_override_floating_retain_terminal_panes_no_matches() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -5944,6 +6046,7 @@ fn test_override_mixed_retain_terminal_panes_both_tiled_and_floating() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -5968,6 +6071,7 @@ fn test_override_mixed_retain_terminal_panes_both_tiled_and_floating() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -6103,6 +6207,7 @@ fn test_override_retain_terminal_but_close_plugin_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -6127,6 +6232,7 @@ fn test_override_retain_terminal_but_close_plugin_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -6259,6 +6365,7 @@ fn test_override_tiled_retain_plugin_panes_partial_match() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -6283,6 +6390,7 @@ fn test_override_tiled_retain_plugin_panes_partial_match() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -6396,6 +6504,7 @@ fn test_override_tiled_retain_plugin_panes_no_matches() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -6420,6 +6529,7 @@ fn test_override_tiled_retain_plugin_panes_no_matches() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -6548,6 +6658,7 @@ fn test_override_floating_retain_plugin_panes_partial_match() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -6572,6 +6683,7 @@ fn test_override_floating_retain_plugin_panes_partial_match() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -6695,6 +6807,7 @@ fn test_override_floating_retain_plugin_panes_no_matches() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -6719,6 +6832,7 @@ fn test_override_floating_retain_plugin_panes_no_matches() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -6850,6 +6964,7 @@ fn test_override_mixed_retain_plugin_panes_both_tiled_and_floating() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -6874,6 +6989,7 @@ fn test_override_mixed_retain_plugin_panes_both_tiled_and_floating() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
@@ -7005,6 +7121,7 @@ fn test_override_retain_plugin_but_close_terminal_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
pty_receiver,
plugin_receiver,
@@ -7029,6 +7146,7 @@ fn test_override_retain_plugin_but_close_terminal_panes() {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
);
diff --git a/zellij-server/src/tab/unit/tab_integration_tests.rs b/zellij-server/src/tab/unit/tab_integration_tests.rs
index 54b80f71..627af6af 100644
--- a/zellij-server/src/tab/unit/tab_integration_tests.rs
+++ b/zellij-server/src/tab/unit/tab_integration_tests.rs
@@ -235,6 +235,7 @@ fn create_new_tab(size: Size, default_mode: ModeInfo) -> Tab {
let debug = false;
let arrow_fonts = true;
let styled_underlines = true;
+ let osc8_hyperlinks = true;
let explicitly_disable_kitty_keyboard_protocol = false;
let advanced_mouse_actions = true;
let web_sharing = WebSharing::Off;
@@ -266,6 +267,7 @@ fn create_new_tab(size: Size, default_mode: ModeInfo) -> Tab {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
false,
@@ -317,6 +319,7 @@ fn create_new_tab_without_pane_frames(size: Size, default_mode: ModeInfo) -> Tab
let debug = false;
let arrow_fonts = true;
let styled_underlines = true;
+ let osc8_hyperlinks = true;
let explicitly_disable_kitty_keyboard_protocol = false;
let advanced_mouse_actions = true;
let web_sharing = WebSharing::Off;
@@ -348,6 +351,7 @@ fn create_new_tab_without_pane_frames(size: Size, default_mode: ModeInfo) -> Tab
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
false,
@@ -414,6 +418,7 @@ fn create_new_tab_with_swap_layouts(
let debug = false;
let arrow_fonts = true;
let styled_underlines = true;
+ let osc8_hyperlinks = true;
let explicitly_disable_kitty_keyboard_protocol = false;
let advanced_mouse_actions = true;
let web_sharing = WebSharing::Off;
@@ -445,6 +450,7 @@ fn create_new_tab_with_swap_layouts(
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
false,
@@ -512,6 +518,7 @@ fn create_new_tab_with_os_api(
let debug = false;
let arrow_fonts = true;
let styled_underlines = true;
+ let osc8_hyperlinks = true;
let explicitly_disable_kitty_keyboard_protocol = false;
let advanced_mouse_actions = true;
let web_sharing = WebSharing::Off;
@@ -543,6 +550,7 @@ fn create_new_tab_with_os_api(
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
false,
@@ -596,6 +604,7 @@ fn create_new_tab_with_layout(size: Size, default_mode: ModeInfo, layout: &str)
let debug = false;
let arrow_fonts = true;
let styled_underlines = true;
+ let osc8_hyperlinks = true;
let explicitly_disable_kitty_keyboard_protocol = false;
let advanced_mouse_actions = true;
let web_sharing = WebSharing::Off;
@@ -627,6 +636,7 @@ fn create_new_tab_with_layout(size: Size, default_mode: ModeInfo, layout: &str)
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
false,
@@ -694,6 +704,7 @@ fn create_new_tab_with_mock_pty_writer(
let debug = false;
let arrow_fonts = true;
let styled_underlines = true;
+ let osc8_hyperlinks = true;
let explicitly_disable_kitty_keyboard_protocol = false;
let advanced_mouse_actions = true;
let web_sharing = WebSharing::Off;
@@ -725,6 +736,7 @@ fn create_new_tab_with_mock_pty_writer(
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
false,
@@ -783,6 +795,7 @@ fn create_new_tab_with_sixel_support(
let debug = false;
let arrow_fonts = true;
let styled_underlines = true;
+ let osc8_hyperlinks = true;
let explicitly_disable_kitty_keyboard_protocol = false;
let advanced_mouse_actions = true;
let web_sharing = WebSharing::Off;
@@ -814,6 +827,7 @@ fn create_new_tab_with_sixel_support(
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
false,
@@ -862,6 +876,7 @@ fn take_snapshot(ansi_instructions: &str, rows: usize, columns: usize, palette:
let debug = false;
let arrow_fonts = true;
let styled_underlines = true;
+ let osc8_hyperlinks = true;
let explicitly_disable_kitty_keyboard_protocol = false;
let mut grid = Grid::new(
rows,
@@ -875,6 +890,7 @@ fn take_snapshot(ansi_instructions: &str, rows: usize, columns: usize, palette:
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
);
let mut vte_parser = vte::Parser::new();
@@ -899,6 +915,7 @@ fn take_snapshot_with_sixel(
let debug = false;
let arrow_fonts = true;
let styled_underlines = true;
+ let osc8_hyperlinks = true;
let explicitly_disable_kitty_keyboard_protocol = false;
let mut grid = Grid::new(
rows,
@@ -912,6 +929,7 @@ fn take_snapshot_with_sixel(
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
);
let mut vte_parser = vte::Parser::new();
@@ -933,6 +951,7 @@ fn take_snapshot_and_cursor_position(
let debug = false;
let arrow_fonts = true;
let styled_underlines = true;
+ let osc8_hyperlinks = true;
let explicitly_disable_kitty_keyboard_protocol = false;
let mut grid = Grid::new(
rows,
@@ -946,6 +965,7 @@ fn take_snapshot_and_cursor_position(
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
);
let mut vte_parser = vte::Parser::new();
@@ -3358,7 +3378,7 @@ fn move_floating_pane_with_sixel_image() {
width: 8,
height: 21,
})));
- let mut output = Output::new(sixel_image_store.clone(), character_cell_size, true);
+ let mut output = Output::new(sixel_image_store.clone(), character_cell_size, true, true);
tab.toggle_floating_panes(Some(client_id), None, None)
.unwrap();
@@ -3412,7 +3432,7 @@ fn floating_pane_above_sixel_image() {
width: 8,
height: 21,
})));
- let mut output = Output::new(sixel_image_store.clone(), character_cell_size, true);
+ let mut output = Output::new(sixel_image_store.clone(), character_cell_size, true, true);
tab.toggle_floating_panes(Some(client_id), None, None)
.unwrap();
diff --git a/zellij-server/src/tab/unit/tab_tests.rs b/zellij-server/src/tab/unit/tab_tests.rs
index 3adbf43b..fec63764 100644
--- a/zellij-server/src/tab/unit/tab_tests.rs
+++ b/zellij-server/src/tab/unit/tab_tests.rs
@@ -175,6 +175,7 @@ fn create_new_tab(size: Size, stacked_resize: bool) -> Tab {
let debug = false;
let arrow_fonts = true;
let styled_underlines = true;
+ let osc8_hyperlinks = true;
let explicitly_disable_kitty_keyboard_protocol = false;
let advanced_mouse_actions = true;
let web_sharing = WebSharing::Off;
@@ -206,6 +207,7 @@ fn create_new_tab(size: Size, stacked_resize: bool) -> Tab {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
false,
@@ -256,6 +258,7 @@ fn create_new_tab_with_layout(size: Size, layout: TiledPaneLayout) -> Tab {
let debug = false;
let arrow_fonts = true;
let styled_underlines = true;
+ let osc8_hyperlinks = true;
let explicitly_disable_kitty_keyboard_protocol = false;
let advanced_mouse_actions = true;
let web_sharing = WebSharing::Off;
@@ -287,6 +290,7 @@ fn create_new_tab_with_layout(size: Size, layout: TiledPaneLayout) -> Tab {
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
false,
@@ -343,6 +347,7 @@ fn create_new_tab_with_cell_size(
let debug = false;
let arrow_fonts = true;
let styled_underlines = true;
+ let osc8_hyperlinks = true;
let explicitly_disable_kitty_keyboard_protocol = false;
let advanced_mouse_actions = true;
let web_sharing = WebSharing::Off;
@@ -374,6 +379,7 @@ fn create_new_tab_with_cell_size(
debug,
arrow_fonts,
styled_underlines,
+ osc8_hyperlinks,
explicitly_disable_kitty_keyboard_protocol,
None,
false,