SimplyWM is a tiling window manager for macOS.

Why

Tiling window managers organize application windows by automatically changing their positions and sizes as windows become active/visible/hidden.

You will use keyboard shortcuts to show and hide windows and to switch between them, or move to another monitor. The layout is otherwise done automatically based on the visible windows.

(This is in contrast to non-tiling window managers, which usually requires you to use keyboard shortcuts to explicitly lay out each window, e.g. to the left half or top left of the screen)

Features

  • Automatic tiling
  • Simple
  • Opinionated
  • Supports multiple monitors
  • Supports custom keyboard shortcuts
  • Different layouts for each monitor
  • Windows that are explicitly unmanaged
  • YAML configuration file

Installation

SimplyWM is still in development/testing. Download the latest here. Due to usage of the Accessibility API, the app cannot be distributed on the app store and is a notarized 1 app.

When the app is launched, it should prompt you for Accessibility permissions. This is required for the app to function. You’ll have to restart the app after granting permission in Settings.app > Accessibility.

You should disable “Automatically rearrange Spaces based on most recent use” in Settings.app > “Desktop & Dock” > “Mission Control”.

SimplyWM reads its configuration from the simplywm.yml file. A default configuration file will been created when the app launches the first time.

Configuration

The configuration file can be found at ~/Library/Application\ Support/simplywm.yml.

This is a sample configuration file:

layouts:
- tall
- fullScreen
keyboardShortcuts:
  previousLayout: ''
  nextLayout: F8
  moveToPreviousScreen: ctrl+shift+leftArrow
  moveToNextScreen: ctrl+shift+rightArrow
  swapWindowWithMain: ctrl+shift+return
unmanagedWindows:
- id: com.apple.iphonesimulator
- id: com.google.Chrome
  title: MetaMask*

You can find more details at the SimplyWM help page.

Design

The main window is the first window in the list. With the tall layout, it is the window on the left and the only visible window in the fullScreen layout.

Configuration and features are intentionally limited so it might not ever be possible to change window sizes or move windows around (besides switching the main window).

Mouse support is very limited. While you can drag windows to another screen, you can’t drag a window to reorder it within the same screen.

There isn’t support for resizing windows manually (neither dragging with mouse or with keyboard shortcuts). Not sure it’ll ever be included.

The app strives to be fast (not there yet!) and reliable.

Future

There are a few things I might add to the app:

  • Handle switching between single monitor and multiple monitors better
  • Handle wake from sleep better
  • Keyboard shortcuts to launch apps
  • A temporarily float/zoom/peek shortcut which temporarily makes the focused window bigger

Feedback

Send feedback and suggestions to hboon@motionobj.com

Amethyst

It uses some of the primitives offered by Amethyst. If you are looking for a free and open source tiling window manager, check out Amethyst.

  1. A notarized macOS app means it has been checked by Apple for malicious components