aboutsummaryrefslogtreecommitdiff
path: root/src/layout/mod.rs
AgeCommit message (Collapse)Author
2025-11-24layout: Round focus ring/border width to physical at the right placeIvan Molodetskikh
Before this, focus ring/border width was incorrectly rounded only for layout config, which does not take into account window rules overrides. This means that setting width in window rules prevented correct rounding altogether. Tests didn't check this because window rules weren't tested. This commit also adds basic window rules random generation, making the tests catch this problem too.
2025-11-21Unify pointer & touch move grab, add view offset to itIvan Molodetskikh
2025-10-15Implement maximize-to-edges (true Wayland maximize)Ivan Molodetskikh
2025-10-15layout: Fix anim jump when releasing interactive move in the overviewIvan Molodetskikh
Probably the tile window loc wasn't zoomed when it should. But also the interactive move grab case doesn't consider the window loc at all, which seems to work ok, so let's do that until a problem is found with it.
2025-10-15layout: Unfullscreen before removing for interactive moveIvan Molodetskikh
Several reasons for this: - Remove the sizing code from interactive move duplicated with toggle_window_floating. - Make the tiled size restore too instead of requesting 0x0 (which doesn't work for windows in the Tiled state).
2025-10-02config: Add merging for misc sectionsIvan Molodetskikh
2025-10-02Partially implement config includesIvan Molodetskikh
Subsequent commits will add merging for all leftover sections.
2025-10-02layout: Move scrolling width resolution to workspaceIvan Molodetskikh
This is required now with per-output and per-workspace options.
2025-10-02Add per-output layout configIvan Molodetskikh
2025-10-02Add per-workspace layout configIvan Molodetskikh
Per-workspace background-color doesn't work yet.
2025-10-02layout: Extract Monitor::append_workspaces()Ivan Molodetskikh
2025-10-02layout: Move empty workspace handling to Monitor::new()Ivan Molodetskikh
2025-10-02layout: Extract Monitor::into_workspaces()Ivan Molodetskikh
2025-10-02layout: Deduplicate move_workspace_to_output()Ivan Molodetskikh
2025-10-02layout: Extract Monitor::insert_workspace()Ivan Molodetskikh
2025-10-02layout: Extract Monitor::remove_workspace_by_idx()Ivan Molodetskikh
2025-10-02layout: Remove unname_workspace() clean-up to MonitorIvan Molodetskikh
2025-10-02layout: Extract Monitor::verify_invariants()Ivan Molodetskikh
2025-10-02layout: Extract Layout::monitors{,_mut}()Ivan Molodetskikh
2025-10-02layout: Store Layout directly in OptionsIvan Molodetskikh
2025-10-02config: Split Layout from LayoutPartIvan Molodetskikh
2025-10-02config: Replace resolve_against with MergeWithIvan Molodetskikh
2025-09-20Move workspace options check to workspace testsIvan Molodetskikh
2025-09-16layout: End DnD gesture when toggling interactive move to floatingIvan Molodetskikh
Effective behavior mostly unchanged (it would end on refresh()), but this was failing the invariant checks.
2025-09-16layout: Fix crash when a window opens next-to an only interactively moved ↵Ivan Molodetskikh
window with no outputs
2025-08-29Add cycle back feature for presets of column/window width/height.Said Kadrioski
2025-08-27Fix typosIvan Molodetskikh
2025-08-27Fix focus=false for move-column-to-workspace*, add to ↵gibberish
move-window-to-workspace-up/down
2025-08-16niri-ipc: Add window positions and sizes (#1265)yrkv
* Add window sizes and positions to the IPC * basic fixes * report window_loc instead of window pos * clean ups * make scrolling indices 1-based * add printing to niri msg windows * don't include render offset in floating tile pos --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-14layout: Remove by-ref animation_snapshot() getterIvan Molodetskikh
It was used in only one place, and that place was due for an update to use the cached data.
2025-06-11Add deactivate-unfocused-windows debug flag (#1706)sashomasho
* force xdg deactivation on invisable workspaces This debug option provides a workaround for many Chromium-based chat applications that fail to show notifications when they're active in a workspace that's not currently visible and don't have keyboard focus Signed-off-by: Alex Yosifov <sashomasho@gmail.com> * fixes --------- Signed-off-by: Alex Yosifov <sashomasho@gmail.com> Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-05-16Deal with new Clippy warningsIvan Molodetskikh
2025-05-12Add center-visible-columns actionIvan Molodetskikh
2025-05-10add window urgency through xdg-activation-v1Duncan Overbruck
urgency is done through activation requests without a serial from a previous interaction. https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/150
2025-05-01Implement --focus for MoveColumnToWorkspace/Up/DownAberter Yan
2025-04-30layout: Fix DnD scroll not stopping when interactive moving unfullscreen to ↵Ivan Molodetskikh
floating
2025-04-26overview: Activate window upon dropping from interactive moveIvan Molodetskikh
2025-04-25Fix panic when interactively moving to invisible workspaceIvan Molodetskikh
Introduced in the interactive move between workspaces commit.
2025-04-25Implement interactive move to a new workspace above/betweenIvan Molodetskikh
2025-04-25Implement DnD hold to activate window or workspaceIvan Molodetskikh
2025-04-25overview: Add DnD up/down scrollingIvan Molodetskikh
2025-04-25Implement an OverviewIvan Molodetskikh
2025-04-25Render workspaces separately with gaps betweenIvan Molodetskikh
This design makes more sense spatially, and is required for the Overview. Gaps also make it clear how clipping windows to workspace bounds works. Background and bottom layer-shell surfaces get duplicated for each workspace, while top and overlay stay "on top".
2025-04-25layout: Extract interactive_moved_window_under() and add output checkIvan Molodetskikh
Fixes interactively moved window getting input on every output rather than just its own.
2025-04-25Pass target workspace to view offset grabIvan Molodetskikh
2025-04-25layout/monitor: Cache scale, view_size, working_areaIvan Molodetskikh
2025-04-25layout: Move insert hint from ScrollingSpace to MonitorIvan Molodetskikh
2025-04-25layout/monitor: Extract workspaces_render_geo()Ivan Molodetskikh
2025-04-25Remove cancellation from swipe gesturesIvan Molodetskikh
It only worked for workspace switch, and even there it was more confusing than helpful.
2025-04-25Add missing bounds checks to move-workspace actionsIvan Molodetskikh
Fixes panics.