Open-source project
leftwm/leftwm avatar
leftwm/leftwm

LeftWM: a Rust tiling window manager that stays out of the compositor's way

A tiling window manager for Adventurers

3,046 stars201 forksRustMIT

At a glance

What is it?
LeftWM is an X11 tiling window manager written in Rust that treats theming as a first-class feature and deliberately leaves compositing, locking and bars to other programs. Here is how it installs, how its config splits in two, and where it stops being the right choice.
Who is it for?
Adopt LeftWM if you run X11, want a window manager that does one job and lets you swap bars and compositors through themes, and are comfortable editing RON by hand. Do not adopt it if you are on Wayland, if you want a single integrated desktop with its own bar and compositor, or if you need TOML configs, since the README states TOML support was removed in 0.6.0.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 14 days ago.
What is it written in?
Mainly Rust, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What LeftWM solves, and who it is actually for

Most desktop environments bundle a window manager, a compositor, a bar, a launcher and a lock screen into one stack you configure through one settings application. LeftWM takes the opposite position. The README states the project is "designed to do one thing and to do that one thing well: be a window manager", and the mantra is explicit: LeftWM is not a compositor, not a lock screen, not a bar. Everything else is a separate program you choose.

The audience follows from that. This is for people who already know which compositor and which bar they want, and who find it irritating that swapping the bar means learning a new configuration format. LeftWM was, per the README, "built from the very beginning to support multiple screens and ultrawide monitors", and the default keybindings are arranged around that assumption. If you run a laptop with an external display and a 34-inch panel, the defaults were written with you in mind.

The cost of that philosophy is real. You will assemble your own desktop from parts, and when something looks wrong you have to work out whether the fault is in LeftWM, in picom, or in the bar. The project's answer to that is themes.

Two config files, and why the split matters

LeftWM separates configuration into two kinds. The first is your own: keybindings, workspace locations, and the names of desktops and tags. The README places this at `$XDG_CONFIG_HOME/leftwm/config.ron`. The second is the theme: appearance, which lives in `theme.ron` and related files inside a theme's folder.

The practical effect is that switching themes does not touch your keybindings, and changing your keybindings does not fork your theme. That is a cleaner arrangement than the single-config model many window managers use, where a theme is a patch against your personal file and every update is a merge. The README notes that example configs and themes ship in the share directory, giving `/usr/share/leftwm` on Arch-based distributions as the example.

The format is RON, not TOML. The README carries a prominent note that LeftWM changed the config language from TOML to RON with the 0.4.0 release and removed TOML support entirely in 0.6.0, directing users to `leftwm-config migrate`. If you are arriving from an old setup, that migration command is the first thing to run, not the last. Anyone holding a TOML config and upgrading past 0.6.0 will find it unreadable, and the README does not describe a fallback path.

Installing LeftWM and starting a first session

The README offers two routes: a package manager, or a manual build. Package manager installation is the shorter path and the one to try first, because it also handles the X11 libraries. For a manual build the dependency list is short: xorg at runtime and build time, specifically libx11, xrandr, xorg-server and libxinerama; any POSIX-compliant shell for the startup and shutdown files; and Rust 1.74.0 or newer to compile. bash is listed as optional, though the README notes most themes use it.

The repository ships a Makefile, and its default profile is `optimized`, so a plain build needs no arguments:

bash
make build

The Makefile echoes which profile it is using and then runs `cargo build --profile optimized`. To install the binaries and the .desktop file, the README gives a separate target, which copies into `/usr/local/bin` and needs sudo:

bash
make install

If you prefer to drive Cargo directly, the workspace profile named `optimized` inherits from release and sets `codegen-units = 1`, `strip = "symbols"` and `lto = "fat"`, so the equivalent invocation is `cargo build --profile optimized` from the repository root. Development builds use the `dev` profile instead, which the Makefile maps to the `debug` folder.

Once installed, you need a session. The README covers two cases: a graphical login such as LightDM, GDM or LXDM, and `startx` or a lighter login such as slim. If you are coming from another window manager, the thing to check before logging in is that your `config.ron` is in RON syntax. The README does not document a rollback path if a session fails to start, so keep a second session type available until the first one works.

Themes are the integration layer, and the weak point

A LeftWM theme is not a colour scheme. It is a bundle that can pull in a bar, a compositor, a background setter, a dock and scripts, and the README is candid that themes typically need software LeftWM itself does not require. It lists feh, compton, picom, polybar, xmobar, lemonbar, conky and dmenu as common theme dependencies, with per-distribution package names for Ubuntu 24.04, Arch and Fedora 42.

That table is the most useful part of the README for a new user, because it tells you what you are really installing. A theme that uses polybar and picom is a polybar and picom deployment with a LeftWM config attached. When the bar misbehaves, you are debugging polybar, and LeftWM's documentation will not help you. The README says the choice of dependencies is "up to the author of the theme and could be different", which is honest but leaves the user to audit each theme.

Theming is also where LeftWM's stated advantage is hardest to verify from the repository alone. The README describes switching a bar as being as simple as setting a symlink, and the wiki is the referenced source for the details. The repository itself gives an `examples/themes` directory and a `themes/` top-level entry, but the README does not document the theme resolution order or what happens when a theme references a program that is not installed.

X11 only: the constraint that decides most adoption questions

LeftWM is an X11 window manager. The topics list on the repository includes x11, the dependency list is built on libx11, xrandr and libxinerama, and the workspace contains display servers under `display-servers/`, specifically `xlib-display-server` and `x11rb-display-server`. There is no Wayland backend in the workspace members.

That single fact settles the largest question people bring to this project. If your session is Wayland, LeftWM is not a candidate, and no amount of configuration changes that. XWayland lets X11 applications run inside a Wayland session, but it does not let an X11 window manager manage that session, and the README does not claim otherwise. People searching for a Wayland tiling window manager should look elsewhere.

The X11 constraint also shapes what you can expect from the themes. Compositing on X11 means picom or compton, screen tearing behaviour depends on your driver and compositor settings, and multi-monitor layout is handled through xrandr. None of that is LeftWM's responsibility by design, and the README is consistent about it.

LeftWM against i3 and Qtile

The closest comparison is i3, because both are X11 tiling window managers with a manual tiling model and a config file you edit by hand. The difference is scope and language. i3 ships its own bar and its own configuration format, and a large part of its documentation is about that bar. LeftWM has no bar, so a LeftWM setup is a bar of your choosing plus a compositor of your choosing, wired together by a theme. If you want one program to configure and one place to look when something breaks, i3 is the simpler answer. If you want to swap bars without rewriting your window manager config, LeftWM's split is the point.

Qtile is the other useful comparison, and the difference is the configuration language. Qtile is configured in Python, which means your window manager config is a program: you can loop, compute and import. LeftWM's RON config is data, not code, and RON is deliberately close to Rust's own syntax. That makes LeftWM's config easier to validate and harder to misuse, but it also means anything dynamic has to come from a script the theme calls, not from the config itself. Neither approach is better in the abstract; they attract different people. The README's own framing, a window manager "for adventurers", is a fair description of which side of that line LeftWM sits on.

Maintenance, licence and the upgrade path you should plan for

The repository is not archived, and the last push was on 2026-09-18. The most recent release is 0.5.5, dated the same day. The release before it, 0.5.4, is dated 2025-02-07, and 0.5.3 is dated 2024-10-20. That cadence is worth reading carefully: releases arrive when they arrive, and a long gap between them is normal for this project rather than a sign of abandonment. It also means the version in your distribution's repositories may lag the published one by a year or more, so check the version before filing a bug.

The licence is MIT, stated in the repository metadata and in `LICENSE.md`. MIT is permissive: it allows reuse in closed products provided the copyright notice and permission notice are preserved. That matters less for a window manager you run yourself and more if you intend to ship a themed distribution image. This is a description of the licence text, not legal advice; read `LICENSE.md` yourself if you are redistributing.

Upgrade cost is dominated by the config format change. The README states TOML support was removed entirely in 0.6.0 and points at `leftwm-config migrate`. Since 0.6.0 has not been released according to the release list, anyone on 0.5.x should treat the migration as a known upcoming step rather than a surprise. The repository also carries a `CHANGELOG.md` and a `rust-toolchain.toml`; the latter pins the toolchain, which is why the README's Rust 1.74.0 minimum should be read as a floor, not a target.

Editorial conclusion

Adopt LeftWM if you run X11, want a window manager that does one job and lets you swap bars and compositors through themes, and are comfortable editing RON by hand. Do not adopt it if you are on Wayland, if you want a single integrated desktop with its own bar and compositor, or if you need TOML configs, since the README states TOML support was removed in 0.6.0. Before committing, check that your package manager carries a build at or above 0.5.5, confirm your existing config.ron is RON rather than TOML, and read the wiki page for the release you install, because the README points there for anything the repository does not spell out.

Frequently asked questions

Which window manager is the lightest for Linux?

The README does not compare LeftWM's resource use against other window managers, and it makes no weight claim. It says LeftWM is written in Rust and aims to be stable and performant, and that it deliberately excludes a compositor, lock screen and bar.

What are the differences between a tiling window manager and a floating window manager?

The README describes LeftWM as a tiling window manager and lists floating windows as a configuration topic, but it does not set out a general comparison between the two models. That distinction is outside what the repository documents.

How do I install LeftWM?

Either through your distribution's package manager or by building manually. The manual route needs Rust 1.74.0 or newer plus the X11 libraries, and the repository Makefile builds with the optimized profile by default and installs the binaries and .desktop file.

What config format does LeftWM use?

RON. The README states LeftWM moved from TOML to RON in the 0.4.0 release and removed TOML support entirely in 0.6.0, and points users at `leftwm-config migrate` to convert an existing config.

Does LeftWM work on Wayland?

No. LeftWM is an X11 window manager, its dependencies are the X11 libraries, and the workspace contains only xlib and x11rb display servers. There is no Wayland backend in the repository.

Do I need a bar or compositor to use LeftWM?

Not to run LeftWM itself, which the README says is not a compositor, lock screen or bar. Themes, however, typically expect programs such as picom, polybar, feh or dmenu, and the README lists per-distribution package names for those.

Official sources

  1. leftwm/leftwm on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/leftwm-leftwm.svg)](https://hysenlabs.com/projects/leftwm-leftwm)