Arch + DWM Setup Attempt

January 15, 2022 · 479 words · One minute · Arch Dwm

Originally, I wanted to replace Manjaro KDE with DWM, but I got stuck at the boot screen, and while trying to fix it, I ended up corrupting the bootloader. So, I decided to go all in, format the entire disk, and try setting up an Arch + DWM development environment. Here, I’m documenting the process to assist with future repairs and device migrations.

This is not a step-by-step guide, but rather a concise record of my journey.

Installing Arch Linux

Preparation

Environment for Installing Arch

To create the installation USB, you’ll need:

  • 16GB+ USB drive
  • Rufus
  • Windows machine
  • Arch Linux ISO

After creating the bootable USB, boot from it to start Arch Linux.

Network and Mirrors

Connect to WiFi using iwctl, then update the system clock and modify the Pacman mirror list.

Installing Arch Linux

Disk Partitioning

The disk should be divided into three main parts: Boot, Swap, and Root partitions.

Mount Point Partition Partition Type Suggested Size
/mnt/boot or /mnt/efi /dev/*efi_system_partition* EFI System Partition At least 260 MiB
[SWAP] /dev/*swap_partition* Linux swap More than 512 MiB
/mnt /dev/*root_partition* Linux x86-64 Root (/) Remaining Space
fdisk -l # View disk information
cfdisk /dev/nvme # Partition the disk

Formatting Partitions

mkfs.ext4 ${root}
mkswap ${swap}
mkfs.fat -F 32 ${efi}

Configuring Partitions and Installing the System

  • Mount Root: mount /dev/${root_partition} /mnt
  • Mount EFI: mount /dev/${efi_partition} /mnt/boot/efi
  • Activate Swap: swapon /dev/${swap_partition}
  • Install Kernel and Essential Packages: pacstrap /mnt base linux linux-firmware
  • Generate fstab Config: genfstab -U /mnt >> /mnt/etc/fstab (check for correctness)

The system should now be installed, but there is no bootloader, so we need to install GRUB.

Other Configurations Before Booting

  • Change root to the new system:
mount /dev/${root_partition} /mnt
arch-chroot /mnt
  • Set timezone and sync time.

  • Configure language by editing locale.gen and locale.conf.

  • Network configuration: set hostname and hosts.

  • Set the root password.

  • Install the GRUB bootloader and EFI tools: grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=GRUB

  • Install and start iwd to connect to WiFi.

  • Boot into Arch Linux.

Post-Boot Configuration

Install Essential Software

Purpose Software
Bluetooth bluetoothctl
Network iwd
Daily Use nvim, ranger, zsh
Sound alsamixer
Input Method fcitx5-im, fcitx5-chinese-addons
Proxy clash

Installing the Desktop Environment

Install Xorg

Xorg provides an open-source implementation of the X window system, which is the basis for graphical user interfaces.

Install: xorg-server, xorg-apps, xrandr, xinit.

Install Desktop Companion Software

I used the Suckless tiling window management suite: dwm, slock, st, dmenu, slim, slstatus.

Configure .xinitc and .xprofile

Add to .xinitc:

# .xinitc
fcitx5 &
xautolock -time 10 -locker slock &

autorandr -l home
picom -b
feh --bg-fill --randomize /home/noneback/Picture/wallpaper/*.jpg
exec slstatus &
exec dwm

# .xprofile
export INPUT_METHOD=fcitx5
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5

Customization and Usability

Purpose Software
Wallpaper feh
Window Effects picom
Screen Lock xautolock
Multi-Screen autorandr
Power Saving tlp

Additional Notes

For more detailed instructions, please refer to the official installation documentation.

References