Continuing my Arch Linux installation I now have a user account for daily use. However this only provides me with a terminal. What I would like is a traditional multi-window desktop environment which will require me to install two things. A window system of some sort and a layout manager. For this installation I'm going with Xorg and dwm. For those that are not aware dwm is dynamic window manager for Xorg that has been developed by Suckless. Since by default dwm expects st to be installed as the system's terminal and also makes use dmenu to allow you to launch applications I will installed both of them in addition to dwm.

Install Dependencies

Firt off I need to install the dependencies required by st, dmenu and dwm. Since this is Arch Linux I use pacman to do this.

$ sudo pacman -S base-devel git libx11 libxft xorg-server xorg-xinit terminus-font
  • base-devel Since I will be installing from source this package contains various tools to compile software.
  • git Is needed to get the source code from the suckless git repositories.
  • libx11 and libxft Dependanices required by dwm oherwise it will fail when trying to compile it.
  • xorg-server Is the display server that provides the windows that dwm will manage.
  • xorg-xinit Allows us to start the display server.
  • terminus-font Dwm is configured to use a monospaced font and since I installed a barebones system I need to install such a font now.

Download Git Repositories

The source code for the software is avialable from the Suckless git repositories so I simply clone them.

$ mkdir -p ~/.local/src

$ git clone git://git.suckless.org/st ~/.local/src/st
$ git clone git://git.suckless.org/dmenu ~/.local/src/dmenu
$ git clone git://git.suckless.org/dwm ~/.local/src/dwm

Install ST

I install st by first moving to the directory created when cloning the repository.

$ cd ~/.local/src/st

Then its as simple as compiling and instaling the software with the below commands.

$ make clean
$ sudo make install

Configure and Install DMENU

Again move to the directory created earlier.

$ cd ~/.local/src/dmenu

Before compiling a small edit needs to be made to the file config.mk.

$ nvim config.mk

Since I have not installed Xinerama on this system I need to comment out any flags that reference this otherwise dmenu will fail during the compiling.

# XINERAMALIBS  = -lXinerama
# XINERAMAFLAGS = -DXINERAMA

Again compiling and installing is done with the below commands.

$ make clean
$ sudo make install

Configure and Install DWM

For the final time move to the directory created earlier.

$ cd ~/.local/src/dwm

As with dmenu the same edit needs to be made to the file config.mk.

$ nvim config.mk
# XINERAMALIBS  = -lXinerama
# XINERAMAFLAGS = -DXINERAMA

Compile and install as usual.

$ make clean
$ sudo make install

Starting DWM

Since I have installed xorg-xinit I need to create a .xinitrc in my home folder.

$ nvim ~/.xinitrc

The contents of this file is just.

exec dwm

I can now start xorg and dwm with the below command.

$ startx