Skip to content

tonytech83/dwm-tt

Repository files navigation

dwm-logo-bordered

dwm - dynamic window manager

Overview

This manual will guide you through the steps to set up a desktop environment beginning with a clean Arch-based installation. I will presume you have a good understanding of Linux-based operating systems and command-line interfaces. Given that you are reading this, it's likely you've watched some YouTube videos on 'tiling window managers,' which is typically where the journey begins. You are free to choose any window manager you prefer, but I will be demonstrating using Qtile as the initial tiling window manager since that was my starting point. Essentially, this is an overview of how I built my desktop environment from the ground up.gitlab.com/jped/suckless)

Arch Install

I would make sure to have working internet:

pacman -S networkmanager
systemctl enable NetworkManager

After you log in, your internet connection should be functioning properly, provided that your computer is connected via Ethernet. If you're using a laptop that lacks Ethernet ports, you might have previously used iwctl during the setup process, but this tool won't be available unless you've explicitly installed it afterward. Don't worry, though—we've set up NetworkManager for you. Here’s how you can connect to a wireless LAN using this application:

# List all available networks
nmcli device wifi list
# Connect to your network
nmcli device wifi connect YOUR_SSID password YOUR_PASSWORD

Xorg

Install dependencies:

sudo pacman -S --needed base-devel extra/git extra/libx11 extra/libxcb extra/libxinerama extra/libxft extra/imlib2

If you find yourself missing a library then this can usually be found by searching for the file name using pacman:

pacman -F Xlib-xcb.h
extra/libx11 1.6.12-1 [installed: 1.7.2-1]
usr/include/X11/Xlib-xcb.h

Basic system utilities

Wallpaper

sudo pacman -S feh
feh --bg-scale path/to/wallpaper

Fonts

sudo pacman -S ttf-dejavu ttf-liberation noto-fonts

Audio

sudo pacman -S pulseaudio pavucontrol

For a better CLI experience though, I recommend using pamixer:

sudo pacman -S pamixer

Further configuration and tools

AUR helper

Now that you've installed some software that makes your computer easier to use without testing your patience, it's time to move on to more exciting tasks. First up, you should install an AUR helper. I recommend using yay:

sudo pacman -Syu
sudo pacman -S --needed base-devel

git clone https://aur.archlinux.org/yay.git
cd yay

makepkg -si

File Manager

For a graphical one, I suggest thunar

sudo pacman -S thunar

Storage

Another basic utility you might need is automounting external hard drives or USBs. For that I use udisks and udiskie. udisks is a dependency of udiskie, so we only need to install the last one. Install also ntfs-3g package to read and write NTFS formatted drives:

sudo pacman -S udiskie ntfs-3g

Network

We have configured the network through nmcli, but a graphical frontend is more friendly. I use nm-applet:

sudo pacman -S network-manager-applet

Xprofile

In order to make them permanent, we need a couple things. First, install xinit:

sudo pacman -S xorg-xinit

Now you can use ~/.xprofile to run programs before your window manager starts:

touch ~/.xprofile

For example, if you place this in ~\.xprofile:

exec dwm

Pathes:

  • barpadding
  • bottomstack
  • cfacts
  • colorful tags
  • cool autostart
  • dragmfact
  • dragcfact
  • fibonacci
  • gaplessgrid
  • horizgrid
  • movestack
  • notitle
  • preserveonrestart
  • statuspadding
  • status2d
  • shiftview
  • underlinetags
  • vanitygaps
  • winicon