OmniWM: a window manager built with contributions from 13 developers
O

OmniWM: a window manager built with contributions from 13 developers

OmniWM: a window manager built with contributions from 13 developers

UI
2,068 stars
N/A forks
N/A contributors

README

Project documentation from GitHub

OmniWM: A Window Manager Built by 13 Developers (And You Should Check It Out)

Look, there are a ton of window managers out there. i3, bspwm, sway — you know the usual suspects. But every once in a while, a community project pops up that feels different. OmniWM is one of them. It’s a window manager built with contributions from 13 developers, and while it’s not trying to reinvent the wheel, it’s refining it with a clear focus on modularity and developer experience.

If you like tinkering with your desktop environment but hate fighting with config files, this one’s worth a look.

What It Does

OmniWM is a lightweight, modular window manager for X11 (and eventually Wayland). It manages windows with a tiling layout by default, but also supports floating windows, workspaces, and keyboard-driven navigation — all the stuff you’d expect from a modern WM. The key difference? It’s built with extensibility in mind. Each component (like the layout engine, keybindings, and status bar) is designed as a separate module that can be swapped or extended without touching the core.

Think of it as a “plug and play” window manager where you can replace parts without forking the whole thing.

Why It’s Cool

1. Built by a real team.
This isn’t a solo side project. 13 developers contributed to the core, which means the codebase is maintained with more than one perspective. That translates to cleaner APIs, better documentation (hey, it’s on GitHub), and fewer “works on my machine” bugs.

2. Modular design.
Most window managers are monolithic — you either use their keybinding system or you hack around it. OmniWM separates concerns: keybindings, window placement, and decoration are all independent modules. Want to swap the default tiling algorithm for a custom one? You write a new layout module and register it. No patching the core, no rebasing forks.

3. Developer-first config.
Config is handled via a Lua script, not a custom DSL. That means you can use logic, loops, and functions in your config file. Need a dynamic layout that changes based on the current workspace? Just write a Lua function. It’s way more powerful than a static config file.

4. Active community.
The repo has issues, PRs, and discussions that actually get responses. The contributors are active on GitHub and often tag issues as “good first issue” — so if you’re looking to contribute to a WM but don’t want to dive into a massive codebase, this is a solid entry point.

How to Try It

You can grab the source code from the GitHub repo:

https://github.com/BarutSRB/OmniWM

Installation is straightforward if you’re comfortable building from source. There’s no package manager release yet (it’s still early), but the README includes build instructions for Linux (dependencies: xcb, libxkbcommon, and lua). If you’re on a distro like Arch or Fedora, you’ll have these in

Did you like this issue?

Join our weekly newsletter

Related Projects

Love discovering amazing projects?

Help us continue bringing you the best open-source discoveries every week.

Back to Projects
Last updated: Jun 16, 2026