LeopardWM

jcardama·jcardama.LeopardWM

Scroll-first tiling window manager for Windows 10 and 11.

LeopardWM is an open-source tiling window manager for Windows 10 and 11 that takes a scroll-first approach inspired by niri and PaperWM. Windows sit on a horizontal strip and the monitor acts as a viewport that scrolls over them, so navigation stays spatially consistent as windows are added — instead of constantly rebuilding split trees. Written in Rust on top of the Win32 API.

winget install --id jcardama.LeopardWM --exact --source winget

Latest 0.2.5·July 7, 2026

Release Notes

Improvements

  • Optional fullscreen-follows-focus (monocle). By default, changing focus while a window is fullscreen carries fullscreen to the newly focused window. With fullscreen_follows_focus = false under [behavior], a focus command instead drops back to the tiled layout, so fullscreen only ever affects the one window it was toggled on.
  • More keys can be bound to hotkeys. PageUp, PageDown, and the numpad keys (Numpad0-Numpad9, plus +, -, *, /, and decimal) are now accepted in hotkey bindings, in config and the Settings recorder. Numpad keys fire with NumLock on.
  • The default width for new windows is configurable. A new default_width_preset setting under [layout] picks which width preset new windows open at (1-based index into width_presets, default 1). Previously new windows always opened at the first preset.
  • Move the focused window to the next or previous workspace. New move_to_workspace_next / move_to_workspace_prev commands (bound to Ctrl+Alt+Shift+PageDown / PageUp by default) shift the focused window one workspace over, wrapping 1 to 9. Previously only the numbered move-to-workspace shortcuts existed.
  • Optional workspace edge-wrap for vertical navigation. With workspace_edge_wrap = true under [behavior] (off by default), focus_up / focus_down at a column's top / bottom edge switch to the previous / next workspace, and move_window_up / move_window_down at the edge move the focused window there. Applies in the tiled layout, not while a window is fullscreen.
  • Optional mouse-follows-focus. With mouse_follows_focus = true under [behavior] (off by default), the cursor warps onto the focused window after a focus-navigation command, including the monitor focus/move commands. This is the inverse of focus_follows_mouse and completes the vertical-monitor navigation request. Applies in the tiled layout, not while a window is fullscreen.
  • Smarter off-screen parking on multi-monitor setups. A window scrolled off one monitor's edge is parked just off the nearest edge that has no adjacent monitor (below/above for side-by-side monitors, to the sides for stacked ones) so it can't render on a neighboring monitor, adapting to the monitor arrangement instead of using a fixed far-off-screen point. Fixes
  • .NET Framework windows animate smoothly instead of stuttering. WinForms and WPF windows (Visual Studio, many .NET tools) were left out of the DWM thumbnail animation path, so they moved via per-frame repaints during layout changes, which made switching to them laggy and could leave them visually corrupted. They now use the same ghost-animation path as Chromium and Firefox.
  • Windows retile correctly after a monitor wakes from sleep. A screen powered off long enough to drop from Windows would come back with some of its windows left untiled and gaps in the layout: the windows Windows un-minimized on wake were still flagged minimized internally, so they were skipped by the tiler. Window minimized state is now re-synced against the OS after a display change and on startup (the stale flags could persist in saved layout state across a restart), so the layout tiles what is actually on screen.

Installer type: wix

x64FE9F7022CA1001EFC751CDAA71D8ED88DBAE8F4A7157C0E218605841D4133C92

Details

Homepage
https://github.com/jcardama/LeopardWM
License
GPL-3.0
Publisher
jcardama
Support
https://github.com/jcardama/LeopardWM/issues
Moniker
leopardwm

Tags

niripaperwmrustscrollabletilingwindow-managerwindowsworkspace

Older versions (5)

0.2.4
x6454CB1ED3F02812A7DF655823742F0E8AA4D1DF09641A561166598C8D5C670D98
0.2.3
x6406E6A24C01D19C19B5DBCD2EFD6F5F50B4B7B431226CCF47FE52002703A589B1
0.2.2
x64B44B16446E7475A468017F7A70748109F5A0A0F828716DB557006DCCE15B5FAF
0.2.1
x64DDA85E8C37B33E596DCCD8065B9C693A6D55A861C4FF9C7B28FC967F45A246B7
0.1.11
x64CE4BC6BE492D610F0D7CE9492959FE488405FE8A244371787EAD73462A707FCC