WMs: How to use and switch to them

(This’ll probably not help anybody, but just wanted to get this out there)

Contents
Intro — Brainwashing you into reading this
Key Points when Installing — How to enter a window manager and some basics of them.
i3 — Guide to installing i3, bindings, and videos that could help you
bspwm — Guide to installing bspwm, how to make it usable, bindings, and videos to help you.
hyprland — Not much here, as hyprland is so feature-rich. Includes how to install and some resources.
Any Other Window Manager — Some crucial packages for any window manager, and advice.
Generally Switching to Window Managers — Advice on getting used to a window manager and stabilizing the learning curve.

Intro
Alright, lets just say you just switched to linux (any archlinux based distro like the lovely endeavour OS) and you, like many users, decided to use KDE or some DE. So… what now? After some time using Linux like this you may be starting to feel dull. Where’s the “ricing” at? After all, you may feel that customizing KDE of Gnome feels too easy or too streamlined, or just not your style. You may be opting for a WM, or a Window Manager. You install the window manager (be it i3, bspwm, berry, etc.). Now what? How do I customize this? This is what this tutorial/guide is about.

Key Points when Installing

After you have installed a window manager, log out for your desktop environment and select the settings icon, or the text that says your desktop environment, like this:

(ON GNOME)
GDM session

(ON KDE PLASMA)
Plasma Session

After you click on that, select the name of your window manager, and you will enter it.

Some window managers require additional packages to work properly (some more than others). Here is a list of my recommended packages for a few window managers. You MUST have xorg (for X11 window managers) or xorg-xwayland (for Wayland window managers). (terminal) means your desired terminal.

i3

Run:

sudo pacman -S i3-wm dunst picom nitrogen (terminal) dmenu neovim polybar

Package break-down

i3-wm The i3 window manager
dunst For notifications
picom For window blurring and transparency
nitrogen GUI wallpaper setter
(terminal) Your terminal of choice
dmenu App launcher (can be replaced with rofi later)
neovim TUI text editor (can be replaced by any editor)
polybar Highly customizable bar for X11

Additional Instructions for i3

For ease of use, don’t copy the configuration file immediately. Once you start i3, a config wizard will appear and ask you some questions including your desired Mod key. (Alt or Super).

If you have used Swaywm before, you can safely copy your config almost word-for-word to i3. They use the same syntax.

(Bindings)
Terminal = Alt+Enter (Mod key can be changed in config)
Dmenu = Alt+D
Restart i3 = Alt+Shift+R
Quit i3 = Alt+Shift+E
Tile next window vertically = Alt+V
Tile next window horizontally = Alt+H
Close window = Alt+Shift+Q
Switch to desktop = Alt+{1-10}
Move window to desktop = Alt+Shift+{1-10}
Float a window = Alt+Shift+Space (Grab titlebar and drag to move)
Fullscreen a window = Alt+F

These are the key keybindings. You will most likely be able to run anything (dmenu) and customize anything (your terminal) using these bindings.

Links:
i3 docs
Linux cast video (pretty old, be warned)
typecraft video on i3
Customizing polybar

bspwm
Run:

sudo pacman -S bspwm sxhkd nitrogen picom dunst neovim dmenu polybar

Package Breakdown
bspwm The BSPWM window manager
sxhkd For keyboard shortcuts
nitrogen GUI wallpaper setter
picom Compositor for window blur, transparency and more
dunst For notifications
neovim TUI text editor (can be replaced by any text editor of your choice)
dmenu App launcher (can be replaced with rofi later)
polybar Highly customizable bar for X11

Additional Instructions for BSPWM

After you install these, please copy: /usr/share/doc/bspwm/examples/bspwmrcto .config/bspwm/ (create it if necessary)
THEN,
Copy: /usr/share/doc/bspwm/examples/sxhkdrc to .config/sxhkd/ (create if necessary)

Additionally, replace “urxvt” in the default .config/sxhkd/sxhkdrc to your terminal.
Search for:

super + Return
    urxvt

and replace it with:

super + Return
    (your terminal here)

(Bindings)
Terminal = Super+Enter
Dmenu = Super+Space
Close window = Super+Shift+W
Restart bspwm = Super+Alt+R
Quit bspwm = Super+Alt+Q
Float a window = Super+S on desired window
Tile a window = Super+T on desired window
Fullscreen a window = Super+F on desired window
Resize a window (floating) = Super+LeftClickDrag on desired window
Move a window (floating) = Super+RightClickDrag on desired window
Move window to desired desktop = Super+Shift+{1-10} on window
Switch to desktop = Super+{1-10}

IMPORTANT!
PLEASE check that your bspwmrc and sxhkdrc are EXECUTABLE. To do this, use

chmod +x .config/bspwm/bspwmrc
chmod +x .config/sxhkd/sxhkdrc

Links:
ArchWiki entry
Check this channel out. Really in-depth tutorials of bspwm.
My bspwm config
Customizing polybar

i3 and bspwm are the most popular in the X11 realm. For hyprland, I recommend these packages:

hyprland
Run:

sudo pacman -S hyprland waybar swww kitty

Package Breakdown

hyprland Hyprland window manager. (comes with compositor)
waybar Top bar for Wayland window managers.
swww Wallpaper setter with animation support. (Wayland ONLY)
kitty Default terminal for Hyprland. (can be replaced after)

I don’t really use Wayland, but here are some Github repos and a video on ricing hyprland.

Links:
Hyprland Ricing Series
JaKooLit’s Hyprland Dotfiles
Catppucccin Hyprland
sane1090x’s everforest Hyprland
How to customize waybar in general

ANY OTHER WINDOW MANAGER

For any other window manager, you must do your research on the Internet to find a tutorial or video that will help grasp the idea of a window manager and how to install and use it. I just listed a small guide for a few of the most popular ones. You may be wondering, what about the packages? Well, for all window managers you will need these packages (additionally to the actual window manager)

(terminal) Any terminal
dunst For notifications
nitrogen GUI wallpaper setter
(app launcher) An app launcher. Usually rofi or dmenu
(text editor) Any text editor (vim, neovim, nano, emacs, etc.)
picom Really, even though you can use a window manager without picom, you can’t really make your desktop look beautiful without this.

GENERALLY SWITCHING TO WINDOW MANAGERS

This is the final part of this guide thing. You may be overwhelmed by all these instructions or even the thought of using a window manager. But, think of a window manager like this: it is like a desktop environment, just you’ll be in the terminal more for around a few weeks until you finish customizing. Still not convinced? Well, you don’t have to be using your window manager all the time. Use your desktop environment and window manager in interchanging manner. Maybe set a goal (e.g. “Today, I want to finish configuring my picom”) and complete that and the next day, use your desktop environment. Customizing a window manager, or Linux in general is not a fast or easy task at all. It takes perseverance and responsibility to document your problems and get them fixed and just keep customizing in general. This guide is NOT a full guide, but a small resource to kickstart you. GitHub is a great platform to find dotfiles or software that may help you make the ricing experience more accessible. YouTube is also a very good place to learn and do with endless tutorials that go more in-depth on how to use window managers. After this guide, I will be uploading a video on my channel about this guide (that will go more in depth). This took a lot of time to write, and I hope someone (or maybe you!) can grab something out of this. Chao!

Matias Marino

1 Like

You lost me there :rofl:

:wave:t5:

sigh. my ultimate plan failed

1 Like

I also have been playing with WMs. I’ve watched a lot of youtubers demonstrate their WM setup. I see the advantages of using one, but I always run into issues getting past a few flaws with certain programs, like maybe polybar not disappearing when full screen apps run, like video players.

I’ve wandered about setting up EOS Plasma and then on top of that having some WM like features that make KDE work better?

Is there a way to start with KDE and then install i3 or bspwm and then logout of one and login to the other. How completely can you separate the .config stuff between them?

I’ve tinkered with WMs but with my usage I think I’d only benefit if I were to switch to an ultrawide display - I just like nice big windows for whatever I’m focusing on and everything else might as well be in the background while I’m doing it.

I’ve bookmarked this though for the next time I get itchy to install one for a couple of hours before scrapping it and going back to KDE again :laughing:

After drying my brain there’s enough place for new and old thoghts. So I thougt about a non-tiling windowmanager, like openbox. At the moment my hardware must relax and cool down a little bit, the cpu is 3.7 degrees from melting like ice in the sunshine, so I let the pc shutdown and have time to think about my old configs, while drinking cold stuff and enjoy the weather. Cheers! :beers:

2 Likes

The config files for i3 and bspwm are in seperate folders, so you have your .config/bspwm/ directory for your bspwmrc and for i3 you have .config/i3/. You can install i3 or bspwm from KDE and log out from KDE and switch to other. Look at section “Key Points When Installing” to see where you select your session. You can configure them seperately, as KDE has themes and kvantum but window managers don’t, so they will not interfere.

You can add WM-like features to Plasma with themes, plasmoids and more, through the settings app (I think?) and the kde-look website.

I am going the route of Awesome and Cinnamon soon.
What do you rec for Awesome? Same old stuff?

[Note to self: I understand this is the github community edition so I wonder if I can get it in the online installer? Ask someone.]

I would just install the normal stuff. Watch some tutorials maybe? I don’t really use awesome.