Skip to content

dalyIsaac/Whim

Repository files navigation

Whim is an hackable, pluggable and scriptable dynamic window manager for Windows 10 and 11, built using WinUI 3, .NET, and C# scripting.

Whim demo

Installation

Alpha builds are available on the releases page on GitHub. Whim has an updater plugin to keep you up to date.

Installation via package managers is coming in dalyIsaac/Whim#792.

Why use Whim?

A window manager is responsible for controlling the layout of windows in your desktop environment. Whim is a dynamic window manager, where windows are arranged according to different layouts.

Whim supports multiple layout engines. Each workspace can switch between different layout engines. For example, the TreeLayoutEngine allows users to create arbitrary grids of windows during runtime (similar to i3), while the SliceLayoutEngine fully automates windows placement using a predefined, customizable logic (similar to Awesome or dwm) . For more, see Layout Engines.

Whim is configured using C# scripting - no YAML to be found here. This means you can use the full power of C# to configure Whim. Whim also exposes its API for plugins to use. Accordingly, much of the more custom functionality has been implemented as plugins which users can choose to use or not.

Whim works by sitting on top of Windows' own window manager. It listens to window events and moves windows accordingly. Whim does not use Windows' native "virtual" desktops, as they lack the ability to activate "desktops" independently of monitors. Instead, Whim has workspaces.

To see how Whim compares to other Windows window managers, see Whim vs. Other Window Managers.

Documentation

You can find the Whim documentation at dalyisaac.github.io/Whim.

Thanks

Whim is heavily inspired by the workspacer project - for more, see the Inspiration page.

Thank you to all the contributors to Whim for their help and support! 💖