# What is a scrolling window manager?

Source: https://ribbonformac.com/what-is-a-scrolling-window-manager  
Updated: 2026-10-22

A scrolling window manager lines your windows up as columns on a horizontal strip that is wider than your screen. Opening a window adds a column instead of shrinking the others, and moving focus slides the strip so the window you want comes into view. niri and PaperWM made the idea popular on Linux, and several Mac apps now do the same.

## The idea in one picture

Most tiling window managers follow one rule: every window has to fit on the screen. Open a fourth window and the other three get thinner to make room. A scrolling window manager drops that rule. Your windows sit next to each other in columns on a long strip, and the display shows only part of it at a time.

```text
  off screen          what your display shows          off screen
             +-------------------------------------+
  [ Mail ]   |  [   Editor   ]   [   Terminal   ]  |  [ Browser ]  [ Chat ]
             +-------------------------------------+

  focus right  ->  the strip slides left and Browser comes into view
```

A new window opens as a column next to the one you're using. Nothing else changes size. When you move focus to a column that's off screen, the whole strip slides until it's visible. Each column keeps the width you gave it, so a code editor can stay wide and a chat window can stay narrow.

You'll also see this called *scrollable tiling*. It's the same thing.

## Scrolling vs tiling vs floating

| | Floating | Grid tiling | Scrolling |
| --- | --- | --- | --- |
| Where windows go | Wherever you drop them | The screen is split into tiles | Columns on a strip wider than the screen |
| When a window opens | It lands on top, often overlapping | Every other window shrinks | A column is added, the rest keep their size |
| What you see | Everything, piled up | Everything, side by side | A few columns, the rest a slide away |
| Who arranges | You | The window manager | The window manager |
| Examples | Plain macOS, Rectangle, Loop | yabai, AeroSpace, Amethyst | niri, PaperWM, Ribbon |

Floating is fine with two or three windows. Grid tiling is great until you have five or six windows and each one is too thin to read. Scrolling keeps every window usable, at the cost of not seeing them all at once.

## Scrolling window managers by operating system

### Linux

- **[niri](https://github.com/niri-wm/niri)** is a Wayland compositor written in Rust and the best-known scrolling window manager today. Each monitor gets its own strip and its own set of workspaces. GPL-3.0.
- **[PaperWM](https://github.com/paperwm/PaperWM)** is a GNOME Shell extension. It runs inside GNOME and is set up through a settings panel.
- **[Hyprland](https://github.com/hyprwm/Hyprland)** has shipped a built-in `scrolling` layout since version 0.54, next to its dwindle, master and monocle layouts. You can pick a layout per workspace.
- **[Karousel](https://github.com/peterfajdiga/karousel)** is a KWin script that adds a scrolling layout to KDE Plasma. It doesn't support multiple screens yet.
- **[scroll](https://github.com/dawsers/scroll)** is a sway fork with a PaperWM-style layout, from the author of the now-archived hyprscroller plugin.
- **[papersway](https://spwhitton.name/tech/code/papersway/)** runs on top of sway or i3 and turns each workspace into a row of windows.

### Windows

- **[komorebi](https://github.com/LGUG2Z/komorebi)** is a tiling manager with a `Scrolling` layout among its many layouts, showing three columns by default. It's free for personal use and needs a paid licence for work.

### Mac

- **Ribbon**, the app this site is about. Paid, with a settings window for everything, macOS 13 and later, Apple silicon (M1 or later), and it works inside macOS Spaces.
- **[OmniWM](https://github.com/OmniNull/OmniWM)**: free and open source, niri-style scrolling plus a dwindle layout. macOS 26 Tahoe on Apple silicon only.
- **[Nehir](https://github.com/apphane-dev/nehir)**: a fork of OmniWM cut down to the niri layout. Free, macOS 15 and later.
- **[PaperWM.spoon](https://github.com/mogenson/PaperWM.spoon)**: a plugin for Hammerspoon, configured in Lua. Free.
- **[Paneru](https://github.com/karinushka/paneru)**: a command-line window manager configured in TOML or Lua. Free, MIT, and the engine Ribbon is built on.

How they compare is in [the best scrolling window managers for Mac](https://ribbonformac.com/best-scrolling-window-managers-for-mac).

## A short history

PaperWM came first. It treated the desktop like a long sheet of paper you scroll along, and it proved the model works for everyday use. It is still maintained for current GNOME releases. Smaller experiments followed, such as Cardboard, an early Wayland compositor inspired by it.

niri started in 2023 and turned the idea into a full compositor built around the strip, with per-monitor workspaces, an overview and a config file that reloads as you type. Its popularity pulled scrolling into other places. Hyprland moved its scrolling plugin into the core, KDE got Karousel, sway got scroll and papersway, and komorebi on Windows added a scrolling layout.

Mac versions came after that: PaperWM.spoon for Hammerspoon users, Paneru as a standalone engine, OmniWM and Nehir, and Ribbon. macOS won't let an app push a window fully off screen, so each of them has to work around that. If you're coming from Linux, [niri for Mac](https://ribbonformac.com/niri-for-mac) and [PaperWM for Mac](https://ribbonformac.com/paperwm-for-mac) map what you know.

## The core moves

Every scrolling window manager has roughly the same handful of actions. Here they are with Ribbon's default keys.

- **Focus left and right.** Jump to the next column and the strip follows: <kbd>⌃⌥←</kbd> and <kbd>⌃⌥→</kbd> (or H and L).
- **Move a column.** Carry the focused window along the strip: <kbd>⌃⌥⇧←</kbd> and <kbd>⌃⌥⇧→</kbd>.
- **Cycle width presets.** One key steps the column through set widths, such as a third, a half and two thirds. <kbd>⌃⌥R</kbd> in Ribbon, Mod+R in niri. <kbd>⌃⌥F</kbd> makes a column full width.
- **Stack and pop out.** Put two windows in one column, one above the other, then pull one back out. niri calls this consume and expel. In Ribbon it's <kbd>⌃⌥]</kbd> and <kbd>⌃⌥⇧]</kbd>, and <kbd>⌃⌥⇧T</kbd> shows a stack as tabs.
- **Centre.** Bring the focused column to the middle of the screen with <kbd>⌃⌥C</kbd>. You can also tell Ribbon to centre never, only when the column doesn't fit, or always.
- **Swipe.** On a trackpad, a three-finger swipe slides the strip. Ribbon's swipe moves with your fingers and settles on the nearest column.

The quickest way to get the feel is to try it: the [live demo](https://ribbonformac.com/#demo) on the home page runs in your browser.

## Who it suits, and who it doesn't

It suits you if:

- You keep more windows open than fit side by side: an editor, a terminal, a browser, some docs, a chat.
- You work on a [MacBook screen](https://ribbonformac.com/macbook-window-manager) or an [ultrawide monitor](https://ribbonformac.com/ultrawide-monitor-window-manager-mac), where grids are either cramped or absurdly wide.
- You like driving windows from the keyboard but don't want to think about splits and trees.

It doesn't suit you if:

- You want to see every window at the same moment. A grid tiler does that better; see [Ribbon vs AeroSpace](https://ribbonformac.com/ribbon-vs-aerospace).
- You only snap a window to half the screen now and then. macOS can already do that: see [how to tile windows on a Mac](https://ribbonformac.com/how-to-tile-windows-on-mac).
- You live in one full-screen app most of the day.

If it sounds like your way of working and you're on a Mac, Ribbon is a one-time [$9.99 purchase](https://ribbonformac.com/#pricing). All sales are final, so play with the [demo](https://ribbonformac.com/#demo) first.

## FAQ

### What's the difference between a scrolling and a tiling window manager?

A tiling manager fits every window on the screen, so windows shrink as you open more. A scrolling manager lets the row of windows run past the screen edges and slides it as you move focus, so each window keeps its width.

### Is niri available on macOS?

No. niri is a Wayland compositor and only runs on Linux. Mac apps such as Ribbon, OmniWM, Nehir, Paneru and PaperWM.spoon copy its layout; [niri for Mac](https://ribbonformac.com/niri-for-mac) compares them.

### Can I use a scrolling window manager with a mouse?

Yes. In Ribbon you hold a modifier (Option by default) and scroll sideways to slide the strip, and you can click any visible window as usual.

### Don't I lose track of windows that are off screen?

Less than you'd expect, because the order never changes unless you move something. Ribbon also shows a strip indicator with each column's app icon, and <kbd>⌃⌥1</kbd> to <kbd>⌃⌥9</kbd> jump straight to a window.

### Does a scrolling window manager need SIP turned off on a Mac?

Ribbon doesn't, and neither does OmniWM. Both work through the standard Accessibility permission with System Integrity Protection left on.

## Keep reading
- [Best scrolling WMs for Mac](https://ribbonformac.com/best-scrolling-window-managers-for-mac) — Ribbon, OmniWM, Nehir, Paneru, PaperWM.spoon and the rest, ranked by situation.
- [Niri for Mac](https://ribbonformac.com/niri-for-mac) — Niri itself is Linux-only. Five ways to get its scrolling strip on macOS.
- [PaperWM for Mac](https://ribbonformac.com/paperwm-for-mac) — Free Lua plugin or paid native app: keys, setup and trade-offs compared.
- [Tile windows on Mac](https://ribbonformac.com/how-to-tile-windows-on-mac) — Drag, green button, Window menu and every Fn-Control shortcut, plus how to turn it off.
- [MacBook window manager](https://ribbonformac.com/macbook-window-manager) — Grids get cramped on 13–15" screens. What works better on a laptop, honestly.
