Karousel for Mac: KDE's scrollable tiling, on macOS

Karousel is a KWin script, so it only runs inside KDE Plasma. The way it works does carry over to a Mac. Here's what comes closest, and how Karousel's default shortcuts map to macOS.

tl;dr

Karousel is a "scrollable tiling KWin script" for KDE Plasma, so it can't run on macOS. What it does, putting windows in columns on a strip you scroll through, works fine on a Mac. ChainYourMac is a native scrolling window manager for macOS 13 or later, and unlike Karousel today it gives every display its own strip. OmniWM is a free option if you're on macOS 26 Tahoe, and PaperWM.spoon is free on older versions if you don't mind Hammerspoon.

Try it right here — this is a working model of ChainYourMac, not a video.

A working model of ChainYourMac, not a video. Drag a title bar to reorder, click a Dock icon to open an app, close a window with its red button. In the real app you hold ⌃⌥ with each key. The demo answers to both.

  • Notarized by Apple
  • Signed with Developer ID
  • No account, no telemetry in the app
  • Only needs the Accessibility permission
  • Automatic updates

What Karousel is

Karousel describes itself as a "scrollable tiling Kwin script". It runs inside KWin, the window manager of KDE Plasma, and arranges your windows in columns on a strip that carries on past the edge of the screen. Its README says it "works especially well with ultrawide screens". It's free and GPL-3.0, and it's still active: v0.18 came out in October 2026.

It's the KDE member of a family. PaperWM does the same on GNOME, niri is a whole Wayland compositor built around the idea, and Hyprland now ships a scrolling layout too. The scrolling window manager explainer covers all of them.

Karousel's README is upfront about its limits. It doesn't support multiple screens, windows shown on all desktops, or windows on several activities.

Why it can't come to the Mac

A KWin script is code that KWin loads and runs. Without KDE Plasma there's no KWin, and macOS draws its windows with its own window server, which no third-party app can replace. So Karousel can't be installed on a Mac, now or later.

Mac window managers work differently. They're ordinary apps that move other apps' windows through macOS's Accessibility API while Apple keeps drawing everything. That's enough to rebuild Karousel's layout, but not compositor tricks like animations that bend or blur windows.

The Mac options

ChainYourMac: native, one strip per display

ChainYourMac is a scrolling window manager for Macs with Apple silicon (M1 or newer) running macOS 13 Ventura or later. It's a SwiftUI app with a Rust engine, notarized by Apple, and it doesn't need any SIP changes. You set it up in a settings window rather than a config file. Each display has its own strip with its own focus and scroll position, which covers the multi-monitor case Karousel doesn't handle yet. It's paid ($19.99 one time) and closed source.

OmniWM: free, if you're on Tahoe

OmniWM is free and open source, with Niri-style scrolling plus a Dwindle BSP layout. It needs macOS 26 Tahoe on Apple silicon and uses its own workspaces rather than macOS Spaces. Full comparison: OmniWM vs ChainYourMac.

PaperWM.spoon: free, on Hammerspoon

PaperWM.spoon brings PaperWM's layout to macOS as a Hammerspoon Spoon. It's free (MIT) and configured in Lua. Setup guide: PaperWM.spoon setup.

Karousel's default shortcuts, mapped to ChainYourMac

Karousel's defaults use Meta with A/D/W/S. On a Mac the ⌘ key belongs to apps, so ChainYourMac's defaults use ⌃⌥ with H/J/K/L or the arrows instead. Every ChainYourMac shortcut can be rebound in its Shortcuts screen, so you can rebuild Karousel's layout of keys if you prefer.

ActionKarousel defaultChainYourMac default
Focus left / rightMeta+A / Meta+D⌃⌥H / ⌃⌥L (or ⌃⌥← / ⌃⌥→)
Focus up / downMeta+W / Meta+S⌃⌥K / ⌃⌥J (or ⌃⌥↑ / ⌃⌥↓)
Focus first / lastMeta+Home / Meta+End⌃⌥⌘← / ⌃⌥⌘→
Focus column NMeta+[N]⌃⌥1 … 9
Move windowMeta+Shift+A/D/W/S⌃⌥⇧ + the same keys
Move a window into the column beside itMeta+Shift+A / D (moves into and out of columns)⌃⌥] / ⌃⌥[ to stack into the left / right column
Take a window out of its columnMeta+Shift+A / D⌃⌥⇧] / ⌃⌥⇧[ to pop out to the right / left
Show only the active window of a columnMeta+X (stacked layout)⌃⌥⇧T (tabbed column)
Cycle preset widthsMeta+R⌃⌥R
Wider / narrowerMeta+Ctrl++ / Meta+Ctrl+-⌃⌥= / ⌃⌥−
Center the focused windowMeta+Alt+Return⌃⌥C
Toggle floatingMeta+Space⌃⌥T
Multiple screensNot supported (per its README)One strip per display; ⌃⌥N sends a window to the next one
Configured inKDE System Settings (KWin shortcuts)A settings window; a TOML file exists but you never have to edit it

Karousel has no direct equivalent in ChainYourMac for "equalize widths of visible columns" or for its scroll-only commands that move the view without changing focus. In ChainYourMac, moving focus scrolls the strip for you, and a three- or four-finger trackpad swipe moves the strip directly.

What's different on a Mac

  • Spaces instead of virtual desktops. ChainYourMac works with macOS Spaces, and each Space keeps its own strip.
  • Hidden windows leave a sliver. macOS never lets an app push a window fully off screen, so a small piece of a hidden window can show in a bottom corner. Setting "Gap at Screen Edges" to 0 tucks almost all of it away.
  • No compositor effects. Apple's compositor still draws every window, so there are no custom shaders or window-bending animations. Movement itself is animated and synced to your display's refresh rate.

Want to see how it feels before deciding? Try the live demo on this page. It's a working model of ChainYourMac, not a video.

Who should use what

Use ChainYourMac if…

  • you're on macOS 13 to 15 and want a native app, not a script;
  • you use more than one display and want a strip on each;
  • you'd rather set things up in a settings window than in code.

Use OmniWM if…

  • you're on macOS 26 Tahoe, want free and open source, and like having a BSP layout next to scrolling.

Use PaperWM.spoon if…

  • you want free and already use Hammerspoon, or don't mind configuring things in Lua.

Karousel's strip, on your Mac.

Columns on an endless strip, stacks and tabbed columns, width presets and a trackpad swipe that follows your fingers. One strip per display, on macOS 13 Ventura or later.

Get ChainYourMac — $19.99 one-time purchase · free updates forever · macOS 13+ on Apple silicon

FAQ

Does Karousel run on macOS?

No. Karousel is a script for KWin, the window manager of KDE Plasma, so it needs a KDE desktop. macOS has its own window server that no other window manager can replace. On a Mac you use an app that recreates the scrolling layout instead.

What is the closest thing to Karousel on a Mac?

A scrolling window manager: windows sit in columns on a strip that runs past the edge of the screen, just like in Karousel. On macOS the options are ChainYourMac (native app, macOS 13 or later), OmniWM (free, needs macOS 26 Tahoe) and PaperWM.spoon (free, runs on Hammerspoon). They're compared in the best scrolling window managers for Mac.

Does Karousel support multiple monitors?

Not at the moment. Its README lists "Doesn't support multiple screens" as a limitation, along with windows on all desktops and windows on multiple activities. On a Mac, ChainYourMac gives each display its own strip, with its own focus and scroll position.

Is Karousel like niri or PaperWM?

Yes, it's the same idea. Niri is a scrollable-tiling Wayland compositor, PaperWM is a GNOME Shell extension, and Karousel brings scrollable tiling to KDE Plasma as a KWin script. Niri's README lists Karousel among the projects that tile scrollably elsewhere. More: what a scrolling window manager is.

Do I need to disable SIP to get scrolling tiling on a Mac?

No. ChainYourMac only needs the Accessibility permission, the same one every Mac window manager asks for. OmniWM and PaperWM.spoon don't need SIP changes either.