aboutsummaryrefslogtreecommitdiff
path: root/src/app
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@hey.com>2026-08-09 00:37:57 +0200
committerGitHub <noreply@github.com>2026-08-09 01:37:57 +0300
commit36a8d36a7258e08b40c01bf521b1f4006525f143 (patch)
treeedaf35204db558c4d6b5a79ab78b6d6e5138c9dc /src/app
parent3a76fea2d858a7a5ef58615f1cc9aabaa30b80ee (diff)
feat: make outer pane borders configurable (#2535)
Diffstat (limited to 'src/app')
-rw-r--r--src/app/agent_resume.rs23
-rw-r--r--src/app/api/panes.rs1
-rw-r--r--src/app/mod.rs2
-rw-r--r--src/app/state.rs2
4 files changed, 20 insertions, 8 deletions
diff --git a/src/app/agent_resume.rs b/src/app/agent_resume.rs
index 1b459628..29c2c317 100644
--- a/src/app/agent_resume.rs
+++ b/src/app/agent_resume.rs
@@ -130,6 +130,7 @@ impl App {
terminal_area,
self.state.pane_borders,
self.state.pane_gaps,
+ self.state.pane_outer_borders,
);
if self.state.active == Some(ws_idx)
@@ -290,15 +291,21 @@ fn derived_pending_agent_resume_pane_infos(
terminal_area: Rect,
pane_borders: bool,
pane_gaps: bool,
+ pane_outer_borders: bool,
) -> Vec<crate::layout::PaneInfo> {
- crate::ui::apply_pane_chrome(tab.layout.panes(terminal_area), pane_borders, pane_gaps)
- .into_iter()
- .map(|mut info| {
- let pane_inner = crate::ui::pane_inner_rect(info.rect, info.borders);
- info.inner_rect = stable_terminal_inner_rect(pane_inner);
- info
- })
- .collect()
+ crate::ui::apply_pane_chrome(
+ tab.layout.panes(terminal_area),
+ pane_borders,
+ pane_gaps,
+ pane_outer_borders,
+ )
+ .into_iter()
+ .map(|mut info| {
+ let pane_inner = crate::ui::pane_inner_rect(info.rect, info.borders);
+ info.inner_rect = stable_terminal_inner_rect(pane_inner);
+ info
+ })
+ .collect()
}
fn stable_terminal_inner_rect(pane_inner: Rect) -> Rect {
diff --git a/src/app/api/panes.rs b/src/app/api/panes.rs
index 4cbdd661..6615fa0a 100644
--- a/src/app/api/panes.rs
+++ b/src/app/api/panes.rs
@@ -1714,6 +1714,7 @@ impl App {
tab.layout.panes(area),
self.state.pane_borders,
self.state.pane_gaps,
+ self.state.pane_outer_borders,
)
.into_iter()
.filter_map(|pane| {
diff --git a/src/app/mod.rs b/src/app/mod.rs
index 7fb8a01c..70d5fe93 100644
--- a/src/app/mod.rs
+++ b/src/app/mod.rs
@@ -631,6 +631,7 @@ impl App {
prompt_new_tab_name: config.ui.prompt_new_tab_name,
prompt_new_workspace_name: config.ui.prompt_new_workspace_name,
pane_borders: config.ui.pane_borders,
+ pane_outer_borders: config.ui.pane_outer_borders,
pane_scrollbars: config.ui.pane_scrollbars,
pane_gaps: config.ui.pane_gaps,
show_agent_labels_on_pane_borders: config.ui.show_agent_labels_on_pane_borders,
@@ -1439,6 +1440,7 @@ impl App {
self.state.prompt_new_tab_name = config.ui.prompt_new_tab_name;
self.state.prompt_new_workspace_name = config.ui.prompt_new_workspace_name;
self.state.pane_borders = config.ui.pane_borders;
+ self.state.pane_outer_borders = config.ui.pane_outer_borders;
self.state.pane_scrollbars = config.ui.pane_scrollbars;
self.state.pane_gaps = config.ui.pane_gaps;
self.state.show_agent_labels_on_pane_borders =
diff --git a/src/app/state.rs b/src/app/state.rs
index 97266344..04876290 100644
--- a/src/app/state.rs
+++ b/src/app/state.rs
@@ -1464,6 +1464,7 @@ pub struct AppState {
pub prompt_new_tab_name: bool,
pub prompt_new_workspace_name: bool,
pub pane_borders: bool,
+ pub pane_outer_borders: bool,
pub pane_scrollbars: bool,
pub pane_gaps: bool,
pub show_agent_labels_on_pane_borders: bool,
@@ -1833,6 +1834,7 @@ impl AppState {
prompt_new_tab_name: true,
prompt_new_workspace_name: false,
pane_borders: true,
+ pane_outer_borders: true,
pane_scrollbars: true,
pane_gaps: false,
show_agent_labels_on_pane_borders: false,