@wsl8297: Working on a Mac often means juggling a dozen open windows. Finding the specific one you need is often more exhausting than the actual work. Recently, I came across Paneru, an open-source window manager with a straightforward concept: it uses a horizontal "scroll bar" to organize windows, making switching between them orderly and intuitive. It’s somewhat like Niri on Linux...

X AI KOLs Timeline Tools

Summary

Paneru is an open-source tiling window manager for macOS that features a unique horizontal scroll bar layout. Designed to solve the chaos of managing multiple windows, it draws inspiration from Niri on Linux.

Working on a Mac often involves keeping a dozen windows open at once. Sifting through the clutter to find the one you need is frequently more tedious than the actual task at hand. Recently, I discovered Paneru, an open-source window manager with a direct approach: it manages windows via a horizontal "scroll bar," making window switching orderly and easy to navigate. It bears a resemblance to Niri on Linux: each monitor has its own dedicated window strip, ensuring they don't interfere with one another. Combined with trackpad gestures to swipe between windows, the interaction is smooth and natural. GitHub: http://github.com/karinushka/paneru... The features are quite practical as well: one-click preset width adjustments, window stacking, and mouse-following focus. Configuration files support hot-reloading, meaning keybindings take effect immediately after modification without requiring a restart. If you want to avoid having your windows stretched into unusable fragments on a large screen, or if you want to minimize constant toggling between full-screen modes on a laptop, this project is worth trying.
Original Article Export to Word Export to PDF
View Cached Full Text

Cached at: 05/10/26, 08:32 PM

On a Mac, you often have a dozen or more windows open at once. Finding the one you need among the chaos is often more frustrating than the work itself. Recently, I came across Paneru, an open-source window manager with a straightforward concept: it manages windows using a horizontal “scrolling bar,” making switching between windows orderly and intuitive.

It’s somewhat similar to Niri on Linux: each monitor has its own independent window strip, so they don’t interfere with each other. Combined with trackpad gestures for sliding through windows, the interaction feels smooth and natural.

GitHub: http://github.com/karinushka/paneru…

The features are quite practical: one-click preset width adjustments, window stacking, and focus-follows-mouse functionality. The configuration file supports hot-reloading, so keybindings take effect immediately without restarting the application. If you don’t want large screens stretching your windows to uselessness, or if you’re tired of constantly toggling full-screen mode on a laptop, this project is worth trying.


karinushka/paneru

Source: https://github.com/karinushka/paneru

A sliding, tiling window manager for MacOS.

About

Paneru is a MacOS window manager that arranges windows on an infinite strip, extending to the right. A core principle is that opening a new window will never cause existing windows to resize, maintaining your layout stability.

Each monitor operates with its own independent window strip, ensuring that windows remain confined to their respective displays and do not “overflow” onto adjacent monitors.

Why Paneru?

  • Niri-like Behavior on MacOS: Inspired by the user experience of Niri, Paneru aims to bring a similar scrollable tiling workflow to MacOS.
  • Works with MacOS workspaces: You can use existing workspaces and switch between them with keyboard or touchpad gestures—with a separate window strip on each. Drag and dropping windows between them works as well.
  • Virtual Workspaces (Experimental): Group your windows into tasks by stacking multiple horizontal strips (rows) within a single space. Use native macOS workspaces for broad segregation (e.g., ‘Work’, ‘Personal’) and virtual workspaces to stay organized within each context.
  • Focus follows mouse on MacOS: Very useful for people who would like to avoid an extra click.
  • Sliding windows with touchpad: Using a touchpad is quite natural for navigation of the window pane.
  • Native macOS tabs support: Applications like Ghostty use these, so Paneru manages them on the layout strip like other windows.
  • Optimal for Large Displays: Standard tiling window managers can be suboptimal for large displays, often resulting in either huge maximized windows or numerous tiny, unusable windows. Paneru addresses this by providing a more flexible and practical arrangement.
  • Improved Small Display Usability: On smaller displays (like laptops), traditional tiling can make windows too small to be productive, forcing users to constantly maximize. Paneru’s sliding strip approach aims to provide a better experience without this compromise.

Inspiration

The fundamental architecture and window management techniques are heavily inspired by Yabai, another excellent MacOS window manager. Studying its source code has provided invaluable insights into managing windows on MacOS, particularly regarding undocumented functions. The innovative concept of managing windows on a sliding strip is directly inspired by Niri and PaperWM.spoon.

Installation

Recommended System Options

  • Like all non-native window managers for MacOS, Paneru requires accessibility access to move windows. Once it runs, you may get a dialog window asking for permissions. Otherwise, check the setting in System Settings under “Privacy & Security -> Accessibility”.
  • Check your System Settings for “Displays have separate spaces” option. It should be enabled—this allows Paneru to manage the workspaces independently.
  • Multiple displays. Paneru moves windows off-screen, hiding them to the left or right. If you have multiple displays, for example, your laptop open when docked to an external monitor, you may experience weird behavior. The issue is that when MacOS notices a window being moved too far off-screen, it will relocate it to a different display—which confuses Paneru! The solution is to change the spatial arrangement of your additional display—instead of having it to the left or right, move it above or below your main display. A similar situation (https://nikitabobko.github.io/AeroSpace/guide#proper-monitor-arrangement) exists with the Aerospace window manager. An option exists (horizontal_mouse_warp) which can make a vertical arrangement of displays “feel” horizontal.
  • Off-screen window slivers. Because macOS will forcibly relocate windows that are moved fully off-screen, Paneru keeps a thin sliver of each off-screen window visible at the screen edge. The sliver_width and sliver_height options control the size of this sliver. This is a workaround for a macOS limitation, not a design choice.

Installing from Crates.io

Paneru is built using Rust’s cargo. It can be installed directly from crates.io or, if you need the latest version, by fetching the source from Github.

$ cargo install paneru

Installing from Github

$ git clone https://github.com/karinushka/paneru.git
$ cd paneru
$ cargo build --release
$ cargo install --path .

It can run directly from the command line or as a service. Note that you will need to grant accessibility privileges to the binary.

Installing with Homebrew

If you are using Homebrew, you can install from the formula with:

$ brew install paneru

Or by first adding the tap and then installing by name:

$ brew tap karinushka/paneru
$ brew install paneru

Installing with Nix

See nix/README.md.

Configuration

Paneru checks for configuration in the following locations:

  • $HOME/.paneru
  • $HOME/.paneru.toml
  • $XDG_CONFIG_HOME/paneru/paneru.toml

Additionally, it allows overriding the location with the $PANERU_CONFIG environment variable. You can use the following basic configuration as a starting point. For a complete guide to all available options, keybindings, and window rules, see the Configuration Guide.

# basic .paneru.toml
[options]
focus_follows_mouse = true
mouse_follows_focus = true

[bindings]
window_focus_west = "cmd - h"
window_focus_east = "cmd - l"
window_resize = "alt - r"
window_center = "alt - c"
quit = "ctrl + alt - q"

Live reloading

Configuration changes made to your ~/.paneru file are automatically reloaded while Paneru is running. This is useful for tweaking keyboard bindings and other settings without restarting the application.

Running as a service

$ paneru install
$ paneru start

Running in the foreground

$ paneru

Sending Commands

Paneru exposes a send-cmd subcommand that lets you control the running instance from the command line via a Unix socket (/tmp/paneru.socket). Any command that can be bound to a hotkey can also be sent programmatically:

$ paneru send-cmd [args...]

Available commands

CommandDescription
window focus <dir>Move focus to a window in the given direction
window swap <dir>Swap the focused window with a neighbour
window centerCenter the focused window on screen
window resizeCycle through preset_column_widths
window growGrow to the next preset width
window shrinkShrink to the previous preset width
window fullwidthToggle full-width mode for the focused window
window manageToggle managed/floating state
window equalizeDistribute equal heights in the focused stack
window stackStack the focused window onto its left neighbour
window unstackUnstack the focused window into its own column
window nextdisplayMove the focused window to the next display
window nextdisplaysendMove the window to the next display but stay here
window virtual <dir>Switch to the previous/next virtual workspace
window virtualmove <dir>Move the window to a different virtual workspace
window virtualsend <dir>Send the window to a virtual workspace but stay
window snapSnap the focused window into the visible viewport
mouse nextdisplayWarp the mouse pointer to the next display
printstatePrint the internal ECS state to the debug log
quitQuit Paneru

Where <dir> is one of: west, east, north, south, first, last.

Examples

# Move focus one window to the right.
$ paneru send-cmd window focus east

# Swap the current window to the left.
$ paneru send-cmd window swap west

# Center and resize in one shot (two separate calls).
$ paneru send-cmd window center && paneru send-cmd window resize

# Cycle backward through preset widths.
$ paneru send-cmd window shrink

# Jump to the left-most window.
$ paneru send-cmd window focus first

Scripting ideas

Because send-cmd works over a Unix socket, you can drive Paneru from shell scripts, cron jobs, or other automation tools:

  • Launch-and-arrange workflow. Open an application and immediately position it: open -a Safari && sleep 0.5 && paneru send-cmd window resize.
  • One-key layout reset. Bind a script that focuses the first window, resizes it, then moves east and resizes the next one—recreating a preferred layout after windows get shuffled.
  • Integration with other tools. Pipe focus events from tools like Hammerspoon (https://www.hammerspoon.org) or skhd (https://github.com/koekeishiya/skhd) into paneru send-cmd for compound actions that go beyond a single hotkey.
  • Multi-display orchestration. Move a window to the next display and immediately warp the mouse there:
paneru send-cmd window nextdisplay && paneru send-cmd mouse nextdisplay

Future Enhancements

  • More commands for manipulating windows: fine-grained size adjustments, touchpad resizing, etc.
  • Scriptability. For example, using Lua for configuration or automation of window handling, like triggering and positioning specific windows or applications.

Communication

There is a public Matrix room #paneru:matrix.org (https://matrix.to/#/%23paneru%3Amatrix.org). Join and ask any questions.

Architecture Overview

For a detailed high-level overview of Paneru’s internal design, data flow, and ECS patterns, please refer to the Architecture Guide.

Paneru’s architecture is built around the Bevy ECS (Entity Component System), which manages the window manager’s state as a collection of entities (displays, workspaces, applications, and windows) and components. The system is decoupled into three primary layers:

  1. Platform Layer (src/platform/): Directly interfaces with macOS via objc2 and Core Graphics. It runs the native Cocoa event loop and pumps OS events into a channel consumed by Bevy.
  2. Management Layer (src/manager/): Defines OS-agnostic traits (WindowManagerApi, WindowApi) that abstract window manipulation. The macOS-specific implementations (WindowManagerOS, WindowOS) bridge these traits to the Accessibility and SkyLight APIs.
  3. ECS Layer (src/ecs/): The “brain” of the application. Bevy systems process incoming events, handle input triggers, and manage animations.

Repository Structure

  • main branch: Contains the stable, released code.
  • testing branch: Used for experimental features and architectural refactors. This branch is volatile and may be force-pushed.

Tile Scrollably Elsewhere

Here are some other projects which implement a similar workflow:

Similar Articles

@wsl8297: While browsing GitHub, I stumbled upon a real powerhouse: niri. It directly bypasses the age-old desktop problem of "windows getting squished when there are too many" and completely reimagines window management. niri adopts a scrollable tiling approach: windows are arranged in columns on an "infinitely extending" horizontal strip. When you open a new window, it doesn't forcefully compress existing ones; on multi-monitor setups, each screen has its own independent workspaces and window strips, clean and efficient.

X AI KOLs Timeline

This article introduces the open-source project niri, a new Wayland-based desktop compositor that avoids traditional window crowding issues through a scrollable tiling layout, and supports features such as dynamic workspaces, independent multi-monitor management, and custom shader animations.

@geekbb: Great tool, a macOS sidebar utility for the Ghostty terminal that allows you to quickly create, switch between, and arrange terminal sessions. Smoothly control windows via Ghostty AppleScript and Accessibility APIs, enabling direct jumps to the Space containing a specific session from a floating panel. S…

X AI KOLs Timeline

Rig is a macOS sidebar utility developed for the Ghostty terminal, supporting rapid creation, switching, and arrangement of terminal session windows via AppleScript and Accessibility APIs.

@VincentLogic: Found an incredible open-source desktop AI tool from ByteDance! UI-TARS Desktop, with 31k stars, truly lives up to the hype. It can actually understand your screen and automate computer operations for you. Just tell it "Enable auto-save in VS Code and set the delay to 500ms", and it will automatically: -…

X AI KOLs Timeline

ByteDance's open-source desktop AI automation tool, UI-TARS Desktop, supports local execution and screen visual understanding. It can autonomously control your computer to handle daily tasks through natural language commands.

@libapi_: Hermes Web UI v0.5.15 Released. This update focuses less on "adding more features" and more on clearing real-world blockers: 1. New Kanban board panel for visual task and session management 2. Mobile layout improvements, more stable group chat and page titles 3. Fixed dynamic ports, WSL listening, Mar…

X AI KOLs Timeline

Hermes Web UI v0.5.15 is released, featuring a new Kanban board panel for visual task and session management, improved mobile layout, and fixes for dynamic ports, WSL listening, and Markdown media sync issues. The project is an open-source, self-hosted Web UI tool.

@berryxia: Bros! Don't reinvent the wheel—just use this 31.4K-star open-source project! ByteDance has open-sourced UI-TARS-desktop. Taking a quick look, the project has been live for nearly a year! It currently has 31.4k stars, and its growth rate is quite steady. 24-hour growth...

X AI KOLs Timeline

ByteDance open-sourced UI-TARS-desktop, a native desktop GUI agent with 31.4k GitHub stars that uses vision models to control local or remote applications via natural language. The tool runs locally for privacy, supports Windows and macOS, and includes a CLI with streaming output for developers.