Skip to content
Vesko Karaganev edited this page Dec 25, 2022 · 4 revisions

User's Guide

FancyWM is a dynamic tiling window manager for Windows. It runs as a process in the background, listens to windowing events, and applies its own logic to position them on the screen.

Keybindings

FancyWM uses two key chord system by default, but is configurable. Triggering an action involves pressing an Activation Hotkey (a chord of two keys, Shift + Win by default), and then pressing another key (or keys).

For example, the default keybinding move focus left is Shift + Win, then Left. A single chord can be registered for frequently used actions (Win + Alt + Left), by checking the "Use without Activation Hotkey" checkbox in the settings. Note however, that that can clash with application or OS-level hotkeys.

AutoHotkey can also be used to trigger actions and set up custom keybindings - go to Settings > Scripting.

Windows and Navigation

All windows managed by FancyWM belong in a panel, which dictates the type of layout used.

Three panel types are available:

  • Vertical panel
+=====V====+
| Window 1 |
+----------+
| Window 2 |
+----------+
| Window 3 |
+==========+
  • Horizontal panel [insert screenshot]
+==========+=====H====+==========+
| Window 1 | Window 2 | Window 3 |
+==========+==========+==========+
  • Stack panel
+====S=====+
+---Tabs---+
| Window 1 |
+==========+

The default panel depends on the display size - a wider display will use a horizontal panel, a tall display will use a vertical panel.

Useful shortcut to quickly open some wndow while learning FancyWM: Win + E (open File Explorer)

Limitation: Stack panels cannot contain other panels.

Opening windows

Opened windows are automatically assigned to the panel containing the currently focused window, if any, or to the top-level panel otherwise.

Creating panels

As with most things in FancyWM, panels can be created either via the mouse or using keybindings.

The default keybindings assigned to Activation followed by H/V/S, for Horizontal, Vertical and Stack panels, respectively.

Through the UI, panels can be created from the Actions dropdown, by moving slightly over and beyond the top border of a window, and back down.

Created panels wrap the focused window. If you have the General > Tiling behaviour > Reserve space in empty panels option enabled, the focused window will be resized.

Because new windows are assigned to the panel containing the focused window, the very next window you open will be tiled according to the panel type created.

Closing windows

Closing the window can be done as usual or using the x in the containing panel.

Panels are removed automatically when the last window in the panel is closed or removed.

Workspace tree

FancyWM supports only three types of panels, but these can be nested to achieve more complex layouts.

For example, the following layout can be achieved by nesting a vertical panel inside the top-level/default panel.

+=====V====+========+
|  Chrome  |        |
+----------+ VSCode |
| Obsidian |        |
+==========+========+

Moving windows

Windows can be moved using the mouse as usual, in which case they are reordered between their neighbouring windows.

Windows can also be swapped with their neighbours using the mouse while holding Shift.

The same can be achieved using keybindings:

  • Move window (Activation, Arrow)
  • Swap window (Activation, Shift + Arrow)

Moving vs. swapping

Swapping (hold Shift) may be preferable if the intention is to preserve the window layout.

Imagine Notepad is focused and side-by-side a stack panel containing some N windows. By performing a Swap Left action, the top window in the stack panel will exchange places with Notepad, and the number of windows in the stack panel will remain N.

+=========+============+
|         |            |
| Notepad | StackPanel |
|         |            |
+=========+============+

In contrast, moving Notepad into the stack panel (without holding Shift), will result in the stack panel containing one more window and will cause it to take up the screen real estate previously occupied by the Notepad window.

Resizing windows

Windows can be resized using the mouse as usual or by using a configured resizing keybinding.

The resize keybindings increase the size of the window in increments.

Managed windows

FancyWM manages all windows in the active workspace, unless they are:

  • minimised/maximised/fullscreen
  • topmost windows (always show on top)
  • child or popup windows
  • pinned to a particular virtual desktop
  • ignored by a floating rule (Settings > Rules)
  • running with a higher priviledge level (Settings > General > Run with administrator priviledges)

Restoring/unmaximising a window puts it back into it's former panel and dimensions.

Virtual desktops

FancyWM interoperates with the built-in Virtual Desktop feature in Windows 10 and 11.