feat(layout): add tabbed window groups and scrolling columns

This commit is contained in:
Samuel Onoja committed 2026-10-12 23:26:00 +01:00
1 parent 7d58eeb65d
commit bfa78f62f2
27 files changed
+1480 -47

No files matched your search

+21 -1
View File
@@ -270,13 +270,30 @@ impl Ferese {
}
pub fn consume_focused_window(&mut self) {
if self.workspaces.active().fullscreen.is_some() {
return;
}
let Some(window) = self.focused_window else {
return;
};
let Some(bounds) = self.output_bounds() else {
return;
};
if self.workspaces.active().layout.mode() != LayoutMode::Scrolling {
if self.workspaces.active().layout.mode() == LayoutMode::Tree {
if let Some(direction) = [Direction::Left, Direction::Right, Direction::Up, Direction::Down]
.into_iter()
.find(|direction| {
self.workspaces
.active()
.layout
.directional_neighbor(window, *direction, bounds)
.ok()
.flatten()
.is_some()
})
{
self.join_tab(direction);
}
return;
}
let target = self
@@ -306,6 +323,9 @@ impl Ferese {
}
pub fn expel_focused_window(&mut self) {
if self.workspaces.active().fullscreen.is_some() {
return;
}
let Some(window) = self.focused_window else {
return;
};