![Screenshot of LeftWM in action](screenshots/5.png)
**IMPORTANT NOTE: LeftWM has changed the config language from `TOML` to `RON` with the `0.4.0` release. Please use `leftwm-check --migrate-toml-to-ron` to migrate your config and visit the [wiki](https://github.com/leftwm/leftwm/wiki) for more info.**
# Table of contents
- [Why go left](#why-go-left)
- [Dependencies](#dependencies)
- [Installation (with package manager)](#installation-with-package-manager)
- [Manual Installation (no package manager)](#manual-installation-no-package-manager)
- [Using a graphical login such as LightDM, GDM, LXDM, and others](#using-a-graphical-login-such-as-lightdm-gdm-lxdm-and-others)
- [Optional Development Installation](#optional-development-installation)
- [Optional Build Features](#optional-build-features)
- [Using the Makefile](#using-the-makefile)
- [Starting with startx or a login such as slim](#starting-with-startx-or-a-login-such-as-slim)
- [Theming](#theming)
- [With LeftWM-Theme](#with-leftwm-theme)
- [Without LeftWM-Theme](#without-leftwm-theme)
- [Configuring](#configuring)
- [Default keys](#default-keys)
- [Floating Windows](#floating-windows)
- [Workspaces](#workspaces)
- [Tags / Desktops](#tags--desktops)
- [Layouts](#layouts)
- [Troubleshooting](#troubleshooting)
- [Support](#support)
# Why go left
LeftWM is a tiling window manager written in [Rust] that aims to be stable and performant. LeftWM is
[designed to do one thing and to do that one thing well][unix-philosophy]: _be a window manager_.
LeftWM follows the following mantra:
> LeftWM is not a compositor.
> LeftWM is not a lock screen.
> LeftWM is not a bar. But, there are lots of good bars out there. With themes, picking one is as
> simple as setting a symlink.
Because you probably want more than just a black screen, LeftWM is built around the concept of
themes. With themes, you can choose between different bars, compositors, backgrounds, colors, docks,
and whatever else makes you happy.
LeftWM was built from the very beginning to support multiple screens and ultrawide monitors. The
default keybindings support ultrawide monitors and multiple screens.
[Rust]: https://github.com/rust-lang/rust
[unix-philosophy]: https://en.wikipedia.org/wiki/Unix_philosophy#Do_One_Thing_and_Do_It_Well
## One of the core concepts/features of LeftWM is theming
With LeftWM, there are two types of configuration files:
- **LeftWM Configuration files:** LeftWM configurations are specific to you and don’t change for
different themes. These are settings like keybindings, workspace locations, and names of
desktops/tags. These settings can be found in `$XDG_CONFIG_HOME/leftwm/config.ron`.
- **Theme Configuration files:** The appearance of your desktop is different. It’s fun to try new
looks and feels. It’s fun to tweak and customize the appearance (AKA: [ricing]). It’s fun to share
so others can experience your awesome desktop! LeftWM is built around this concept. By pulling all
these settings out into themes, you can now easily tweak, switch, and share your experiences. This
configuration is spread between `theme.ron` and related files contained within a theme's folder.
**Note:** some example config and themes can be found in the share dir, e.g. `/usr/share/leftwm` oh Arch based disros.
[ricing]: https://www.reddit.com/r/unixporn/comments/3iy3wd/stupid_question_what_is_ricing/
# Dependencies
While LeftWM has very few dependencies, this isn't always the case for themes.
Themes typically require the following to be installed. However, this is up to the
author of the theme and could be different.
List of LeftWM dependencies:
- xorg (runtime, build): specifically libx11, xrandr, xorg-server, libxinerama
- sh (runtime): any posix-compliant shell for starting up and down files
- rust (build): >= 1.74.0
- bash (optional): Most of the themes available use bash, though the scripts maybe converted to any posix-compliant shell
List of common dependencies for themes:
| Dependency