Skip to content

dalyIsaac/Whim

Repository files navigation

Whim 🪟

Whim is a hackable, pluggable and scriptable dynamic window manager for Windows.

Whim lets you easily layout your windows in a way that suits your workflow via keyboard shortcuts, dragging windows using your mouse, or plugins including a command palette or bar.

Key Features ✨

  • Multiple Layout Engines: Choose from various layout engines to suit your workflow.
  • Simple Configuration: Use YAML or JSON for easy setup.
  • Hackable and Pluggable: Extend Whim with powerful C# scripts.
  • Workspace Management: Manage windows efficiently across multiple workspaces.
  • User-Centric Design: Full control over your window management.

All the power to the user!

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 has a simple configuration system that uses YAML or JSON. Whim also has a C# scripting system for more advanced users. This means you can start out with a simple configuration and gradually add more complex functionality, using the full power of C#. Whim 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.

Contributing 🤝

Whim is an open-source project and contributions are welcome! For more information, see the Contributing page.

Community 🌐

Whim has a Discord server where you can ask questions, get help, and chat with other users.

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! 💖