Add mouse window controls and finer display scaling (#63)

Add configurable mouse and wheel bindings, window move and resize, tab drops, cross-output dragging, and device settings. Adjust display scaling in 0.05 increments.

Preserve opposite-edge positioning during scrolling resizes and show rows for edge drops into tabbed columns.
This commit is contained in:
Samuel Onoja authored and GitHub committed 2026-10-25 14:14:35 +01:00
1 parent ab11269246
commit ad00e55fe4
35 files changed
+3454 -512

No files matched your search

+11 -1
View File
@@ -232,7 +232,7 @@ fn scene_elements(
presentation_alpha,
))
};
let windows = if workspace.is_none() && state.overview.is_active() {
let mut windows = if workspace.is_none() && state.overview.is_active() {
state
.windows
.overview_windows()
@@ -258,6 +258,16 @@ fn scene_elements(
.collect::<Vec<_>>()
};
if let Some(operation) = state
.pointer_operation
.as_ref()
.filter(|operation| operation.visual.is_some())
&& let Some(index) = windows.iter().position(|(_, id, ..)| *id == operation.id)
{
// A dragged tile stays above floating windows, even after a relayout.
windows[..=index].rotate_right(1);
}
let mut closing = if workspace.is_some() {
Default::default()
} else {