Nehir

Niri-style scrolling column tiling window manager for macOS

Category
Window Manager
WM Type
tiling
License
free
Open Source
Yes
Keybindings
Yes
Scripting
Yes
Last Update
2026-06-02

Features

  • Niri-style scrolling column layout
  • Multiple workspace management
  • Per-monitor workspace bar
  • Bird's-eye overview mode
  • Fuzzy command palette
  • Per-app layout rules
  • Unix socket IPC via nehirctl
  • Live TOML config reloading
  • Multi-monitor support

About

Nehir is a tiling window manager for macOS built around the Niri scrolling column paradigm: windows arrange in columns that scroll horizontally across your workspace. Forked from Hiro (formerly OmniWM), it narrows scope to a single layout engine and adds IPC control, live TOML config reloading, and per-monitor workspace bars.

Who It's For

Nehir is for macOS developers who want the Niri scrolling column experience — the mental model where your workspace is an infinite horizontal strip of columns, not a grid of fixed tiles. The name means "river" in Turkish, reflecting how windows flow in columns across the screen. If you've used Niri on Linux or PaperWM on GNOME and want that paradigm on macOS without a general-purpose multi-layout tool, Nehir strips away everything except scrollable columns and builds around that single model.

How It Works

Nehir arranges all managed windows in vertically-stacked columns that extend horizontally. Activating a window scrolls the viewport to reveal its column; navigating left or right shifts focus between adjacent columns. Each workspace maintains an independent column arrangement, and per-monitor workspace bars display workspace names and application icons. Nehir hooks into macOS Accessibility APIs and does not require SIP disabling. All configuration lives in ~/.config/nehir/ as TOML files, and every file is watched for changes — edits apply live without a restart.

The modifier key model is hierarchical: Option+Command navigates and focuses; Option+Shift+Command moves the focused window; Control+Option+Command handles larger-scope navigation like workspace history; Hyper (Control+Option+Shift+Command) handles structural reshaping. Trackpad scroll gestures can snap to column boundaries or stop freely mid-scroll, controlled by gestures.scrollSnap in settings.toml.

Configuration

Config lives in ~/.config/nehir/ with separate files for each concern:

~/.config/nehir/
├── settings.toml      # core app behavior
├── hotkeys.toml       # physical keybindings
├── workspaces.toml    # workspace definitions
├── apprules.d/        # one file per app rule
└── monitors.d/        # per-monitor overrides

External control is available through the nehirctl CLI via Unix socket IPC:

nehirctl command focus left
nehirctl command switch-workspace 2

Compared to Alternatives

Compared to Paneru (also Niri-style scrollable columns for macOS), Nehir adds a workspace bar, overview mode, fuzzy command palette, and IPC, making it more feature-complete for users who want more than just the layout engine. Compared to Hiro (formerly OmniWM) — the project Nehir forked from — Nehir narrows scope to a single layout engine and drops backward-compatibility baggage, favoring consistency over flexibility. Compared to AeroSpace (i3-style, broad macOS support, TOML config), Nehir uses the scrolling column model instead of i3's fixed tiling grid, which suits workflows where you open many windows and navigate horizontally rather than managing a fixed set of splits.

Requirements

  • Accessibility permission required (System Settings → Privacy & Security → Accessibility)
  • No SIP disabling required
  • Install via Homebrew: brew tap guria/tap && brew install --cask nehir
  • Written in Swift; open-source under GPL-2.0
  • Currently in pre-release (v0.3.0-rc.3 as of June 2026)

Getting Started

brew tap guria/tap
brew install --cask nehir

Launch Nehir and grant Accessibility permission. The config directory is at ~/.config/nehir/ — edit hotkeys.toml to customize keybindings, settings.toml for layout behavior, and workspaces.toml to name and configure workspaces. Use nehirctl --help to explore the IPC CLI.

Discussion