Skip to content

feat: Niri-style scrolling layout, per-monitor layouts and morphing window motion (2.3.0) - #12

Merged
Page011 merged 1 commit into
mainfrom
feat/scrolling-layout
Oct 12, 2026
Merged

Page011 merged 1 commit into
mainfrom
feat/scrolling-layout

Conversation

@Page011

@Page011 Page011 commented Oct 12, 2026

Copy link
Copy Markdown
Owner

Astur 2.3.0: Niri-style scrolling layout, per-monitor layouts, tabbed columns, and morphing window motion with dim-aware opacity. Full changelog in the commit message.

…indow motion (2.3.0)

Scrolling layout (layout = scrolling, opt-in):
- Columns on an endless horizontal strip, several on screen at once. Widths
  are screen fractions (default 1/2); Alt+R cycles 1/3, 1/2, 2/3, full,
  Alt+H/L step by 0.1, Alt+M toggles full width. New windows open right of
  the focused column.
- Stacked columns: Alt+[ / Alt+] pull a window into the neighbouring column
  or push it back out; Alt+Shift+R cycles window heights.
- Tabbed columns: Alt+Shift+T shows a column as tabs under a tab bar (icon
  and title per tab, click to switch, Alt-drag the bar to move the column).
- Off-screen columns peek only where no monitor is beside the edge, and are
  otherwise parked outside the virtual screen, so nothing bleeds onto a
  neighbouring monitor. Parked windows keep their taskbar button and
  Alt+Tab entry; activating one scrolls it into view. Quit, a relaunch
  after a crash, or leaving the layout brings every window back.
- scroll_center = never | always | on-overflow, Alt+C centres once.
- Alt+wheel, horizontal wheel and touchpad swipes scroll one column per
  step on the monitor under the cursor. Alt-drag drops make a new column or
  stack into one; Alt+right-drag resizes column width or window height.
- New actions for extra_hotkeys and IPC: focus_column_left/right,
  move_column_left/right, cycle_width, cycle_height, center_column,
  consume_left/right, toggle_tabbed, maximize_column, first_column,
  last_column.

Per-monitor layouts: monitor_layouts overrides layout by monitor number
(1 = leftmost), e.g. monitor_layouts = scrolling, , master.

Window motion (all layouts):
- Every move and resize animates position and size together (a morph)
  through an overlay of live DWM thumbnails; real windows are still placed
  instantly underneath. Covers scrolling, retiles, open/close reflow,
  swaps, master resize and Alt-drag drops.
- Dimmed (unfocused) windows keep their opacity during motion instead of
  flashing to full; focus changes crossfade between the two levels.
- Motion follows the real stacking order, floating windows stay above the
  tiles, and windows that refuse their slot size no longer pop at the end.

Settings GUI: new Scrolling layout and Per-monitor layouts sections.

Key change: Alt+Shift+T now toggles a tabbed column (it used to act like
Alt+T). Alt+T still toggles tiling.
@Page011
Page011 merged commit 5fc7320 into main Oct 12, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant