diff --git a/Operating Systems/Arch Linux/Arch Linux.md b/Operating Systems/Arch Linux/Arch Linux.md
new file mode 100644
index 0000000..79f4557
--- /dev/null
+++ b/Operating Systems/Arch Linux/Arch Linux.md
@@ -0,0 +1,52 @@
+
+
Arch Linux Dotfiles
+
![Dotfiles](https://img.shields.io/github/directory-file-count/SetupGuides/ArchLinux/dotfiles?color=%23cba6f7&label=Dotfiles&style=for-the-badge)
+
![Scripts](https://img.shields.io/github/directory-file-count/SetupGuides/ArchLinux/scripts?color=%23b4befe&label=Scripts&style=for-the-badge)
+
![Issues](https://img.shields.io/github/issues-raw/SetupGuides/ArchLinux?color=%23f38ba8&style=for-the-badge)
+
![Last Commit](https://img.shields.io/github/last-commit/SetupGuides/ArchLinux?color=%23f9e2af&style=for-the-badge)
+
+
+---
+
+## Description
+
+This repository contains most of my dotfiles and notes that are used in my Arch Linux installation. You can use the [auto-install script](Contents/Automatic%20Customization.md)] to automatically install Arch Linux and the dotfiles in your system.
+However, I don't guarantee that the installer covers all your needs. In such cases (or you probably do not want to start from scratch), this guide assumes that...
+
+- You've successfully installed Arch Linux by following their
+ [installation guide](https://wiki.archlinux.org/title/Installation_guide)
+ which can be found in their [wiki](https://wiki.archlinux.org/). Otherwise, follow the [system installation guide](Contents/System%20Installation.md) before proceeding.
+- You have made a [non-root user](./Contents/System%20Installation.md#add-a-non-root-user-account) in your system and is currently active.
+- You are currently connected to the internet.
+
+Some, if not all of the dotfiles, can also be used in other operating systems/distributions, but it's up to you on how you will do it since I haven't tested it on other systems yet.
+
+> [!NOTE]
+>
+> This guide is currently under active development. Documentation might be outdated because the dotfiles/scripts are updated frequently.
+
+## Table of Contents
+
+- Introduction (you are here!)
+- [Environment](Contents/Environment.md)
+- [System Installation](Contents/System%20Installation.md)
+- [Automatic Customization](Contents/Automatic%20Customization.md)
+- [Manual Customization](Contents/Manual%20Customization.md)
+ - [Installing and Setting Up The Desktop](Contents/Installing%20and%20Setting%20Up%20The%20Desktop.md)
+ - [Setting Up Hyprland](Contents/Setting%20Up%20Hyprland.md)
+ - [Setting Up Kitty](Contents/Setting%20Up%20Kitty.md)
+ - [Setting Up SDDM](Contents/Setting%20Up%20SDDM.md)
+ - [Setting Up dunst](Contents/Setting%20Up%20dunst.md)
+ - [Setting Up Waybar](Contents/Setting%20Up%20Waybar.md)
diff --git a/Operating Systems/Arch Linux/Contents/Automatic Customization.md b/Operating Systems/Arch Linux/Contents/Automatic Customization.md
new file mode 100644
index 0000000..db187d6
--- /dev/null
+++ b/Operating Systems/Arch Linux/Contents/Automatic Customization.md
@@ -0,0 +1,8 @@
+# Automatic Installation
+
+This installation method is still under development.
+
+---
+
+- Previous: [System Installation](System%20Installation.md)
+- Next: [Manual Customization](Manual%20Customization.md)
diff --git a/Operating Systems/Arch Linux/Contents/Environment.md b/Operating Systems/Arch Linux/Contents/Environment.md
new file mode 100644
index 0000000..cee8e2b
--- /dev/null
+++ b/Operating Systems/Arch Linux/Contents/Environment.md
@@ -0,0 +1,160 @@
+# Environment
+
+## Hardware
+
+I am using Arch Linux on my laptop because it gives me a functional system while having low resource usage. I am using an old Lenovo G50-70 laptop with an Intel Core i3-4030U, 4GB RAM, and 500GB HDD storage.
+
+## Software
+
+### Disk Partitions
+
+During the installation I've configured my machine to have the following
+disk partitions:
+
+| Device | Size | Mountpoint | Filesystem | Label | Description |
+| ----------- | ----------------------- | ----------- | ---------- | ----- | ----------------- |
+| `/dev/sda1` | 300M | `/mnt/boot` | FAT32 | EFI | EFI Partition |
+| `/dev/sda2` | 8G | SWAP | SWAP | SWAP | Swap Partition |
+| `/dev/sda3` | 60G | `/mnt` | BTRFS | ROOT | `/` Partition |
+| `/dev/sda4` | Remaining of the Device | `/mnt/home` | EXT4 | HOME | `/home` Partition |
+
+### Programs Used
+
+This Arch Linux configuration is using the following programs:
+
+
+
+- Fonts used: [JetBrains Mono (Nerd Fonts)](https://github.com/ryanoasis/nerd-fonts) & [Font Awesome](https://fontawesome.com/)
+- Colorscheme: [Catppuccin Mocha](https://github.com/catppuccin/catppuccin)
+
+---
+
+- Previous: [Introduction](../Arch%20Linux.md)
+- Next: [System Installation](System%20Installation.md)
diff --git a/Operating Systems/Arch Linux/Contents/Installing and Setting Up The Desktop.md b/Operating Systems/Arch Linux/Contents/Installing and Setting Up The Desktop.md
new file mode 100644
index 0000000..e85025c
--- /dev/null
+++ b/Operating Systems/Arch Linux/Contents/Installing and Setting Up The Desktop.md
@@ -0,0 +1,79 @@
+# Installing and Setting Up The Desktop
+
+In this part of the customization process, we will install
+the following programs and their dependencies:
+
+- [brightnessctl](https://github.com/Hummer12007/brightnessctl) brightness control tool
+- [btop](https://github.com/aristocratos/btop) system resources monitor
+- [dunst](https://dunst-project.org/) notification daemon
+ - [libnotify](https://gitlab.gnome.org/GNOME/libnotify) desktop notification library
+- [fcitx5](https://github.com/fcitx/fcitx5) input method
+- [Firefox](https://www.mozilla.org/en-US/firefox/new/) browser
+- [grim](https://git.sr.ht/~emersion/grim) screenshot utility
+ - [slurp](https://github.com/emersion/slurp) Wayland region selection tool
+ - [swappy](https://github.com/jtheoof/swappy) snapshot editing tool
+- [Hyprland](https://hyprland.org/) tiling compositor
+ - [catppuccin-cursors-mocha](https://github.com/catppuccin/cursors) cursors
+ - [catppuccin-gtk-theme-mocha](https://github.com/catppuccin/gtk) GTK theme
+ - [Hyprpaper](https://github.com/hyprwm/hyprpaper) wallpaper utility
+ - [GNOME PolicyKit Agent](https://gitlab.gnome.org/Archive/policykit-gnome)
+- [KeePassXC](https://keepassxc.org/) password manager
+- [Kitty](https://sw.kovidgoyal.net/kitty/) terminal emulator
+- [PipeWire](https://pipewire.org) audio/video router and processor
+ - [EasyEffects](https://github.com/wwmm/easyeffects) audio effects for PipeWire
+ - [playerctl](https://github.com/altdesktop/playerctl) mpris media player controller
+ - [WirePlumber](https://pipewire.pages.freedesktop.org/wireplumber/) PipeWire session/policy manager
+- [rofi](https://github.com/lbonn/rofi) window switcher, run dialog, and dmenu replacement
+ - [rofimoji](https://github.com/fdw/rofimoji) character picker for rofi
+- [SDDM](https://github.com/sddm/sddm/) display manager
+ - [Catppuccin for SDDM](https://github.com/khaneliman/catppuccin-sddm-corners)
+- [socat](http://www.dest-unreach.org/socat/)
+- [swaylock-effects](https://github.com/jirutka/swaylock-effects) screen locker
+- [Thunar](https://docs.xfce.org/xfce/thunar/start) file manager
+ - [Gnome Virtual File System](https://wiki.gnome.org/Projects/gvfs)
+ - [Thunar Archive Plugin](https://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin)
+ - [file-roller](https://wiki.gnome.org/Apps/FileRoller)
+ - [Thunar Media Tags Plugin](https://goodies.xfce.org/projects/thunar-plugins/thunar-media-tags-plugin)
+ - [Thunar Volume Manager](https://goodies.xfce.org/projects/thunar-plugins/thunar-volman)
+ - [Tumbler](https://gitlab.xfce.org/xfce/tumbler) thumbnail generator
+ - [ffmpegthumbnailer](https://github.com/dirkvdb/ffmpegthumbnailer) video thumbnailer
+ - [Folder thumbnailer](https://github.com/j-james/thunar-folder-thumbnails)
+ - [RAW thumbnailer](https://code.google.com/archive/p/raw-thumbnailer/)
+- [Waybar](https://github.com/Alexays/Waybar) Wayland bar
+- [wl-clipboard](https://github.com/bugaevc/wl-clipboard) copy/paste utility
+ - [cliphist](https://github.com/sentriz/cliphist) clipboard manager
+
+```bash
+paru -S \
+ brightnessctl \
+ btop \
+ dunst libnotify \
+ fcitx5 \
+ firefox \
+ grim slurp swappy \
+ hyprland hyprpaper polkit-gnome \
+ catppuccin-cursors-mocha catppuccin-gtk-theme-mocha \
+ keepassxc \
+ kitty \
+ pipewire pipewire-audio pipewire-pulse lib32-pipewire \
+ easyeffects playerctl wireplumber \
+ rofi-lbonn-wayland-git rofimoji \
+ sddm-git sddm-catppuccin-git \
+ qt5-graphicaleffects qt5-svg qt5-quickcontrols2 \
+ socat \
+ swaylock-effects-git \
+ thunar gvfs \
+ thunar-archive-plugin file-roller \
+ thunar-media-tags-plugin thunar-volman \
+ tumbler tumbler-extra-thumbnailers raw-thumbnailer \
+ ffmpegthumbnailer \
+ waybar-hyprland-git \
+ wl-clipboard cliphist \
+```
+
+You may want to read the installation instructions of each programs in case your hardware/software configuration needs extra installation steps.
+
+---
+
+- Previous: [Manual Customization](Manual%20Customization.md)
+- Next: [Setting Up Hyprland](Setting%20Up%20Hyprland.md)
diff --git a/Operating Systems/Arch Linux/Contents/Manual Customization.md b/Operating Systems/Arch Linux/Contents/Manual Customization.md
new file mode 100644
index 0000000..5f0f928
--- /dev/null
+++ b/Operating Systems/Arch Linux/Contents/Manual Customization.md
@@ -0,0 +1,87 @@
+# Customization
+
+Now that you have a new Arch Linux system, we will now start performing customizations in it.
+
+## Installing An AUR Helper
+
+[Install Paru](https://github.com/Morganamilo/paru). This is the AUR helper that we will use.
+
+```bash
+sudo pacman -S --needed base-devel # If it is not yet installed
+
+# Clone the repo in a temp directory.
+export PARU_TMP_DIR=$(mktemp -d)
+git clone https://aur.archlinux.org/paru.git "${PARU_TMP_DIR}/paru"
+
+# build and install paru.
+cd "${PARU_TMP_DIR}/paru"
+makepkg -si
+
+# Go back home and remove the created temp directory.
+cd ~
+rm -rf $PARU_TMP_DIR
+unset $PARU_TMP_DIR
+```
+
+## Downloading the Dotfiles
+
+Install `git` and `git-lfs`, and clone this repository.
+
+```bash
+paru -S git git-lfs
+git clone https://github.com/SetupGuides/ArchLinux.git ~/ArchLinuxDotfiles
+cd ~/ArchLinuxDotfiles
+```
+
+> [!NOTE] From now on, this guide will assume that you are in `~/ArchLinuxDotfiles` directory unless specified.
+
+## Custom Fonts and Icons
+
+We are going to use the following fonts and icons, so it's best to install it now.
+
+```bash
+paru -Syu otf-font-awesome ttf-jetbrains-mono-nerd ttf-noto-nerd \
+ papirus-icon-theme papirus-folders-catppuccin-git
+```
+
+## Useful Packages
+
+It is recommended to install and enable the following packages.
+
+```bash
+paru -S acpid avahi
+systemctl enable acpid.service avahi-daemon.service
+```
+
+### Enable Bluetooth support
+
+```bash
+paru -S bluez bluez-utils blueman
+systemctl enable bluetooth.service
+systemctl start bluetooth.service
+```
+
+### Enable Printer Support
+
+```bash
+paru -S system-config-printer sane \
+ foomatic-db foomatic-db-engine \
+ gutenprint gsfonts \
+ cups cups-pdf cups-filters
+systemctl enable cups.service saned.socket
+```
+
+### Enable TRIM for SSDs
+
+```bash
+systemctl enable fstrim.timer
+```
+
+## Next Steps
+
+- [Installing and Setting Up The Desktop](Installing%20and%20Setting%20Up%20The%20Desktop.md)
+
+---
+
+- Previous: [Automatic Customization](Automatic%20Customization.md)
+- Next: [Installing and Setting Up The Desktop](Installing%20and%20Setting%20Up%20The%20Desktop.md)
diff --git a/Operating Systems/Arch Linux/Contents/Setting Up Hyprland.md b/Operating Systems/Arch Linux/Contents/Setting Up Hyprland.md
new file mode 100644
index 0000000..1b61f1b
--- /dev/null
+++ b/Operating Systems/Arch Linux/Contents/Setting Up Hyprland.md
@@ -0,0 +1,16 @@
+# Setting Up Hyprland
+
+To start customizing Hyprland, just copy the dotfiles to `~/.config/`. Running Hyprland at this time is not yet recommended since we haven't customized the rest of the programs yet.
+
+```bash
+cp -r ./dotfiles/hypr ~/.config/hypr
+```
+
+> [!NOTE]
+>
+> If you are having problems with Hyprland, see their [wiki](https://wiki.hyprland.org/Crashes-and-Bugs/).
+
+---
+
+- Previous: [Installing and Setting Up The Desktop](Installing%20and%20Setting%20Up%20The%20Desktop.md)
+- Next: [Setting Up Kitty](Setting%20Up%20Kitty.md)
diff --git a/Operating Systems/Arch Linux/Contents/Setting Up Kitty.md b/Operating Systems/Arch Linux/Contents/Setting Up Kitty.md
new file mode 100644
index 0000000..dc7abc7
--- /dev/null
+++ b/Operating Systems/Arch Linux/Contents/Setting Up Kitty.md
@@ -0,0 +1,32 @@
+# Setting Up Kitty
+
+Copy the Kitty configuration file and enable the Catppuccin colorscheme.
+
+```bash
+cp -r ./dotfiles/kitty/kitty.conf ~/.config/kitty/kitty.conf
+kitty +kitten themes --reload-in=all Catppuccin-Mocha
+```
+
+## Adding Kittens (Plugins)
+
+Alias the following commands. You can change the aliases to whatever you like.
+
+| Alias | Command |
+| ------ | -------------------- |
+| `icat` | `kitty +kitten icat` |
+
+For bash-like terminals, run the following command.
+
+```bash
+echo 'alias icat="kitty +kitten icat"' >> ~/.bashrc # For bash
+echo 'alias icat="kitty +kitten icat"' >> ~/.zshrc # For ZSH
+```
+
+> [!NOTE]
+>
+> If you are going to use my [Custom ZSH Configuration](https://github.com/SetupGuides/ZSH), create a new file in `~/.config/zsh/custom/envs/` (e.g., `~/.config/zsh/custom/envs/kitty.env`) instead of pasting to `~/.zshrc`.
+
+---
+
+- Previous: [Setting Up Hyprland](Setting%20Up%20Hyprland.md)
+- Next: [Setting Up SDDM](Setting%20Up%20SDDM.md)
diff --git a/Operating Systems/Arch Linux/Contents/Setting Up SDDM.md b/Operating Systems/Arch Linux/Contents/Setting Up SDDM.md
new file mode 100644
index 0000000..40a9459
--- /dev/null
+++ b/Operating Systems/Arch Linux/Contents/Setting Up SDDM.md
@@ -0,0 +1,29 @@
+# Setting Up SDDM
+
+1. Enable the SDDM service to start the display manager on boot.
+2. Copy the SDDM configuration file and catppuccin theme configuration to their designated locations.
+
+```bash
+systemctl enable sddm.service
+sudo cp -r ./dotfiles/sddm/sddm.conf /etc/sddm.conf.d/sddm.conf
+sudo cp -r ./dotfiles/sddm/sddm-catppuccin-theme/src/catppuccin-mocha /usr/share/sddm/themes/catppuccin-mocha
+sudo cp -r ./dotfiles/sddm/custom-theme.conf /usr/share/sddm/themes/catppuccin-mocha/theme.conf
+```
+
+> [!NOTE]
+>
+> Make sure that git submodules are pulled before attempting to copy the files from `./dotfiles/sddm/sddm-catppuccin-theme` directory.
+>
+> ```bash
+> git submodule update --init --recursive --remote
+> ```
+
+Related Links:
+
+- [Arch Linux Wiki > SDDM](https://wiki.archlinux.org/title/SDDM)
+- [Catppuccin for SDDM](https://github.com/catppuccin/sddm)
+
+---
+
+- Previous: [Setting Up Kitty](Setting%20Up%20Kitty.md)
+- Next: [Setting Up dunst](Setting%20Up%20dunst.md)
diff --git a/Operating Systems/Arch Linux/Contents/Setting Up Waybar.md b/Operating Systems/Arch Linux/Contents/Setting Up Waybar.md
new file mode 100644
index 0000000..dcf54d7
--- /dev/null
+++ b/Operating Systems/Arch Linux/Contents/Setting Up Waybar.md
@@ -0,0 +1,9 @@
+# Setting Up Waybar
+
+```bash
+cp -r ./dotfiles/waybar ~/.config/waybar
+```
+
+---
+
+- Previous: [Setting Up dunst](Setting%20Up%20dunst.md)
diff --git a/Operating Systems/Arch Linux/Contents/Setting Up dunst.md b/Operating Systems/Arch Linux/Contents/Setting Up dunst.md
new file mode 100644
index 0000000..25c44e6
--- /dev/null
+++ b/Operating Systems/Arch Linux/Contents/Setting Up dunst.md
@@ -0,0 +1,10 @@
+# Setting Up dunst
+
+```bash
+cp ./dotfiles/dunst/dunstrc ~/.config/dunst/dunstrc
+```
+
+---
+
+- Previous: [Setting Up SDDM](Setting%20Up%20SDDM.md)
+- Next: [Setting Up Waybar](Setting%20Up%20Waybar.md)
diff --git a/Operating Systems/Arch Linux/Contents/System Installation.md b/Operating Systems/Arch Linux/Contents/System Installation.md
new file mode 100644
index 0000000..2cc92ba
--- /dev/null
+++ b/Operating Systems/Arch Linux/Contents/System Installation.md
@@ -0,0 +1,314 @@
+# System Installation
+
+If you haven't installed Arch Linux yet, continue reading. Otherwise, you might want to skip to the [manual](Manual%20Customization.md) or [automatic](Automatic%20Customization.md) customization steps.
+
+I recommend that you read the [Arch Linux Wiki](https://wiki.archlinux.org/)'s [installation guide](https://wiki.archlinux.org/title/Installation_guide) instead since it is more updated and accurate than a guide that is maintained by one hobbyist like me. I also recommend reading [arch.d3sox.me](https://arch.d3sox.me/) if you have trouble understanding the wiki.
+
+## Pre-Installation
+
+### Preparing the Installation Medium
+
+I assume that you know how to boot into the Arch Linux ISO. You can download the ISO from [their website](https://www.archlinux.org/download/), and use [Ventoy](https://www.ventoy.net/en/index.html) to boot into your USB Flash Drive.
+
+> [!CAUTION] After this point, I assume that you are now in the live ArchISO system.
+
+### Preparing the Console
+
+If you are not using a US keyboard, you might want to change your keyboard layout.
+
+```bash
+localectl list-keymaps # list available layouts
+loadkeys # load a keymap. e.g., `de-latin1`
+```
+
+### Verifying Internet Connection
+
+Internet connection via Ethernet should be working out of the box. If you are using a wireless connection, perform the following commands:
+
+```bash
+iwctl
+device list
+# your device name might be different (replace wlan0)
+station wlan0 scan
+station wlan0 get-networks
+# replace with your network name from the previous command
+station wlan0 connect
+exit
+```
+
+> If you are having problems turning on your wireless NIC, make sure that it is not being soft-blocked by `rfkill`.
+
+To make sure that you have an internet connection, ping the Arch Linux website.
+
+```bash
+ping -c 4 archlinux.org
+```
+
+### Setting Up Time and Date
+
+Make sure that the time and date is synchronized.
+
+```bash
+timedatectl set-ntp true
+```
+
+### Check if The System Booted in UEFI
+
+```bash
+ls /sys/firmware/efi/efivars
+```
+
+If the directory does not exist, you are in BIOS mode. It is most likely that you want to use UEFI, so check the wiki to know how to boot into UEFI mode.
+
+## Storage Preparation
+
+### Partitioning and Mounting the Disks
+
+List all block devices by running the following command:
+
+```bash
+fdisk -l
+```
+
+In my case, my main storage device is located at `/dev/sda`. So we run the following command: (Your device might have a different name)
+
+```bash
+fdisk /dev/sda
+```
+
+Partition the device following the structure shown in [Environment > Disk Partitions](Environment.md#disk-partitions). If you have different needs, you can see more examples in the [Arch Linux Wiki](https://wiki.archlinux.org/title/Partitioning#Example_layouts) and [d3sox](https://arch.d3sox.me/installation/partitioning-formatting#size-recommendations)'s guide. After saving the changes made by `fdisk`, create the filesystems.
+
+```bash
+mkfs.fat -F32 -n EFI /dev/sda1 # Create a FAT32 filesystem in `/dev/sda1` with label "EFI"
+mkswap -L SWAP /dev/sda2 # Create a SWAP filesystem in `/dev/sda2` with label "SWAP"
+mkfs.btrfs -L ROOT /dev/sda3 # Create a BTRFS filesystem in `/dev/sda3` with label "ROOT"
+mkfs.ext4 -L HOME /dev.sda4 # Create an EXT4 filesystem in `/dev/sda4` with label "HOME"
+
+# Mount the partitions in their respective mountpoints.
+mount /dev/sda3 /mnt
+mount --mkdir /dev/sda1 /mnt/boot
+mount --mkdir /dev/sda4 /mnt/home
+swapon /dev/sda2
+```
+
+## Installing Arch Linux
+
+### Rank the Mirrors
+
+Use [reflector](https://wiki.archlinux.org/title/Reflector) to rank the mirror servers.
+
+```bash
+reflector \
+ --age 15 \
+ --protocol https \
+ --sort rate \
+ --save /etc/pacman.d/mirrorlist
+```
+
+### Perform the Base Installation
+
+Use the `pacstrap` command to install Arch Linux into your system.
+
+> [!WARNING]
+>
+> To ensure system stability, append the microcode package for
+> your CPU to the following command:
+>
+> - `amd-ucode` for AMD CPUs
+> - `intel-ucode` for Intel CPUs
+>
+> See [Arch Linux Wiki > Microcode](https://wiki.archlinux.org/index.php/Microcode)
+
+```bash
+pacstrap -K /mnt \
+ base base-devel linux linux-firmware linux-headers \
+ networkmanager wpa_supplicant \
+ sysfsutils usbutils btrfs-progs e2fsprogs \
+ inetutils dhcping traceroute \
+ nano less which tree sudo \
+ man-db man-pages
+```
+
+Append more package names as you wish. This command may take a while to complete.
+
+### Generate `fstab`
+
+Generate an fstab file by running either of the following commands:
+
+```bash
+genfstab -L /mnt >> /mnt/etc/fstab # Define by labels
+genfstab -U /mnt >> /mnt/etc/fstab # Define by UUIDs
+```
+
+> **NOTE**: Check the `/mnt/etc/fstab` file for any errors.
+
+### Chroot into Your New Arch Linux System
+
+```bash
+arch-chroot /mnt
+```
+
+### Install Bootloader
+
+In this step, I assume that you are installing on a UEFI system. Otherwise, check [d3sox](https://arch.d3sox.me/installation/install-bootloader) for more information.
+
+```bash
+pacman -S grub efibootmgr os-prober
+mkdir -p /boot/EFI/GRUB
+grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
+grub-mkconfig -o /boot/grub/grub.cfg
+```
+
+> [!TIP]
+>
+> If you want to automatically detect other operating systems, run `nano /etc/default/grub` and add/uncomment the following line:
+>
+> ```bash
+> GRUB_DISABLE_OS_PROBER=false
+> ```
+
+> [!NOTE]
+>
+> If you forgot to perform `grub-mkconfig` and shut down/reboot the system instead (which I _totally_ did not do while installing Arch), just boot into your live USB again, mount the partitions, and `chroot` into your system.
+
+### Setup Hostname
+
+`` will be the name of your machine. Change it to whatever you like, but following [RFC1178](https://tools.ietf.org/html/rfc1178) is recommended.
+
+```bash
+echo /etc/hostname
+nano /etc/hosts
+```
+
+When the text editor opens, add the following to the file and save:
+
+```text
+127.0.0.1 localhost
+::1 localhost
+127.0.1.1 .local
+```
+
+### Setting Up Locale
+
+Uncomment the languages that you plan to use in `/etc/locale.gen` and then generate the locales.
+
+```bash
+nano /etc/locale.gen
+locale-gen
+
+echo LANG=en_US.UTF-8 > /etc/locale.conf # You can change the locale if you want
+export LANG=en_US.UTF-8
+```
+
+### Update the Time
+
+```bash
+# Replace `Region/City` with your region and city.
+# tab-completion is available.
+ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
+hwclock --systohc
+```
+
+### Configure Pacman
+
+```bash
+nano /etc/pacman.conf
+```
+
+#### Enable `multilib` Repository
+
+Uncomment the following lines to make 32-bit libraries available to download.
+
+```text
+[multilib]
+Include = /etc/pacman.d/mirrorlist
+```
+
+#### Enable Parallel Downloads
+
+Uncomment the following line to enable parallel downloading of files. You can change the value to whatever you like.
+
+```text
+ParallelDownloads = 5
+```
+
+#### Other Stuff
+
+Uncomment/Add the following lines under `Misc options`:
+
+1. `Color`
+2. `ILoveCandy`
+3. `VerbosePkgLists`
+
+#### Post-Configuration
+
+After editing the configuration file, you may now save and close it. Run `pacman -Syu` to update the repositories.
+
+### Setting Up Users
+
+> [!TIP] It is recommended to use strong passwords for your user accounts.
+
+#### Set Root Password
+
+```bash
+passwd
+```
+
+#### Add A Non-Root User Account
+
+A common security practice is that you should **not** use the root account
+unless needed and you know that it is safe to run. To create a non-root
+user, run the commands below and change the parameters to the values you desire.
+
+> For more information, visit the
+> [Arch wiki](https://wiki.archlinux.org/title/Users_and_groups).
+
+```bash
+# Change with your desired username.
+useradd -mG audio,video,input,storage,wheel,sys,log,rfkill,lp,adm -s /bin/bash
+passwd
+```
+
+To enable `sudo` in the newly-created account, run the following command:
+
+```bash
+EDITOR=nano visudo
+```
+
+And uncomment the following line to allow members of the group `wheel` to execute any command:
+
+```text
+%wheel ALL=(ALL) ALL
+```
+
+## Enable `NetworkManager` Service
+
+```bash
+systemctl enable NetworkManager.service
+systemctl start NetworkManager.service
+```
+
+### Enable Wireless Network Interface
+
+You can enable the WLAN interface by using the `nmcli` command.
+
+```bash
+nmcli radio wifi on # turn on the WLAN interface
+nmcli device status # check the status of the interfaces
+nmcli device wifi list # list available APs
+nmcli device wifi connect # connect to an AP
+```
+
+More information: [Arch Linux Wiki > Wireless](https://wiki.archlinux.org/title/Network_configuration/Wireless)
+
+## Reboot
+
+```bash
+exit # Exit the chroot environment
+reboot # Reboot the system
+```
+
+---
+
+- Previous: [Environment](Environment.md)
+- Next: [Automatic Customization](Automatic%20Customization.md)
diff --git a/README.md b/README.md
index 788a745..4f79b08 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@ Since everything in this repository is for documentation only, I decided to use
### Operating Systems
-- [Arch Linux](https://github.com/SetupGuides/ArchLinux)
+- [Arch Linux](Operating%20Systems/Arch%20Linux/Arch%20Linux.md)
- [Fedora Workstation](Operating%20Systems/Fedora%20Workstation/Fedora%20Workstation.md)
### Shells