- Why go left
- Dependencies
- Installation (with package manager)
- Manual Installation (no package manager)
- Theming
- Configuring
- Troubleshooting
Left is a tiling window manager written in Rust that aims to be stable and performant. Left is designed to do one thing and to do that one thing well: be a window manager. Left therefore follows the following mantra:
Left is not a compositor.
Left is not a lock screen.
Left 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.
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
~/.config/leftwm/config.toml
. -
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.toml
and related files contained within a theme's folder.
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 (libxinerama, xrandr, xorg-server)
- bash
- rust
List of common dependencies for themes:
Dependency (git) |
Ubuntu 20.4.1 sudo apt install {} |
Arch sudo pacman -S {} |
Fedora 33 sudo dnf install {} |
PKGS |
---|---|---|---|---|
feh | feh | feh | feh | feh |
compton | compton | yay -S picom* | compton | compton |
picom | manual ** | picom | picom | picom |
polybar | manual ** | yay -S polybar* | polybar | polybar |
xmobar | xmobar | xmobar | xmobar | xmobar |
lemonbar | lemonbar | yay -S lemonbar* | manual ** | lemonbar |
conky | conky | conky | conky | conky |
dmenu | dmenu | dmenu | dmenu | dmenu |
* You can use whichever AUR wrapper you like
** See the git page (link in first column) for how to install these manually
LeftWM is available in the AUR as well as crates.io. Both are good options for simple installation. If you install LeftWM with crates.io, you will need to link to the xsession desktop file if you want to be able to login to LeftWM from a graphical login screen:
sudo cp PATH_TO_LEFTWM/leftwm.desktop /usr/share/xsessions
LeftWM is also available in Fedora Copr:
sudo dnf copr enable atim/leftwm -y && sudo dnf install leftwm
- Copy leftwm.desktop to /usr/share/xsessions
- Create a symlink to the build of leftwm so that it is in your path:
cd /usr/bin
sudo ln -s PATH_TO_LEFTWM/target/debug/leftwm
sudo ln -s PATH_TO_LEFTWM/target/debug/leftwm-worker
sudo ln -s PATH_TO_LEFTWM/target/debug/leftwm-state
sudo ln -s PATH_TO_LEFTWM/target/debug/leftwm-check
and
sudo cp PATH_TO_LEFTWM/leftwm.desktop /usr/share/xsessions
You should now see LeftWM in your list of available window managers.
Make sure this is at the end of your .xinitrc file:
exec dbus-launch leftwm
If you want to see more than a black screen when you login, select a theme:
With LeftWM-Theme
leftwm-theme update
leftwm-theme install NAME_OF_THEME_YOU_LIKE
leftwm-theme apply NAME_OF_THEME_YOU_LIKE
Without LeftWM-Theme
mkdir -p ~/.config/leftwm/themes
cd ~/.config/leftwm/themes
ln -s PATH_TO_THE_THEME_YOU_LIKE current
LeftWM comes packaged with a couple of default themes. There is also a community repository for sharing themes
For more information about themes check out our theme guide here or the wiki here.
The settings file to change key bindings and the default mod key can be found at
~/.config/leftwm/config.toml
Mod + (1-9) => Switch to a desktop/tag
Mod + Shift + (1-9) => Move the focused window to desktop/tag
Mod + W => Switch the desktops for each screen. Desktops [1][2] changes to [2][1]
Mod + Shift + W => Move window to the other desktop
Mod + (⬆️⬇️) => Focus on the different windows in the current workspace
Mod + Shift + (⬆️⬇️) => Move the different windows in the current workspace
Mod + Enter => Move selected window to the top of the stack in the current workspace
Mod + Ctrl + (⬆️⬇️) => Switch between different layouts
Mod + Shift + (⬅➡) => Switch between different workspaces
Mod + Shift + Enter => Open a terminal
Mod + Ctrl + L => Lock the screen
Mod + Shift + X => Exit LeftWM
Mod + Shift + Q => Close the current window
Mod + Shift + R => Reload LeftWM and its config
Mod + p => Use dmenu to start application
By default, workspaces have a one-to-one relationship with screens, but this is configurable. There are many reasons you might want to change this, but the main reason is for ultrawide monitors. You might want to have two or even three workspaces on a single screen.
Here is an example config changing the way workspaces are defined (~/.config/leftwm/config.toml)
[[workspaces]]
y = 0
x = 0
height = 1440
width = 1720
[[workspaces]]
y = 0
x = 1720
height = 1440
width = 1720
The default tags are 1-9. They can be renamed in the config file by setting the list of tags.
Here is an example config changing the list of available tags. NOTE: tag navigation (Mod + #) doesn't change based on the name of the tag
tags = ["Web", "Code", "Shell", "Music", "Connect"]
By default, all layouts are enabled. There are a lot of layouts so you might want to consider only enabling the ones you use. To do this add a layout section to your config.toml file. This enables only the layouts you specify
Example:
layouts = ["MainAndHorizontalStack", "GridHorizontal", "Fibonacci", "EvenVertical", "EvenHorizontal", "CenterMain"]
More detailed configuration information can be found in the Wiki.
LeftWM is EWMH compliant
The default layouts are all of the kinds described by the Layout enum.
Issue | Description | Solution |
---|---|---|
LeftWM not listed by login manager | It's likely you need to add the xsessions file to the right folder. | See installation |
No config.toml file exists | LeftWM does not always ship with a config.toml . You will need to execute LeftWM at least once for one to be generated. |
Try the following: leftwm-worker |
Config.toml is not being parsed | LeftWM ships with a binary called leftwm-check. It might not be installed by the AUR. | Try the following: leftwm-check |
Keybinding doesn't work | It's likely you need to specify a value or have a typo. | See Wiki |