Installation

The instructions below assume you are using a Debian-based system. This setup starts from a minimal Debian installation.

Core Components

Install the core components needed for the bspwm setup:

sudo apt install xorg bspwm sxhkd kitty rofi polybar compton feh i3lock

General Utilities

Install general utilities for enhanced functionality:

sudo apt install lxpolkit flameshot viewnior obs-studio evince lxappearance pavucontrol ffmpeg mpv

Web Browsers

Install web browsers for internet access:

sudo apt install firefox-esr

File Managers

Install both GUI and terminal file managers:

sudo apt install pcmanfm ranger

Terminal Applications

Install terminal-based applications as needed:

sudo apt install htop cmatrix neofetch

Development Tools

Install essential development tools:

sudo apt install git curl wget python3 build-essential

# nodejs setup
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install --lts

## verify setup
node --version

Additional Applications

Install additional useful applications:

sudo apt install gparted

Usage

First clone the repo:
https://github.com/patrickmwila/ndinebspwm.git

Directory Structure

Copy configuration files to appropriate directories and make changes as needed.

  1. .config:

    • Location~/.config/
    • Description: Contains configuration files for various applications and utilities. Contents of this folder should be copied to your home directory as ~/.config/ to ensure the applications (e.g., bspwmpolybarrofikittysxhkd, and compton) can find their respective configurations.
  2. starship.toml:

    • Location~/.config/starship.toml
    • Description: Place this file directly in ~/.config/ to configure your prompt appearance, if you are also using starship prompt and want my style.
  3. .fonts:

    • Location~/.fonts/
    • Description: Place the .fonts folder here to install and use custom fonts (important for polybar to work correctly - install all fonts defined in ~/.config/polybar/config).
  4. .local:

    • Location~/.local/
    • Description: Place contents of .local folder here for any additional configurations, mine contains a script lockscreen working with sxhkd and spawns the i3lock by pressing alt+l.
  5. 00-keyboard.conf:

    • Location/etc/X11/xorg.conf.d/00-keyboard.conf
    • Description: Place this file in /etc/X11/xorg.conf.d/ to set up keyboard preferences.
  6. 20-intel.conf:

    • Location/etc/X11/xorg.conf.d/20-intel.conf
    • Description: Place this file in /etc/X11/xorg.conf.d/ to configure Intel graphics (prevents screen tearing).
  7. 30-touchpad.conf:

    • Location/etc/X11/xorg.conf.d/30-touchpad.conf
    • Description: Place this file in /etc/X11/xorg.conf.d/ to configure touchpad preferences.
  8. .bashrc:

    • Location~/.bashrc
    • Description: Shell script that runs whenever a new terminal session is started. Place this file directly in your home directory to configure your shell environment.
  9. .vimrc:

    • Location~/.vimrc
    • Description: Place this file directly in your home directory to customize Vim with my default settings.

Start BSPWM

To start your bspwm session, ensure your .xinitrc file is properly configured. Here is an example configuration:

# Start sxhkd (Simple X HotKey Daemon)
sxhkd &

# Start compton (composite manager)
compton &

# Set the wallpaper using feh
feh --bg-scale ~/ndinebspwm/wallpaper &

# Start bspwm
exec bspwm
Save the file and start your X session:

Run startx from the TTY session after login to start your bspwm session😎

Note: If You'er using a Display Manager, You can Select BSPWM from login screen!