로만

Automating My Linux Environment

→ View Repository

What is BSPWM?

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 many 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.


Why I Made This Script

When I first migrated to BSPWM, my journey with linux up until that point had been rapid. I had gone from Ubuntu --> Arch KDE --> Arch BSPWM within the span of around 6 months of solely learning and using linux, and felt prepared to try and make the leap to the most minimal DE that I could.

At the time, there weren't many resources focused specifically on BSPWM, so most of the configuration and learning process was purely trial and error, and once I had got the initial installation process down, I wanted to implement the same setup I created consistently across my devices.

The problem? Going through and reconfiguring everything from scratch each time was going to be extremely tedious and time-consuming. So, I developed this install script—a personal solution to automate my environment to any machine and keep it always synced through a public repository to pull from. This also streamlines & simplifies future reinstallations of my environment.

While not intended to be an overly complex or refined script, It was tailored to fit my use case and maximize efficiency for a base arch environment installation. The aim in creating this post is to publish my dotfiles to the public, and to help out people in my life who are interested in trying out my setup for themselves. The rest of this post will be essentially a 1:1 to my github repository.


Desktop Screenshot
Desktop environment example after executing the script and rebooting on a fresh Arch Linux install

‣  Goals

‣  What the Script Does

In order:

☀ Installation

Install Using The Script

Requirements:

  • Clean Arch installation
  • Internet access
  • User (not root) access
  • 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 run from a TTY session.

Clone into Existing Environment

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/

‣  Main Dependencies

PackagePurpose
bspwmTiling window manager
sxhkdHotkey daemon
polybarStatus bar
rofiLauncher
dunstNotifications
pywalWallpaper-based theming
picomCompositor

‣  Additional Notes