BSPWM (Binary Space Partitioning Window Manager) is a tiling window manager that organizes windows using a binary space partitioning tree. This means it recursively splits your screen into non-overlapping regions, allowing for efficient and dynamic window layouts.
Unlike a lot of other window managers, BSPWM does not handle input (keybindings or mouse events) directly. Instead, it works alongside sxhkd (Simple X Hotkey Daemon) for hotkey management.
Configuration is done entirely through plain text and shell scripts, giving users full control over how their system behaves. BSPWM is lightweight, fast, and designed for users who prefer a keyboard-driven workflow and a highly customizable and minimalist linux environment.
My transition to BSPWM happened fairly early in my experience with Linux. Within around three months, I had moved from Ubuntu to Arch Linux with KDE, and eventually to Arch with BSPWM as I became interested in building a smaller and more personalized desktop environment.
Most of the setup process involved experimentation as I learned how BSPWM and the surrounding tools fit together. Once I had created an environment I was comfortable using, I wanted a reliable way to reproduce it across my devices without manually reconfiguring everything after each installation.
I created this install script to automate that process. It installs and configures the main components of my environment, pulls my dotfiles from a public repository, and makes future installations faster and more consistent.
This project gives me a configuration I am finally satisfied with and a reliable way to maintain it going forward. I can continue refining my dotfiles, keep them synchronized across my devices through the repo + script, and publicly release the setup for others to use or adapt. The rest of this post provides an overview of the project and expands upon the information in its README.md.
pywalIn order:
pacmanpywal color schemezsh as the login shellRequirements:
git, curl, sudo installed# Install Git (if haven't already)
sudo pacman -S git
# Clone the repository
git clone https://github.com/roman-xo/dotfiles/
# Run the installer
cd ~/dotfiles
chmod +x install.sh
./install.sh
Best ran from a TTY session.
For those who already have a WM or DE setup, and want to clone any of my dotfiles:
# Clone the repository
~ » git clone https://github.com/roman-xo/dotfiles/
| Package | Purpose |
|---|---|
bspwm | Tiling window manager |
sxhkd | Hotkey daemon |
polybar | Status bar |
rofi | Launcher |
dunst | Notifications |
pywal | Wallpaper-based theming |
picom | Compositor |
~/.config/ picom/picom.conf:
@include "picom-animations.conf"
~ » wal -i >path-to-your-image<
This will set the color scheme to the selected image.
Nitrogen
Roman Todd - 07-15-25