Some basic tasks to do after a fresh installation


Prerequisite

Note: This guide uses nvim as it's text editor, substitute with your editor of choice (nano, vim, ...)


Install a GUI

Graph of Linux Desktop Environment Poll Results
Poll Results showing interest in various Linux Desktop Environments


You have quite a few choices on which desktop environments you want to use. Including those officially supported by Arch.


Gnome Desktop Environment (GDE)

Gnome is a popular desktop environment available in the official arch repository See Installation guide?


Suckless DWM Windows Manager

dwm is a light weight tiling windows manager that you must compile and install yourself. This install is actually 4 programs working together: dwm, st, dmenu and dwmblocks.

dmenu

dmenu is the launcher used to start applications

Become Root and install git

 $ sudo -i
 # pacman -Syu git

Install source code

 # cd /usr/src
 # git clone git://git.suckless.org/dmenu
 # cd dmenu
 # make clean install

Become normal user

 # exit

st

st is a terminal emulator

Install a custom font [Optional]

Note: this should be run as normal user

Create some folders for the fonts

 $ mkdir -p ~/.local/share/fonts
 $ mkdir -p ~/Downloads/FiraCode && cd $_

Download the font zip

$ curl -fLo Fira_Code_v5.2.zip \
   https://github.com/tonsky/FiraCode/releases/download/5.2/Fira_Code_v5.2.zip

Unzip the file and change directories to the true type fonts

 $ unzip Fira_Code_v5.2.zip
 $ cd ttf

Copy the true type fonts to your ~/.local/share/fonts directory

 $ cp *.tff ~/.local/share/fonts

Build cache and check that everything worked

 $ fc-cache
 $ fc-list | grep Fira

Note the name of the font after the first :

 /home/user/.local/share/fonts/FiraCode-Regular.ttf: Fira Code:style=Regular

So the name of our new font is "Fira Code"

Install st as root

 $ sudo -i
 # cd /usr/src
 # git clone git://git.suckless.org/st
 # cd st

Install a patch

Scroll back is a useful patch that allows users to scroll up to see previous terminal output using shift+[Page Up] and shift+[Page Down]

# git checkout -b patches
# curl -fLo st-scrollback-20200419-72e3f6c.diff \
      https://st.suckless.org/patches/scrollback/st-scrollback-20200419-72e3f6c.diff
# git apply st-scrollback-20200419-72e3f6c.diff

Edit the st/config.def.h file

 # nvim config.def.h

If you want to change fonts, around line 8 you should see a line starting with static char *font =. chnge it as follows

/usr/src/st/config.def.h
------------------------------------------------------------

static char *font = "Fira Code:pixelsize=12:antialias=true:autohint=true";

Set up transparancy for terminal window [Optional]

Install a composition manager

 # pacman -Syu xcompmgr

Get alpa + focus patch

# curl -fLo st-focus-20200530-43a395a.diff \
   https://github.com/juliusHuelsmann/st/releases/download/v2/st-focus-20200530-43a395a.diff
# git apply st-focus-20200530-43a395a.diff

edit config.def.h

 # nvim config.def.h

This edit is a bit more involved so for this edit the convention is:

approximate line number: old text --> new text

your end reult should show new text.

/usr/src/st/config.def.h
------------------------------------------------------------

 98:   float alpha = 0.8, alphaUnfocused = 0.6;   -->   float alpha = 0.8, alphaUnfocused = 0.6;
134:   defaultfg = 7   -->   defaultfg = 256
135:   defaultbg = 0   -->   defaultbg = 258
138:   bg = 17, bgUnfocused = 16   -->   bg = 258, bgUnfocused = 258

Build st

 # make clean install

dwm

dwm is the windows manager

Still as root, install nessisary packages

Note: we will be using feh to set our desktop background

 # pacman -Syu xorg xorg-xinit feh

Install source code

 # cd /usr/src
 # git clone git://git.suckless.org/dwm

change directory into dwm folder

 # cd dwm

Edit dwm/config.def.h file [Optional]

If you want to use the super key as your mod key rather than the default alt, around line 47 you should see a line containing Mod1Mask

 # nvim config.def.h
/usr/src/dwm/config.def.h
------------------------------------------------------------

#define MODKEY Mod4Mask

build the executable

 # make clean install

dwmblocks

dwmblocks is a status bar program to show script information such as time, cpu status or really anything you can imagin

Still as root, change directory and install source code

 # cd /urs/src
 # git clone https://github.com/torrinfail/dwmblocks.git
 # cd dwmblocks

Compile executable

 # make clean install

Return to normal user

 # exit

Set up Wallpaper [Optional]

$ mkdir -p ~/Pictures/wallpaper && cd $_
$ curl -fLo paint.jpg \
   https://i.imgur.com/RqJ3RnO.jpg

configure ~/.xinitrc

 $ nvim ~/.xinitrc
feh --no-fehbg --bg-scale ${HOME}/Pictures/wallpaper/paint.jpg
exec xcompmgr &
exec dwmblocks &
exec dwm

First Launch $ startx

press mod + enter to launch a terminal or mod + p to start dmenu launcher