Hi all, in this video i will show how to full install Arch Linux with bspwm desktop environment.

  1. The boot mode will be EFI.
  2. I’m assuming you already have the usb stick with the Arch Linux ISO.
  3. If you use wireless network, please go to the site in the description and see the link to properly configure your network.

I hope you enjoy!


  1. Download the latest Arch Linux ISO
  2. Connect to the Internet - Arch Linux Wiki
  3. Yay
  4. Arch Linux Wiki - Swap File
  5. Duck Channel´s bspwm-install

1. Pre-Install

1.1 Set Time

$ timedatectl set-ntp true

1.2 Partitioning the Disk

I will create two partitions.

The scheme.

Folow the video…

$ cfdisk /dev/[device]

And follow the video…

I dont create one partition only for swap. No more, we will use one small swapfile. Dont worry about this.

1.3 Formatting

use mkfs.btrfs, mkfs.fat and mkswap.

$ mkfs.fat -F32 /dev/sda1
$ mkfs.ext4 /dev/sda2

1.4 Creating Subvolumes and Mounting

$ mount /dev/sda2 /mnt
$ mkdir /mnt/boot
$ mount /dev/sda1 /mnt/boot

2. Install

2.1 Install the Base System

Take a look at the site in the description you need to add a package in this command.

It will depend on the brand of your processor (AMD or Intel)

  • For Intel Processor add intel-ucode package;
  • For AMD Processor add amd-ucode package;
$ pacstrap /mnt base base-devel linux \
linux-firmware vim \
networkmanager network-manager-applet \
grub efibootmgr linux-headers mtools git \

Press enter twice here..

3. Config the System

3.1 Generate fstab

$ genfstab -U /mnt >> /mnt/etc/fstab 
$ cat /mnt/etc/fstab

3.2 Chroot

$  arch-chroot /mnt 

3.3 Create swapfile

$ dd if=/dev/zero of=/swapfile bs=1M count=512 status=progress
$ chmod 600 /swapfile
$ mkswap /swapfile
$ swapon /swapfile
$ echo "/swapfile none swap defaults 0 0">>/etc/fstab

3.2 Timezone

You can list all timezones with:

$ timedatectl list-timezones

Replace region and city with your own timezone.

$ ln -sf /usr/share/zoneinfo/Region/City /etc/localtime  
$ hwclock --systohc

3.3 Localization

Edit /etc/locale.gen and uncomment your locale. After, generate the locales by running:

$ locale-gen

Create the /etc/locale.conf and set the LANG variable:


3.4 Network Config

Create /etc/hostname with the name your host:


Create /etc/hosts:   localhost
::1         localhost   nameFromYourHost.localdomain nameFromYourHost   

Enable Network Manager

$ systemctl enable NetworkManager  

3.5 Install GRUB

$ grub-install --target=x86_64-efi \
--efi-directory=/boot \

$ grub-mkconfig -o \

3.6 Set the root Password

$ passwd  

3.7 Exit, Umount and Reboot

$ exit
$ umount -a
$ reboot  

4. Post-Install

4.1 Create a New User

$ useradd -m -G wheel yourUsername
$ passwd yourUsername  
$ export EDITOR=vim

Edit /etc/sudoers run “visudo” and uncomment the following line:

## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL   
$ exit

4.2 Install xorg

$ sudo pacman -S xorg  

4.3 Install the Display Manager

$ sudo pacman -S lxdm
$ sudo systemctl enable lxdm

5. Install bspwm

We need clone the bspwm-install repository. I created this to make installation easier and avoid any rework.

$ git clone https://github.com/theduckchannel/bspwm-install.git
$ cd bspwm-install
$ chmod +x setup.sh
$ ./setup.sh

Press enter each time to confirm.

You need be patient, because every packages are retrieved by your network connection.

After finish, you see the screen with “Press any key to reboot”.


Shortcut Action
ctrl + alt + t Change bspwm theme
super + Return Terminal
super + shift + Return Floating Terminal
super + q Close window
super + t Open thunar file manager
alt + F1 Rofi Menu
super + x Powermenu
Print Take screenshot
alt + Print Take screenshot after 5 seconds
ctrl + alt + l Lock Screen
super + f Full screen or monocle
super + {h,v,q} horizontal, vertical or cancel
super + space Toggle beetwen floating & tiled
ctrl + alt + {Left,Right} Switch workspace

6. Finish

Repository: https://github.com/theduckchannel/bspwm-install

If you want, please go to the bspwm-install repository page and I have prepared a simple documentation with the most used shortcut keys.